Książka przedstawia temat testowania oprogramowania w oparciu o model testowanego oprogramowania. Rozdział pierwszy to wprowadzenie do tematyki MBT (Model-Based Testing). Wyjaśnia również pojęcia: testowanie, Model-Based Testing i cztery główne podejścia określane tym terminem i spotykane w literaturze. Podejścia te nazywane i wymieniane są w takiej oto kolejności:
- Generowanie wejściowych danych testowych z domeny modelu
- Generowanie przypadków testowych z modelu środowiska
- Generowanie przypadków testowych wraz z wyrocznią z modelu behawioralnego
- Generowanie skryptów testowych z abstrakcyjnych testów.
Panowie Utting i Legeard w dużym skrócie wyjaśniają każdą z wymienionych definicji, skupiając się na trzeciej z nich, ponieważ o tym podejściu do MBT jest ta książka.
Rozdział drugi The Pain And The Gain, czyli w dosłownym tłumaczeniu "Ból i zysk", to prezentacja klasycznych metod testowania: najstarsza metoda, czyli testowanie manualne, następnie metoda "nagraj i odtwórz" oraz testowanie w oparciu o skrypty testowe. W kolejnej części tego samego rozdziału przedstawiono proces MBT. Autorzy dzielą MBT na 5 głównych kroków:
- Tworzenie modelu SUT (System Under Test) i/lub jego środowiska
- Generowanie abstrakcyjnych testów z istniejącego modelu
- Konkretyzacja abstrakcyjnych testów – testy stają się wykonywalne
- Wykonanie testów na SUT i przypisanie wyników
- Analiza wyników testów.
Rozdział trzeci zawiera praktyczne wskazówki jak zamodelować nasz system, jakiej notacji użyć w tym celu. Kolejny rozdział to kryteria wyboru testów. Rozdział piąty zawiera prosty przykład testowania aplikacji telefonicznej zamodelowanej jako skończoną maszynę stanów. Następny rozdział odpowiada na pytanie jak pisać pre/post modele do testowania. Rozdział szósty to z kolei dosyć szczegółowy opis testowania na podstawie UML-owego modelu tranzycji (przejść) – znajdują się w nim ogólne uwagi dotyczące notacji UML, przykład e-Teatru, który ma być testowany, następnie diagram przypadków użycia aplikacji e-Teatr, diagram klas, maszyna stanów dla klasy e-Teatr. Rozdział numer osiem dotyczy wspomnianego kroku trzeciego MBT – konkretyzacja abstrakcyjnych testów – czyli co zrobić, aby testy stały się wykonywalne. Chodzi tu o adaptację testów w taki sposób, aby można je było uruchomić na SUT. Zaprezentowane zostały trzy podejścia: odpowiedni adapter, skrypty testowe, hybryda – adapter + skrypty testowe. Rozdział dziewiąty stanowi opis studium przypadku zastosowania MBT dla karty telefonicznej SIM na podstawie standardu GSM 11.11. Rozdział dziesiąty to również bardzo obszerne studium przypadku tyle, że dotyczy ono testowania ATM (Automated Teller Machine) – bankomatu.
Ostatni rozdział książki traktuje bardzo ogólnie o tym, co jest wymagane celem stosowania MBT, tzn. wymagane kompetencje, dojrzałość przedsiębiorstwa, rodzaje zastosowań, jak MBT ma się do zwinnych metodyk zarządzania projektem informatycznym. Książka zawiera również dodatki, a wśród nich przytaczane notacje – notacja B maszyny abstrakcyjnej oraz OCL; listę komercyjnych narzędzi klasyfikowanych jako MBT.
Moje osobiste refleksje co do książki są takie, że na pewno nie czyta się jej łatwo i przyjemnie. Przed jej lekturą zalecałabym zapoznanie się z takimi terminami jak UML, OCL, automat skończony. Autorzy nie przedstawili w swojej książce praktycznych dowodów na to, że MBT jest podejściem do testowania, które się opłaca. Wprawdzie można już na początku książki przeczytać opis hipotetycznego projektu, w którym szacowana jest ilość godzin poświęcona na testowanie, niemniej jednak nie ma w nim nic na temat tego, ile należy w takie podejście zainwestować, aby faktycznie można byłoby w przyszłości czerpać z niego korzyści, i czy faktycznie wybór takiego podejścia jest uzasadniony ekonomicznie. W książce brakuje mi również odniesienia do zagadnienia zwiększonej jakości w ten sposób testowanego oprogramowania. Pomijając jednak wszystkie wady, zdecydowanie polecam zapoznanie się z tą publikacją oraz z tematyką MBT w ogóle.
Autor: Sylwia Bartman
Książkę można zakupić tutaj