"ISTQB® Foundation Level Certified Model-Based Tester - Syllabus" w swoim zamierzeniu jest podręcznikiem przygotowującym do egzaminu. Ponieważ samo testowanie w oparciu o model wydaje się być dość niszowe i niezbyt popularne w Polsce, nie wróżę tej części certyfikacji dużego zainteresowania. Jednak warto zwrócić uwagę na tę publikację jako ciekawego e-booka opisującego pewien aspekt testowania. Ta zmiana perspektywy pomaga odciąć się od całej dyskusji dotyczącej ISTQB i ocenić kawałek wiedzy zawarty w publikacji. Jest to pokaźne źródło wiedzy, bo jeśli wytniemy całość organizacyjną sylabusa (Purpose of the Document, Overview, Learning Objectives, itd.), a zostawimy wiedzę, to w rękach będziemy mieli około 30 stron maszynopisu.
Rozdział pierwszy - Introduction to Model-Based Testing to zgrabne wprowadzenie do tematu testowania w oparciu o model. MBT jest jedną z technik projektowania przypadków testowych i w większości przypadków wymaga wsparcia narzędziowego. Jego głównym celem jest formalizacja zapisów wymagań prowadząca do lepszego zrozumienia budowanego oprogramowania. Perspektywa autorów sylabusa jest tu jednoznacznie pozytywna i tu pewnie można upatrywać największej słabości podręcznika. W publikacji znajdziemy więc informacje o efektywności i skuteczności techniki, a jedynym negatywnym jej aspektem będzie jej "niezrozumienie". Stąd też stek banałów i oczywistości typu - "MBT nie rozwiąże wszystkich twoich problemów". Nikt trzeźwo myślący nie ma przekonania, że wszystkie problemy świata (czy tylko projektu) zostaną rozwiązane przez testowanie oparte na modelu i wspominanie o tym jest niepotrzebnym "pompowaniem" tekstu.
Osobiście rażą mnie nadużywane przymiotniki opisujące metodę jak np. "doskonała". Takie określenia nie przystoją konkretnej i merytorycznej publikacji.
Są również bardziej wartościowe rzeczy, na przykład pokazanie, jak MBT wpisuje się w model wytwarzania i testowania oprogramowania (1.2 MBT Activities and Artifacts in the Fundamental Test Process oraz 1.3 Integrating MBT into the Software Development Lifecycles). Pokazuje, co potrzebujemy na wejściu i na wyjściu procesów, by skutecznie wdrażać modele i używać ich do testowania. Pewnym nadużyciem jest "wciskanie" tak sformalizowanej metody w ramy Agile, co samo w sobie jest sprzeczne. Nie miałem okazji nigdy zobaczyć takiego karkołomnego połączenia i pewnie nikt by się na to nie zdecydował.
W kolejnym rozdziale (2 MBT Modeling) mamy opis aspektu modelowania oprogramowania. Zanim powstaną przypadki testowe mamy żmudny i czasochłonny (takich stwierdzeń nie znajdziemy w podręczniku) proces budowania samego modelu. W sylabusie ciekawie i rzeczowo opisano proces przygotowania się do budowy modelu, w tym proces analizy przed definiowaniem modelu z pytaniami, jakie powinniśmy sobie zadać:
- co warto zamodelować (jakie charakterystki jakości)?
- jakiego języka użyć do modelowania?
- na jakim poziomie abstrakcji opisać model?
Oprócz tego znajdziemy tam również rekomendacje i dobre praktyki, które szczególnie początkującym osobom mogą pomóc w definiowaniu modelu z perspektywą jego późniejszego użycia.
Rozdział trzeci (Selection Criteria for Test Case Generation) to bardzo praktyczny fragment podręcznika. Pokazuje aspekt doboru testów do wykonania (oczywiście podparty modelem) z odniesieniem do wzorcowych kryteriów zakończenia testów. Warto zauważyć, że większość wcześniejszych materiałów ISTQB nie odnosi się do konkretnych przykładów, opisując jedynie tekstowo dany obszar (np. techniki). W podręczniku MBT aż jeży się od przykładów (jak na standard sylabusów ISTQB), co czyni go jeszcze bardziej przydatnym materiałem.
Samo projektowanie i uruchomienie testów opisane jest w rozdziale 4 MBT Test Implementation and Execution. Nie mogło w nim zabraknąć odniesień do sylabusa poziomu podstawowego i wspomnianych tam technik opartych na słowach kluczowych oraz testowaniu w oparciu o dane testowe.
Rozdział 5 (Evaluating and Deploying an MBT Approach) można by traktować jako nieprozumienie w rozumieniu certyfikacji ISTQB lub dodatkową wartość jeśli uznamy, że czytamy publikację mającą na celu przekazać wiedzę o MBT. Miesza się w nim aspekty menedżerskie i testerskie. Gdybyśmy czytali sylabus przygotowując się do egzaminu, to możemy ocenić, że wiedza tego rozdziału nie przyda się zwykłym testerom w ich codziennej pracy. Z drugiej strony menedżer nigdy nie zdecyduje się na taką certyfikację jako zbyt szczegółową i techniczną, choć ta część mogłaby być dla niego wartościowa. W tej części dowie się co nieco o zarządzaniu czy kosztach MBT, jak i o KPI-ach. Gdybyśmy czytali to jako e-book, można by uznać, że osoby z zacięciem kierowniczym poświęciłyby tym tematom więcej uwagi, podczas gdy zwykły tester pominąłby tą część.
Na koniec warto docenić dodatek, który opisuje metody budowania modelu w oparciu o UML wraz z ich przełożeniem na projektowanie testów.
W podsumowaniu można powiedzieć, że gdyby sylabus ISTQB MBT oceniać jedynie w odniesieniu do przekazanej wiedzy i stosując skalę szkolną, to dostałby on czwórkę z minusem. Dzięki niemu na pewno przybliżycie sobie temat testowania w oparciu o model i jego wartość. Może nie będziecie gotowi na wdrożenie tej metody, ale podstawy teoretyczne i bazę do rozmowy z zawodowcami już będziecie mieli. Lekturę polecam jako uzupełnienie sylabusa poziomu podstawowego ISTQB.
Jeśli oceniać sylabus w kategoriach ISTQB, to warto docenić zmiany. Jest to ostatni produkt tej organizacji i może sygnalizować pewną zmianę. Są przykłady, są i obrazki, choć ISTQB się przed nimi broni (przykładowy poniżej).
Jest to pewnie krok w tworzeniu sylabusów bardziej praktycznych, ale również mniej trwałych, ponieważ będą musiały być aktualizowane, gdy praktyki rynkowe będą ewoluowały. Sylabus powiela niestety również stare błędy ISTQB, jak mieszanie tematów kierowniczych i testerskich oraz brak krytycznego spojrzenia na opisywany temat.
Radek Smilgin