Testowanie i jakość oprogramowania. Modele, techniki, narzędzia
Adam Roman
O książce głośno było jeszcze długo przed wydaniem. W kuluarach określano ją mianem „biblii” dla testerów i wiązano z nią ogromne nadzieje – mówiono, że w końcu pojawi się coś, co ma szansę zepchnąć z piedestału nieśmiertelne Testowanie oprogramowania Rona Pattona. Pojawiały się też nieliczne głosy sugerujące, że „się nie uda”, bowiem autor:
- nie jest praktykiem,
- nie jest znany w środowisku 🙂
To, że autor „nie jest praktykiem”, w najmniejszym stopniu nie przeszkodziło w napisaniu książki.
To, że autor „nie jest znany w środowisku”… cóż. Od dawna wiadomo, że nie każdy, kto ma znane nazwisko i udziela się społecznie oraz towarzysko, ma coś istotnego do powiedzenia 🙂
Wreszcie doczekaliśmy się i Testowanie… Adama Romana trafiło do księgarń. Doczekaliśmy się podwójnie. Na rynku polskim pojawiła się pozycja polskiego autora, która w naszej subiektywnej opinii przejdzie do legendy literatury branżowej.
Skąd takie mocne stwierdzenie? Otóż ta książka jest niemalże kompletnym kompendium wiedzy z obszaru testowania i jakości oprogramowania. Jeśli ma jakieś braki, to są one nieuchwytne – zakres materiału dosłownie poraża. Śmiemy twierdzić, iż nawet osoby pracujące w branży testerskiej od lat i mieniące się ekspertami w większości nie posiadają tej wiedzy (lub nie potrafią jej wykorzystać).
Książka składa się z 7 części, w których autor omawia następujące zagadnienia:
- Część 1. Podstawy testowania – wprowadzenie do tematu. W tej sekcji Adam Roman przybliża najważniejsze definicje, przedstawia typowy proces testowy i wskazuje miejsce testów w cyklu życia oprogramowania.
- Część 2. Techniki projektowania testów – szczegółowy, miejscami dość matematyczny i trudny do zrozumienia dla laika opis przeróżnych technik projektowania testów. O większości z nich osobom „wychowanym” na popularnych programach certyfikacji nawet się nie śniło. Ogromna wartość płynąca z tego rozdziału to przekazanie wiedzy dotyczącej możliwości praktycznego zastosowania opisywanych technik. Mamy tu zatem nie tylko teorię, ale i praktykę krok po kroku.
- Część 3. Testowanie charakterystyk jakościowych – opis modeli jakości bazujący m.in. na międzynarodowych, uznanych w branży standardach ISO. Temat jest bardzo ważny, ponieważ większość literatury skupia się raczej na testach funkcjonalnych. Zapomina się o tym, że w przypadku wielu systemów informatycznych o sukcesie przedsięwzięcia i satysfakcji odbiorców decydują nie funkcje, a cechy niefunkcjonalne – jakościowe, takie jak użyteczność czy niezawodność. Adam Roman opisuje poszczególne atrybuty jakościowe, skupiając się na ich znaczeniu i celu. Podaje również przykłady technik czy narzędzi odpowiednich do wykonywania poszczególnych testów.
- Część 4. Zarządzanie testowaniem – szczegółowe wyjaśnienie czynności związanych z ogólnym zarządzaniem zadaniami testowymi: planowaniem, szacowaniem, monitorowaniem etc. Na szczególną uwagę zasługuje podrozdział Techniki analizy ryzyka, w którym autor opisuje techniki znane z „tradycyjnego” zarządzania jakością – QFD czy FMEA. W naszej opinii warto przyjrzeć się temu zagadnieniu – w testowaniu znakomicie sprawdzają się „stare” metody, techniki i narzędzia jakościowe, nie tylko modne nowinki i koncepcje promowane przez certyfikacje. Kolejną mocną stroną tej części książki jest opis dokumentacji testowej. W internecie, literaturze i innych źródłach wręcz roi się od lepszych czy gorszych wzorców dokumentacji. Natomiast autor Testowania… nie tylko przytacza szablony, ale i prezentuje przykłady poszczególnych dokumentów – a o to już w dostępnych źródłach bardzo trudno.
- Część 5. Ludzie i narzędzia – obejmuje zasadniczo trzy tematy: aspekty ludzkie w testowaniu – kompetencje testera, budowanie i rozwój zespołu; techniki pracy grupowej; wsparcie narzędziowe w testowaniu. O narzędziach napisano już wiele, więc ten fragment książki niezbyt zaskakuje. Natomiast rozdziały dotyczące tworzenia zespołu i technik pracy grupowej to lektura obowiązkowa dla wszystkich liderów, kierowników czy osób w inny sposób „zarządzających” ludźmi. W typowych publikacjach o testowaniu brakuje właśnie tego aspektu – czynnika ludzkiego, który w wielu przypadkach decyduje o sukcesie lub porażce projektu.
- Część 6. Udoskonalanie procesu testowego – przegląd koncepcji i modeli doskonalenia procesów testowych. Od starego, acz sprawdzonego i wciąż jak najbardziej aktualnego cyklu Deminga czy filozofii TQM, po podejścia „nowoczesne”: TPI Next, CMMI czy TMMi. Autor odczarowuje tajemniczo i groźnie brzmiące skróty – w Testowaniu… są one zrozumiałe i nie tak straszne, jak można by przypuszczać na pierwszy rzut oka. Godnym polecenia fragmentem części 6. jest rozdział Podejście analityczne, opisujący doskonalenie procesów opierające się nie na modelu, a na analizie przyczynowej lub podejściu GQM (Goal – Question – Metric).
- Część 7. Jakość oprogramowania – ogólna charakterystyka jakości oprogramowania, a na dokładkę ogromna wiedza o pomiarach i metrykach. Temu fragmentowi szczególną uwagę powinny poświęcić osoby zarządzające procesem testowym, bowiem „jeśli nie możesz czegoś zmierzyć, nie możesz tym zarządzać” (motto metody BSC).
Siedem części, ponad 1000 stron wiedzy. Wiedzy – nie oszukujmy się – wymagającej momentami skupienia i solidnych podstaw matematycznych.
Jak podsumować tę książkę?
To nie jest podręcznik wyjaśniający poszczególne zagadnienia najprostszym możliwym językiem, tak by czytelnik nie musiał przemęczać się myśleniem. Lektura Testowania… wymaga więcej uwagi i wysiłku niż zapoznawanie się z królującymi obecnie w IT wpisami na blogach czy portalach branżowych. Gra jest jednak warta świeczki. W zamian za uważną lekturę Adam Roman oferuje czytelnikom rzetelną, solidną wiedzę, którą po odpowiednim dopasowaniu można zastosować w dowolnym kontekście i dla dowolnego zagadnienia.
To nie jest książka – studium przypadku. To nie jest zbiór dobrych zasad czy szczegółowy opis wybranej metodyki lub narzędzia. To nie są „najlepsze” praktyki niewiadomego pochodzenia bądź rady „eksperta”. To solidna dawka wiedzy popartej uznanymi źródłami, standardami i badaniami. Autor wprowadza w tematy testowania i jakości, a interpretację i zastosowanie praktyczne pozostawia czytelnikom. Stanowi to olbrzymią siłę i wartość Testowania… – zawarta w tej książce wiedza będzie aktualna o wiele dłużej niż jakakolwiek moda, technologia czy konkretne rozwiązania. Takie zaplecze można wykorzystywać w różnych kontekstach. Znajomość konkretnych rozwiązań na dłuższą metę ogranicza.
Sam autor tak pisze o swojej publikacji: „Zawartość książki abstrahuje od konkretnych technologii czy aplikacji, choć w jednym z rozdziałów prezentowany jest bogaty katalog konkretnych narzędzi testowych. Zależało mi na tym, aby przede wszystkim skupić się na wyczerpującym, dokładnym i rzetelnym opisaniu podstaw tej – wbrew pozorom trudnej! – dziedziny. Dzięki temu wiedza prezentowana w książce jest uniwersalna. Podręcznik pozwala Czytelnikowi na spojrzenie na inżynierię jakości »z lotu ptaka«, poznanie różnych jej obszarów oraz relacji pomiędzy nimi. Opisany materiał starałem się wyłożyć z jednej strony w sposób prosty i zrozumiały nawet dla początkującego testera, z drugiej – w sposób precyzyjny, formalny i wyczerpujący” (źródło: http://ww2.ii.uj.edu.pl/~roman/ksiazka.html)
Czy możemy polecić tę pozycję? Nie. Musimy ją polecić – każdemu, kto chce poznać tematykę testowania, a swoją wiedzę oprzeć na solidnej, rzetelnej podstawie.
Autorowi serdecznie gratulujemy znakomitej publikacji i czekamy na kolejną.
Wydawnictwo PWN zachęcamy do wydania książki na rynkach zagranicznych. Szkoda marnować taki potencjał.
Must have.
Ocena redakcji – 6/6.
2 – gdy przeczytałeś już wszystko w tym temacie i nie masz co począć z wolnym czasem
3 – przeciętna, pozycja nieobowiązkowa
4 – warto przeczytać
5 – bardzo dobra, godna polecenia
6 – kapitalna, zachowaj dla potomnych
Trzygroszówki:
Warto nadmienić, iż pojawiają się pojedyncze głosy podające w wątpliwość wartość przekazywanej w książce wiedzy. W niektórych fragmentach okazuje się ona bowiem niezgodna z podejściem reprezentowanym przez popularną certyfikację testerską ISTQB. Zarzuty są dość absurdalne. Po pierwsze, książka Adama Romana nie jest stricte podręcznikiem do certyfikacji. Od tego są plany nauczania, szkolenia czy materiały opracowywane na potrzeby poszczególnych modułów/poziomów programu certyfikacji. Po drugie, programy certyfikacji – mimo ich niewątpliwej wartości i korzyści, jakie daje próba standardyzacji pojęć i procesów – nie są pozbawione pewnych wad, które powodują, że trudno uznawać je za w pełni rzetelne źródło informacji. Czasami lepiej zasięgnąć wiedzy u źródeł i skonfrontować różne punkty widzenia na dany temat – co uczynił autor Testowania i jakości oprogramowania.