Administrator? Programista? A może Tester?
27.08.2011 12:53
Na początku małe wyjaśnienie. Co to jest (za Wikipedią) Testowanie Oprogramowania ?
Testowanie oprogramowania – proces związany z wytwarzaniem oprogramowania. Jest to jeden z procesów zapewnienia jakości oprogramowania. Testowanie ma na celu weryfikację oprogramowania oraz walidację oprogramowania. Weryfikacja oprogramowania ma na celu sprawdzenie, czy wytwarzane oprogramowanie jest zgodne ze specyfikacją. Walidacja sprawdza, czy oprogramowanie jest zgodne z oczekiwaniami użytkownika.
Czyli klikamy jak nienormalni po programie i patrzymy co się dzieje? Wiele osób właśnie tak sobie wyobraża testowanie aplikacji. Napiszę trochę brutalnie - to tak jak by wyobrażać sobie pracę pielęgniarki po obejrzeniu filmów z gatunku XXX ;‑) Dodatkowo jest to niezła droga do pozostawienia sporej ilości błędów w aplikacji. Oczywiście jest coś takiego jak testowanie eksploracyjne. Jednak przy takiej pracy należy dobrze znać aplikację, tak by wiedzieć gdzie szukać.
Ponieważ jest to część pierwsza skupię się na zagadnieniu: "Szukamy odpowiedniego Testera"
Wymagania (i wyjaśnienia): - znajomość systemów operacyjnych z rodziny Windows (klienckie i serwerowe - wiedza podstawowa) - znajomość SQL - tak by stworzyć zapytanie typu SELECT, UPDATE, INSERT, aby wiedzieć co oznaczają błędy jak wykonamy gotowy skrypt - podstawy programowania - tak by wiedzieć co robi pętla i jak wygląda proces kodowania - spostrzegawczość - tak by zauważyć błędny link lub niepoprawne odwołanie w menu - umiejętność czytania i pisania - to nie żart. Musisz przecież przeczytać specyfikacje i opisać napotkane błędy.
Teraz zagadka z odpowiedzią: ile trwa znalezienie takiej osoby i jak wypadają osoby po studiach informatycznych (czy mających coś wspólnego z informatyką). Zazwyczaj od kilku tygodni do kilku miesięcy... tak to nie jest żart. Bardzo często znajomość SQL oznacza, że osoba nie wie jak napisać:
SELECT * FROM tabela WHERE cena > 100
Osoba, która w swoim CV wpisała:
Programowanie C# - projekty komercyjne
Nie potrafi powiedzieć jak sprawdzić np. logowanie do aplikacji. O dziwo umiejętności są tak niskie, że większość kandydatów nie dociera do przysłowiowego "ile chciał/chciała by Pan/Pani zarabiać". Sporo z tych osób jest po studiach informatycznych, trochę po technicznych mających programowanie w programie studiów. Jednak nie narzekajmy na jakoś edukacji - to temat rzeka. Idziemy dalej - mamy już naszą perełkę, która przeszła przez wstępne sito. Co dalej? Zatrudniamy? Nie to by było za proste. Tester powinien mieć jeszcze trochę tych nie lubianych w IT umiejętności "miękkich". Co to oznacza? Musi w taki sposób przekazać informację o problemie by osoba odbierająca tą wiadomość nie poczuła się jak po spotkaniu z zawodowym bokserem. Taaaak, to nazywa się dyplomacja :‑). Przecież nie chodzi o to by rzucać błędami na prawo i lewo, ale by te błędy były jak najszybciej naprawione oraz by zespół po miesiącu nie wyglądał jak Hiroszima po zrzuceniu bomby atomowej. Czy takie poszukiwania maja sens? Oczywiście! Z dobrym testerem/testerami zespół jest o wiele bardziej wydajny i działa jak sprawna, naoliwiona maszyna. Oczywiście takie umiejętności "miękkie" przydają się wszystkim osobą w teamie, ale to na barkach Testera jest przekazanie złej informacji o dziecku, które właśnie stworzył programista. Kto chociaż raz w życiu napisał kawałek kodu, który oceniały inne osoby (i krytykowały go!) wie o czym piszę.
Co dalej? Kto i jak powinien testować (swój) kod? Czy ta praca jest fajna czy nudna? Jak jesteście ciekawi ciągu dalszego, to zapraszam do przeczytania następnej części... za jaki czas ;‑)
* ten wpis piszę z perspektywy kilku lat doświadczenia i swoich obserwacji. Sam wcześniej przeszedłem przez różne ścieżki w IT (administracja, wdrożenia, trochę programowania) a teraz zajmuję się testowaniem.