Komu bije test

Czy stolarz zatrudni testera?

Test się opłaca nawet w tak prostej, zdawałoby się, pracy, jak budowanie stołu. Wyjątkiem od tej zasady pozostają ucieczki przed lwami oraz kawaleryjskie szarże - tam przewagę ma działanie spontaniczne i natychmiastowe.

Czyż jednak nawet staranny, zdyscyplinowany, w ołówek, papier i calówkę zbrojny stolarz potrzebuje testera stołów? Specjalisty, który mu podpowie, gdzie najlepiej przyłożyć calówkę i w odpowiednim momencie przypomni, że pora byłoby zmierzyć tę deskę? Wydaje się to absurdalne.

Nawet o wiele bardziej technicznie skomplikowane branże - np. budownictwo - specjalności inżyniera-testera nie znają. Dlaczego więc specjalność taka miałaby być potrzebna przy wytwarzaniu programów?

Otóż po pierwsze, nie jest prawdą, że tester-inżynier budownictwa nie istnieje. Wprawdzie nikt sobie takiego tytułu nie wypisuje na wizytówce, ale rozmaite działania pomiarowe, kontrolne i weryfikacyjne (choć nie nazywa się ich testowaniem) są nie tylko w budownictwie, ale przede wszystkim we wszelkich branżach produkcyjnych bardzo rozbudowane i rygorystyczne. Istnieją też inżynierowie specjalizujący się w nadzorowaniu i wykonywaniu kontroli jakości.

Po drugie i ważniejsze, między produkcją oprogramowania a innymi branżami konstrukcyjnymi czy produkcyjnymi istnieje zasadnicza różnica. Branże, nazwijmy je "tradycyjnymi", wytwarzają dobrze zdefiniowane, niezbyt - w porównaniu z oprogramowaniem - zróżnicowane produkty, np. domy, mosty albo samochody. Proces wytwórczy daje się tam zdefiniować względnie precyzyjnie i "testowanie" - wszelkie czynności kontrolno-weryfikacyjne - jest z tym procesem ściśle zintegrowane, zrośnięte. Inżynierię oprogramowania można zaś nazwać "inżynierią robienia wszystkiego", tyle że przy użyciu - zamiast betonu czy stali - "materii" instrukcji wykonywanych przez mikroprocesory. System bazodanowy, system operacyjny, kompilator, rozbudowany portal internetowy, gra komputerowa, aplikacje zarządzające centralą telefoniczną, wbudowane systemy sterujące silnikami samolotu, hamulcami (ABS) czy pralką - wszystko to przecież oprogramowanie.

Specjalność: testowanie programów

Nie da się stworzyć jednakowej i do tego szczegółowej receptury konstruowania dla wszelkich typów programów. Zauważono jednak, że istnieje wiele zasad dotyczących testowania, które są względnie podobne czy wręcz identyczne - niezależnie od rodzaju i funkcji testowanego programu. Istnieje osobny, dający się zdefiniować i opisać zakres wiedzy w tej dziedzinie, w którym można się specjalizować, podobnie jak można się specjalizować np. w programowaniu w języku Java czy architekturze baz danych. Z tą jednak różnicą, że testowanie jest wiedzą o wyższym poziomie ogólności. W słynnej już dziś książce Mityczny osobo-miesiąc Fredericka P. Brooksa, której pierwsze wydanie pojawiło się jeszcze w roku 1975 (!), znajduje się oszacowanie, że typowo kodowanie zajmuje ok. 15% zasobów projektu, podczas gdy testy - na wszystkich poziomach razem - ok. 50%! Jakim więc przerażającym absurdem jest to, że o ile programista jest od dawna zaakceptowaną profesją, o tyle tester musi dopiero walczyć o akceptację.

Już starożytni Grecy...

I co ważniejsze nie są to zagadnienia nowe, nieznane ani rewolucyjne. Wystarczy sięgnąć po 30-letnią już niemal książkę Dennie Van Tassella Praktyka programowania, wydaną w roku 1974 (pierwsze wydanie polskie 1978). Znajdziemy w niej obszernie rozbudowany rozdział poświęcony teorii i praktyce testowania w projektach informatycznych, w którym opisano precyzyjnie i klarownie to wszystko niemal, co jest podstawą tego zakresu wiedzy, o którego uznanie kruszę tutaj kopię w roku... 2003! Pierwsza duża europejska konferencja poświęcona testowaniu - EuroSTAR - odbyła się po raz pierwszy w Edynburgu dopiero w roku 1992. Z kolei pierwszy europejski certyfikat zawodowych umiejętności dla testerów - o których przecież niewiele może się nauczyć przeciętny student informatyki czy elektroniki - powstał w 1997 r., a więc zaledwie sześć lat temu.

Dlaczego ponowne odkrycie tego, co wydawało się oczywiste już na początku lat 70., zajęło aż 20 lat z okładem? Czy przyczyna tego stanu rzeczy tkwi w szalenie dynamicznym, nie mającym w historii techniki odpowiednika, wzroście zastosowań informatyki? Zapewne tak, ale to jednak tylko część prawdy.


TOP 200