Rozdział 21
21 września 2019, 15:54
Kariera testera oprogramowania
W TYM ROZDZIAŁE Praca testera Jak znaleźć pracę jako tester? Jak zdobyć praktyczne doświadczenie? Wykształcenie, szkolenia, certyfikaty Dołączenia internetowe Organizacje Dalsza lektura
Zaczynamy ostatni rozdział testowania oprogramowania. No, może raczej ostatni rozdział książki Testowanie oprogramowania, lecz bez wątpienia nie pracy. Praca w tej branży dopiero się rozpoczyna.
Zaczęliśmy zapewne lekturę tej książki nie wiedząc wiele na temat testowania. Mieliśmy - jak wszyscy - nieco doświadczeń z drobnymi irytacjami i niewielkimi awariami komputera w domu lub w pracy. Czytaliśmy też trochę na temat większych błędów oprogramowania i o znanym błędzie roku 2000-ego, który jednak - po trwających do ostatniej chwili przygotowaniach i testowaniu, nie miał tak groźnych skutków jak się tego obawiano.
Przypuszczalnie teraz rozumiemy już, dlaczego takie błędy sią zdarzają mimo wysiłków osób wytwarzających oprogramowanie. Poznaliśmy proces planowania testowania, gdzie szukać błędów i jak raportować znalezione. Rozumiemy już trudny proces decyzyjny, kiedy rozstrzyga się, które błędy naprawić, a które można odłożyć na potem. Widzieliśmy wykresy, które idnetyfikowały produkt gotowy do wypuszczenia oraz inny, wymagający jeszce wiele pracy.
Przede wszystkim jednak, rozumiemy już że testowanie oprogramowania jest trudną i skomplikowaną pracą. Aby się powiodła, konieczne są dyscyplina, szkolenia i doświadczenie. Nie da się po prostu usiąść, walić w klawisze i pokrzykiwać do programisty za ścianką działową, kiedy dzieje się coś dziwnego. Oprogramowanie jest zbyt ważne. Biznesy się waliły, kariery zostały zrujnowane i ludzie ginęli z powodu błędów w oprogramowaniu. Zadaniem testera jest znalezienie tych błędów, profesjonalnie i skutecznie, zanim wydostaną się poza bramę przedsiębiorstwa.
W tym ostatnim rozdziale znajdziemy wskazówki, jak szukać dlaszych wiadomości w tej dziedzinie, jakie są możliwe dalsze drogi kariery oraz jakie jest znaczenie jakości oprogramowania. Najważniejsze punkty to: 33.Drogi kariery dostępne dla testerów oprogramowania
34.Gdzie szukać pracy jako tester 35.Jak zdobyć więcej praktycznego doświadczenia w znajdowaniu błędów 36.Karta Praw użytkownika komputera
Praca testera
Jednym z poważnych nieporozumień jest przekonanie, że testowanie oprogramowania jest zajęciem tylko dla początkujących1. To błędne przekonanie trwa uparcie ponieważ opiera się na nieświadomości, czym naprawdę jest testowanie oprogramowania - głównie z powodu, że wiele przedsiębiorstw nadal produkuje oprogramowanie bez jakiegokolwiek godnego swej nazwy procesu. Nie wszyscy wiedzą jeszcze, że aby móc wytwarzać dobre oprogramowanie, potrzeba specjalistów w dziedzinie testowania na wszystkich poziomach. Jednak waraz ze wzrostem popytu na oprogramowanie naprawdę niezawodne i wysokiej jakości wzrasta zrozumienie wartości kariery testera.
Dzieki tej rosnącej świadomości istnieje wiele interesujących możliwości. Testerzy oprogramowania z kilkuletnim doświadczeniem są bardzo poszukiwani2. Testerzy umiejący wykonywać testy metodami szklanej skrzynki oraz budować testy automatyczne są poszukiwani jeszcze bardziej. Jeśli zaś ktoś ma już doświadczenie z kilku projektów i potrafi pokierować zespołem innych testerów, jego pozycja na rynku jest już bardzo mocna. Naprawdę, w tej chwili rynek pracy dla testerów jest rynkiem sprzedawcy.
Oto lista typowych stanowisk pracy w testowaniu oprogramowania oraz opisy ich zawartości. Pamiętajmy, czego nauczyliśmy się w rozdziale 20-ym "Zapewnianie jakości oprogramowania", że nazewnictwo jest różnorodne i może wprowadzać w błąd, ale ostatecznie - bez względu na nazwę - możliwe role w testowaniu oprogramowania sprowadzają się do opisanych niżej kategorii. 37.Technik (software test technician). To naprawdę pozycja zwykle dla początkujących. Jest się odpowiedzialnym za konfigurowanie oprogramowania i sprzętu, za wykonywanie prostych skryptów testowych albo automatyzacji. Bbyć może będzie się też pracować z testami beta w celu izolowania i odtwarzania znalezionych błędów. Częśc pracy
1 Nietety, jakże często to nieporozumienie potwierdza smutna rzeczywistość (przyp. tłumacza).
2 Poniższe wywody dotyczą głównie amerykańskiego rynku pracy. W Europie są znaczne różnice między krajami przodującymi jeśli chodzi o test (Wielka Brytania, Irlandia, Holandia, kraje Skandynawskie, częściowo Niemcy), a krajami bardzo pod tym względem "zacofanymi" (mówiąc ogólnikowo - basen Morza Śródziemnego oraz Europa Centralna). Co oczywiście nie wyklucza istnienia pojedynczych firm wybijających się ponad przeciętność (przyp. tłumacza).
może być żmudna i monotonna, ale jest to dobre stanowisko wprowadzające do pracy testera1. 38.Tester (software tester lub software test engineer). Wiele przedsiębiorstw wyróżnia kilka poziomów testerów zależnie od doświadczenia i umiejętności. Tester na najniższym poziomie może wykonywac zadania technika, stopniowo awansując i wykonując coraz bardziej skomplikowane testy. Idąc dalej, zaczyna się samemu pisać procedury i zadania testowe, uczestniczy się też w przeglądach projektów i specyfikacji. Tester wykonuje testy oraz izoluje, odtwarza i raportuje znalezione błędy. Kto umie programować, będzie także często pisać programy do automatycznego testowania oraz współpracować blisko z programistami w czasie wykonywania testowania metodami szkalnej skrzynki. 39.Kierownik zespołu testowego (software test lead). Kierownik zespołu odpowiada za test znazcnej części projektu, czasami za cały niewielki projekt. Zwykle pisze plan testowania dla swojego obszaru odpowiedzialności i nadzoruje testowanie wykonywane przez innych. Często kierownik zespołu testującego będzie zaangażowany w zbieranie pomiarów i prezentowanie ich kierownictwu projektu. Zwykle wykonuje też w pewnym zakresie samemu obowiązki testera. 40.Menedżer testów (software test manager). Kierownik testów nadzoruje testowanie w całym projekcie lub w kilku projektach. Podlegają mu kierownicy zespołów tesujących. Współpracuje z kierownikiem projektu przy ustalaniu harmonogramów, celów i priorytetów. Jest odpowiedzialny za dostarczenie odpowiednich środków - osób, sprzętu, powierzchni do pracy itd. - w podległych mu projektach. Ustala strategię testowania dla podległych zespołów. Jak znaleźć pracę jako tester?
Gdzie więc szukać pracy z testowaniem oprogramowania? Odpowiedź brzmi - w tych samych miejscach gdzie szuka pracy programista - we
1 Dla skomplikowanych systemów technicznych może być to stanowisko wymagające - przeciwnie niż tu opisano - ogromnego doświadczenia (przyp. tłumacza).
wszelkich przedsiębiorstwach zajmujących się wytwarzaniem oprogramowania2. 41.Internet. Szybkie przeszukanie przy użyciu kilku szperaczy tuż przed oddaniem tej książki do druku zaowocowało znalezieniem ponad 1000 stanowisk związanych z testowaniem oprogramowania. Większośc z nich były to stanowiska na najniższym poziomie. Znalazło się kilka zajęć dla testerów przy testowanmiu programów muzycznych, telewizji interakcyjnej, sieci, sprzętu medycznego, witryn WWW - brać i wybierać. 42.Gazety i czasopisma. W odpoweidnim dziale ogłoszeń gazet i czasopism lokalnych lub ogólnokrajowych. Również czasopisma komputerowe mogą być źródłem stosownych ogłoszeń. 43.Po prostu spytać. Jeśli jest się zainteresowanym pewną techniką lub określoną aplikacją, czy może branżą, warto znaleźć stosowne przedsiębiorstwa i zadzwonić do nich lub wysłać im swój list motywacyjny oraz życiorys. Często są wolne stanowiska, które nie zdążyły pojawić się w formie ogłoszenia. Aktywni testerzy złapią je, zanim ktokolwiek inny dowie się o ich istnioeniu. 44.Praktyki w firmie. Stundenci mogą próbować znaleźć sobie praktyki wakacyjne - lub dłuższe - w przedsiębiorstwach jako testerzy. Niejednokrotnie takie praktyki okazują się doskonałym wprowadzeniem do pracy testera. Jeśli pracuje się dobrze i ma trochę szczęścia, praktyka może doprowadzić do oferty normalnego zatrudnienia po ukończeniu studiów.
2 Co nie musi oznaczać przedsiębiorstw, dla których wytwarzanie oprogramowania jest głóną działalnością biznesową! Banki, firmy ubezpieczeniowe, administracja publiczna wszelkich szczebli, firmy lotnicze, samochodowe, energetycze, firmy telekomunikacyjne, operatorzy telefoniczni… lista jest długa (przyp. tłumacza).
45.Zastępstwa i prace zlecone. Czasem przedsiębiorstwa wynajmują testerów na krótkie kontrakty, kiedy następuje spiętrzenie pracy testowej w jakimś projekcie. Takie zajęcie może trwać kilka tygodni lub kilka miesięcy, a w tym czasie zdobywa się cenne doświadczenie, ucząc się w trakcie pracy. Niektórzy bardzo cenią sobie tę formę, ponieważ umożliwia ona wypróbowanie pracy w różnych przedsiębiorstwach i z różnymi typami oprogramowania. Jak zdobyć praktyczne doświadczenie?
Testowanie oprogramowania niczym nie różni się od innych dziedzin komputerowych - można o nim czytać długo, ale trudno je tak naprawdę zrozumieć, dopóki się go nie wypróbuje w praktyce. Dlatego najlepiej nauczyć się testowania oporgramowania próbując samemu, na własnmym komputerze i na własnych programach.
Wybieramy program dobrze znany albo taki, którego nigdy wcześniej nie używaliśmy. Podręcznik i pliki pomocnicze traktujemy jako specyfikację produktu. Potem piszemy plan testowania, konstruujemy zadania testowe i szukamy błędów. Znalezione błędy rejestrujemy przy pomocy arkusza kalkulacyujnego lub programu do przetwarzania tekstu. Znalezione błędy można przesłać do firmy, która wyprodukowała program (prawie wszystkie firmy komputerowe dają możliwość zgłaszania błędów za pomocą swoich witryn WWW). Będziemy zdumieni tym, co znajdziemy, a firma może również.
Mając pewne doświadczenie z tego rodzaju testowaniem, można zgłosić się do testów beta dla nowych produktów informatycznych. Jak dowiedzieliśmy się w rozdziale 15-ym "Polowanie na błędy i testowanie beta", testerzy beta otrzymują kopie aplikacji zanim jest ona dostarczona klientom. Daje to możność posługiwania się programem jeszcze nie całkiem ukończonym, znajdowania błędów, które przepuścili testerzy w przedsiębiorstwie oraz - na podstawie tego, co się znajdzie - może uda się wywrzeć wpływ na konstrukcję aplikacji. Różne firmy mają różne systemy administrowania testerami beta. Warto poszukać na witrynie WWW firmy słów "beta tester" lub spróbować zadzwonić i uzyskać informacje telefonicznie.
Używając aplikację w wersji beta na własnym komputerze w domu warto zachować ostrożność. Wersja beta nie jest gotowa i z reguły pełno w niej jest błędów. Niektóre błędy mogą spowodować poważne problemy z pozostałymi aplikacjami na używanym komputerze, częste awarie i nawet utratę danych. Warto zrobić kopie zapasowe wszystkich ważnych rzeczy przed przystąpieniem do testów beta.
Innym sposobem zdobycia doświadczenia jest zgłosić się do testów użyteczności (rozdział 11, "Testowanie użyteczności"). Wiele firm produkujących oprogramowanie dla komputerów osobistych ma własne laboratoria użyteczności lub kontrakty z niezależnymi laboratoriami użyteczności. Kogo interesuje testowani interfejsu użytkownika, powinien wykonać kilka telefonów i zorientować się w możliwościach uczestniczenia - w roli osoby badanej - w testach użyteczności. Często będzie się musiało wypełnić ankietę przeznaczoną do pomiaru doświadcczenia osób badanych z pewnymi typami oprogramowania. Projekty wchodzące w fazę testowaia użyteczności potrzebują różnych osób - od zupełnie początkujących aż po specjalistów. Jeśli się pasuje do którejś z tych ról, zostanie się wezwanym do wypróbowania określonych funkcji nowego produktu. W czasie wykonywania zleconych zadań jest się obserwowanym przez osoby administrujące testami - co się robi, jak się to robi, jak reaguje się na działania programu. Można zostać zaproszonym ponownie, kiedy firma testuje użyteczność ponownie po przeprowadzneiu różnych zmian. Często firma testująca oferuje jakąś formę wynagrodzenia - zwykle w postaci darmowego oprogramowania. Wykształcenie, szkolenia, certyfikaty
Rosnąca świadomość, że test oprogramowania jest odrębną i ważną dziedziną spowodowała, że niektóre uczelnie zaczęły prowadzić zajęcia z tego przedmiotu1. Studiując informatykę lub elektronikę, warto spróbować uczestniczyc w tych zajęciach. Nawet jeśli ma się zamiar zostać programistą lub inżynierem-elektronikiem, wiedza w zakresie testowania pozwoli wykonywać lepiej również te zawody.
Niektóre uczelnie techniczne prowadzą zajęcia wieczorowe2 z testowania oprogramowania i posługiwania się narzędziami do testowania. Niekiedy uczelnie dają nawet dyplomy i certyfikaty z testowania oprogramowania.
Dobrym sposobem zdobycia wiedzy jest uczestniczenie w konferencjach poświęconych testowaniu oprogramowania. Jest ich wiele w ciągu roku, w USA i w innych krajach. Gromadzą prelegentów z różnych dziedzin testowania oprogramowania. Prezentowane materiały mają zarówno chrakter dla początkujących, jak i bardzo zaawansowany. Bardzo cenna na konferencjach jest możliwość spotkania i rozmowy z innymi testerami, wymiany doświadczeń, anegdot i rozwiązań. Poniższa lista zawiera niektóre najpopularniejsze konferencje, ale na pewneo nie jest kompletna. Włączenie lub pominięcie konferencji nie jest żadnego rodzaju rekomendacją3.
1 Zwykle w ramach zajęć z inżynierii oprogramowania (przyp. tłumacza).
2 Dotyczy USA. Nie znam takiego wypadku w Polsce ani gdzie indziej w Europie - ale warto może poszukać (przyp. tłumacza).
3 Listę konferencji europejskich oraz pewne uzupełnienia do niniejszej listy znajdzie czytelnik w liście literatury i innych źródeł. W Polsce konferencje KKIO (Krajowa Konferencja Inżynierii Oprogramowania), organizowane przez PTI (Polskie Towarzystwo Informatyczne, www.pti.pl) zawiera zwykle kilka referatów na temat testowania. Na razie innych konferencj krajowych na ten
46.International Conference and Exposition on Testing Computer Software (TCS), sponsorowana przez U.S. Professional Development Institute (www.uspdi.org). 47.International Quality Week, sponsorowana przez Software Research, Inc. (www.soft.com). 48.International Software Testing Conference (ISTC), sponsorowana przez Quality Assurance Institute (www.qaiusa.com). 49.Software Testing Analysis & Review (STAR), sponsorowana przez Software Quality Engineering (www.sqe.com). 50.International Conference on Software Quality (ICSQ), organizowana przez sekcję oprogramowania American Society for Quality (www.asq-software.org). 51.International Conference on Software Testing (ICSTEST), organizowana przez Software Quality Systems (www.icstest.com). Odbywa się w Niemczech. 52.The Second World Congress for Software Quality (2WCSQ) (www.juse.or.jp/erenmei/2WCSQMAIN.htm). Dołączenia internetowe
Internet zawiera wielkie bogactwo materiałów na temat testowania oprogramowania. Można zawsze szamemu użyć przeszukiwarki ze słowami "software testing" albo "software test", ale poniżej podajemy listę popularnych wityn internetowych poświęconych testowaniu oprogramowania i błędom oprogramowania - dobrą na początek1: 53.BugNet (www.bugnet.com) publikuje błędy znalezione w popularnych programach i sposoby ich naprawiania. 54.Software Testing Hotlist (www.io.com/~wazmo/qa) zawiera dziesiątki dołączeń do witryn internetowych poświęconych testowaniu oprogramowania oraz do artykułów na ten temat.
temat nie ma, ale warto być może sprawdzać ofertę IIR (www.iir.com.pl) oraz firmy Software Konferencje (www.software.com.pl/konferencje). Przyp. tłumacza. 1 Niektóre inne adresy znajdzie czytelnik w liście literatury i innych źródeł (przyp. tłumacza).
55.Software Testing Online Resources (www.mtsu.edu/~strom) ogłasza się sama jako "… pierwszy przystanek na Internecie dla naukowców i profesjonalistów w dziedzinie testowania oporgramowania". 56.QA Forums (www.qaforums.com) jest forum dyskusyjnym na temat testowania oprogramowania, automatycznego testowania, zarządzania testowaniem, narzędzi i na wiele innych tematów. 57.Grupa dyskusyjna comp.software.testing i jej FAQ1 na www.faqs.org/faqs/softwareeng/testing/faq zawiera liczne dyskusje testerów i kierowników testów na tematy narzędzi, technik i projektów. 58.Grupa dyskusyjna comp.risks opisuje i analizuje aktualne awarie oprogramowania. 59.Risk Digest (catless.ncl.ac.uk/Risks/) jest forum dyskusyjnym na temat ryzyka związango z systemami komputerowymi.
Organizacje
Istnieje sporo organizacji zajmujących się oprogramowaniem, testowaniem oprogramowania i zapewnieniem jakości oporgramowania. Na ich internetowych witrynach znajdują się szczgółowe opisy zakresu działalności2. 60.The American Society for Quality (ASQ) na www.asq.org oraz jego oddział zajmujący się oprogramowaniem (www.asq-software.org) sponsorują Krajowe Forum Jakości (National Quality Forum) corocznie w październiku (krajowy miesiąc jakości). Organizacje te publikują czasopisma poświęcone zagadnieniom jakości oraz administują dwa zawodowe certyfikaty: Certified Quality Engineer (CQE) oraz Certified Software Quality Engineer (CSQE).
1 FAQ = Frequently Asked Questions (często zadawane pytania) - przyp. tłumacza.
2 Listę organizacji europejskich znajdzie czytelnik w liście literatury i innych źródeł (przyp. tłumacza).
61.The Association of Computing Machinery (ACM) na www.acm.org oraz jej specjalna grupa zainteresowań zajmująca się inżynierirą oprogramowania (SIGSOFT) na www.acm.or/sigsoft mają ponad 80.000 członków. SIGSOFT publikuje dwumiesięcznik, zawierający między innymi popularny dział zatytułowany "Publiczne zagrożenia", w którym opisywane są szczegóły najnowszych błędów oprogramowania. 62.The Society for Software Quality (SSQ) na www.ssq.org określa swój cel jako "być uznanym Stowarzyszeniem dla osoób zainteresowanych popieraniem jakości jako powszechnego celu dla oprogramowania."1
Dalsza lektura
Istnieje wiele książek na temat testowania i zapewnienia jakości oprogramowania. Niektóre mają charakter techniczny, inne koncentruja się na zagadnieniach procesu i zarządzania testowaniem. Żeby znaleźć jakąś interesującą pozycję, trzeba udać się do dobrze zaopatrzonego sklepu - zwyklego lub internetowego2 - i szukać książek następujących autorów: Boris Beizer, Rex Black, Bill Hetzel, Cem Kaner, Edward Kit, Glen Myers i Willioam Perry3.
Osobom zianteresowanym bardziej ogólnymi zagadnieniami jakości można polecić książki Philipa Crosby, W. Edwardsa Deminga i Josepha Jurana. Podsumowanie
1 Autor pomija zupełnie stowarzyszenia europejskie (patrz poprzedni przypis), a przede wszystkim sponsorowany przez British Computer Society system certyfikatów dla osób zajmujących się zawodowo testem (więcej informacji na ten temat można znaleźć na www.bcs.org.uk/iseb/st). Trwają obecnie prace nad rozszerzeniem tych certyfikatów na wszystkie kraje europejskie. Uczestniczą w nich Wielka Brytania, Niemcy, Szwecja, Dania, Finlandia, Belgia i Holandia (przyp. tłumacza).
2 Żadna ze znanych mi księgarni w Polsce nie dysponuje angielskimi książkami z tej dziedziny. Rozwiązaniem jest jak zwykle amazon.com lub amazon.co.uk (przyp. tłumacza).
3 Porządna lista literatury i zasobów internetowych została dołączona do niniejszego tłumaczenia (przyp. tłumacza).
Chciałoby się zakończyć tę książkę jakąś mantrą podsumowującą to, co tester pragnie osiągnąć za pomocą swojej pracy. Wielokrotnie w tej książce pojawiają się jadnak zastrzeżenia takie jak "w zależności od przedsiębiorstwa lub zespołu projektowego", "zależnie od branży" itp. kiedy mowa jest o procesie wytwarzania, technikach testowania i o poziomach jakości. Użycie takich zastrzeżeń uniemożliwia sformułowanie wspólnych, ogólnych celów dla jakości oprogramowania. Niestety te zastrzeżenia są konieczne, ponieważ definicja jakości oprogramowania zależy właśnie od rozmaitych czynników.
W 1998 roku dr Clare-Marie Karat, psycholog i konstruktor interfejsu użytkownika w Centrum Naukowym IBM w Hawthorne, zaproponowała stworzenie karty praw użytkownika. Ta karta praw definiuje minimalny poziom jakości, zbiór minimalnych oczekiwań, które powinny być spełnione przez każdy rodzaj oprogramowania. Przemysł informatyczny ma jeszcze przed sobą daleką drogę by zrealizować wszystkie postulaty karty, ale każdy tester może przyczynić sie do urzeczywistnienia tej wizji.
Oto karta praw użytkownika komputera (za zgodą Dr Karat)1: 1.Punkt widzenia. Użytkownik ma zawsze rację. Kiedy pojawiają się kłopoty z użyciem systemu, to system jest problemem, nie zaś użytkownik. 2.Instalacja. Użytkownik ma prawo do łatwej instalacji i usunięcia oprogramowania i sprzętu bez żadnych niekorzystnych konsekwencji. 3.Zgodność. Użytkownik ma prawo do systemu który działa dokładnie tak jak obiecano. 4.Informacja. Użytkownik ma prawo do łatwo dostępnej informacji i wskazówek (podręczniki, pomoc interakcyjna, komunikaty o awariach) umożliwiającej zrozumienie i zastosowanie systemu oraz bezproblemowe wychodzenie z sytuacji awaryjnych. 5.Kontrola. Użytkownik ma prawo do kontroli nad systemem i otrzymywania natychmiastowych reakcji od systemu. 6.Informacja zwrotna. Użytkownik ma prawo do tego, aby system udzielał jasnej, zrozumiałej i poprawnej informacji dotyczącej aktualnie wykonywanego zadania i jego statusu. 7.Zależności. Użytkownik ma prawo być jasno poinformownaym o wszystkich wymaganiach systemu, które muszą być spełnione w celu jego skutecznego stosowania. 8.Zakres. Użytkownik ma prawo znać wszystkie ogranicznia możliwości systemu. 9.Wspomaganie. Użytkownik ma prawo do porozumiewania się z dostawcą technologii i otrzymywania przemyślanych i pomocnych odpowiedzi na wszelkie zadawane pytania.
1 Opublikowano za zgodą IBM Corporation.
10.Użyteczność. Użytkownik, nie program ani sprzęt, ma być panem. Produkty powinny być naturalne i intuicyjne w użyciu. Pytania
Pytania mają na celu ułatwienie zrozumienia. W aneksie A „Odpowiedzi na pytania” znajdują się prawidłowe rozwiązania – ale nie należy ściągać! 1.Szukając na Internecie pracy związanej z testowaniem, jakich słów należy szukać startując przeszukiwarkę? 2.Wymień dwa sposoby, jak można miec do czynienia z testowaniem oprogramownaia przed jego wypuszczeniem na rynek. 3.Jakie są cele testera oprogramowania?
Dodaj komentarz