Cześć. Witam Cię w drugim odcinku Podcastu. Na wstępie chciałem odnieść się do pewnej kwestii, która była poruszana w 1 odcinku i na którą kilku z Was zwróciło mi uwagę. A mianowice, że użyłem tam definicji takich jak Black Box (testy czarnoskrzynkowe) oraz White Box (testy białoskrzynkowe) nie wyjaśniając czym one są. Oczywiście biję się w pierś i już nadrabiam.
W skrócie, testy czarnoskrzynkowe to testy funkcjonalne, które sprawdzają „co” dany moduł robi. Bazują one na specyfikacji, bez wnikania w kod programu.
Testy białoskrzynkowe natomiast to testy strukturalne, a ich zadaniem jest przetestowanie każdej możliwej ścieżki wykonania testowanego komponentu, podając odpowiednie dane na wejściu. Upewniamy się, że wszystkie elementy oprogramowania zostały pokryte przez testy.
Mam nadzieję, że wyjaśniłem w miarę prosto 🙂
Teraz przejdźmy do dzisiejszego tematu. Otóż bardzo często dostaje pytania w stylu „W jaki sposób mogę zostać testerem i jakie powinienem posiadać cechy i umiejętności do tej pracy?” Mam dla Ciebie dobrą wiadomość, bo dzisiaj zajmiemy się tym zagadnieniem.
Zacznijmy od umiejętności nie technicznych, których potrzebujemy, aby stać się dobrym testerem. Przeanalizuj proszę tę cechy na spokojnie.
I tak:
Dobry tester powinien umiejętność analitycznego myślenia. Pomoże mu ona w pewien sposób poćwiartować złożony system czy aplikacje na mniejsze kawałki, które z kolei pomogą w lepszym rozumieniu całości oraz w przygotowaniu przypadków testowych. Jeśli nie jesteś pewien / pewna, czy posiadasz umiejętności analitycznego myślenia, wejdź na stronę www.folj.com i spróbuj rozwiązać jedno z zadań tam dostępnych.
Dobry tester powinien również umieć dobrze się komunikować zarówno w mowie, jak i w piśmie. Wszelkie przypadki testowe, test plany, strategie testowe, opisy błędów itp. Powinny być w prosty, jasny i czytelny sposób opisane. Z kolei rozmowy / dyskusje z biznesem, czy deweloperami wymagają dyskrecji oraz dyplomacji.
Umiejętność zarządzania swoim czasem oraz umiejętność samoorganizacji to kolejne umiejętności dobrego testera. Testowanie jest wymagającym zadaniem, zwłaszcza podczas dokonywanych przez zespół deweloperski zmian w kodzie. Tester musi efektywnie zarządzać swoją pracą i optymalnie zarządzać swoim czasem.
Dobre nastawienie w pracy to również istotna cecha w karierze testera. Objawia się to w nastawieniu do „testowania aż do zepsucia”, chęci eksplorowania, skupieniu i orientacji na detalach, ciągłej chęci uczenia się nowych rzeczy oraz proponowaniu i sugestiach nowych rzeczy i ulepszeń. W świecie IT technologie ciągle i nieustannie i bardzo szybko ewoluują i dobry tester potrafi nadążać za tymi zmianami i się dostosować. Jak to kiedyś ktoś powiedział: „Jak się nie rozwijasz, to się zawijasz”.
Następną cechą w pracy testera jest pasja. Ale w jaki sposób sprawdzić czy ma się pasję do testowania, jeśli np. nigdy nie testowałem? Odpowiedź jest dość prosta: po prostu spróbuj i w ten sposób dowiesz się, czy to jest coś dla Ciebie, czy może spróbować jednak czegoś innego w życiu.
I w końcu przechodzimy do ostatniej umiejętności dobrego testera. A jest nią… język angielski. W dzisiejszych czasach wydaje się to dość oczywiste, natomiast wiele osób zapomina o tym i ignoruje ten fakt. Moim zdaniem jest to umiejetność dość kluczowa, szczególnie w pracy w świecie IT. Znajomość języka angielskiego wiele ułatwia i otwiera sporo drzwi. Uwierz mi.
Zanim przejdziemy do technicznych umiejętności jeszcze jedna rzecz. A mianowicie bardzo przydatna jest też znajomość tzw. metodyk zwinnych, z których korzysta już większość firm IT. Poczytaj o Agile, Scrum czy Waterfall.
Co do kwestii umiejętności technicznych, to pierwszą z nich jest podstawowa znajomość baz danych (głównie SQL). W systemach informatycznych znajdziemy ogromną ilość danych. Dane te są przechowywane w różnych typach baz danych, takich jak Oracle, czy MySQL. Będą więc sytuacje, w których dane te będą musiały zostać w jakiś sposób zweryfikowane przez testera. W takim przypadku proste lub złożone zapytania SQL będą mogły być użyte do sprawdzenia.
Następna techniczna umiejętność w pracy testera to podstawowa znajomość poleceń systemu Linux. Większość aplikacji, takich jak Web-Services, bazy danych, czy serwery aplikacji jest wdrażana na maszynach z systemem Linux. Kluczowe jest więc, aby testerzy posiadali wiedzę na temat poleceń systemu Linux.
Wiedza oraz doświadczenie w pracy z narzędziami do zarządzania testami. Zarządzanie testami jest ważnym aspektem testowania oprogramowania. Bez odpowiednich technik zarządzania, proces tworzenia oprogramowania nie powiedzie się. Narzędzie takie jak TestLink może być użyte do śledzenia wszystkich przypadków testowych napisanych przez zespół. Są też oczywiście i inne narzędzia. Ale generalnie ważne jest posiadanie wiedzy i doświadczenia z takimi narzędziami, ponieważ są one wykorzystywane w większości firm.
Wiedza i doświadczenie w pracy z narzędziami do śledzenia błędów. Śledzenie błędów oraz cykl życia błędu to podstawowe i kluczowe aspekty testowania oprogramowania. Niezwykle istotne jest właściwe zarządzanie błędami i ich śledzenie. Śledzenie staje się konieczne, ponieważ dzięki temu cały zespół wie o usterce/błędzie. UŻywa się do tego narzędzi takich, jak: QC (Quality Center), Bugzilla, Jira, itp.
Wiedza i praktyczne doświadczenie związane z automatyzacją to kolejna cecha dobrego testera. Mówiliśmy wcześniej, że tester powinien mieć umiejetność dostosowywania się do ewoluującego świata IT. Jedną z takich rzeczy jest automatyzacja. Ale spokojnie. Sama wiedza na temat automatyzacji nie wystarcza. Najpierw należy dobrze opanować testowanie manualne, nabrać doświadczenia i po kilku latach można próbować swych sił w automatyzacji. Ale jeśli już dzisiaj myślisz o automatyzacji, to na pewno przyda się znajomość języków takich jak: VBScript, JavaScript, C# czy Java.
Czym w ogóle zajmuje się tester oprogramowania?
Typowy dzień pracy testera to rozumienie dokumentacji technicznej, pisanie przypadków testowych, wykonywanie przypadków testowych, raportowanie błędów, rejestry błędów, uczęszczanie w różnych spotkaniach, oraz różnych innych wspólnych wydarzeniach z zespołem.
Jaka może być kariera testera?
Począwszy od junior testera, po regular testera (pewnie po ok. 1-2 latach doświadczenia), senior testera (po 3-4 latach), koordynatora (5-6 latach), Test Managera (8-11 latach) czy Senior Test Managera (14+ lat doświadczenia).
A jeśli lubisz gdy praca stawia przed Tobą nowe wyzwania, a projekty z obszaru testowania manualnego Ci już nie wystarczają, to dobrym wyborem może okazać się pójście w kierunku specjalizacji w testowaniu automatycznym, w testach wydajnościowych czy na przykład spróbować swoich sił jako Analityk Biznesowy lub Relase Manager.
I to tyle na dzisiaj. Mam nadzieje, ze ten odcinek dal Ci jakakolwiek wartość. Jeśli tak, to zostaw proszę komentarz (gdziekolwiek i a czymkolwiek go słuchasz) czy ocenę. Będzie mi bardzo miło.
Dziękuje Ci bardzo i zapraszam na kolejny odcinek niebawem.
Odcinek Podcastu można wysłuchać TUTAJ.