Myślę, że jestem jednym z niewielu ludzi w Polsce, którzy książkę Kanera mogą zrecenzować. Po pierwsze jest to książka o testowaniu, co zawęża potencjalnych czytelników do jakichś 50-ciu tysięcy. Po drugie mam przekonanie, że niewielu testerów po nią sięgnie. Część zniechęci cena, część odrzuci jej rozmiar, część pewnie zrezygnuje po przeczytaniu tej recenzji. Książka bowiem sięga do podstaw testowania. Penetruje absolutne niziny testowania, gdzie dla dużej części testerów znajduje się tylko nieskończona nuda.
Po trzecie napisałem "książkę" o danych testowych, więc mogę powiedzieć, że na danych znam się nie od dzisiaj. Tamta publikacją realnie nie jest książką. To raczej broszura z prostym instruktażem do danych testowych. Książeczka spotkała się z negatywnymi komentarzami. Można więc powiedzieć, że skoro w opinii kilku osób nie sprawdziłem się w tej dziedzinie, to zawsze mogę spróbować krytykować innych. Czy nie takich mamy krytyków filmowych i literackich? Moja krytyka będzie jednak pochwałą pracy Kanera, Padmanabhana i Hoffmana.
Ta książka jest wielka! Nie jest wielka tylko rozmiarem, ale jest wielką składnicą wiedzy. Można ponownie napisać, że wiedzy nie dla każdego, ale na pewno wiedzy, która pozwala inaczej spojrzeć na testowanie. Autorzy przykładają dużą wagę do rzeczy, które większość uważa za małe i nieistotne. Do analizy najmniejszej danej testowej i optymalizacji doboru tych danych, celem zwiększenia efektywności testowania. Proces analizowania danych jest tutaj kaskadą zbliżoną do tej opisanej w "Danych testowych", ale oczywiście opisaną znacznie obszerniej i ciekawiej zaprezentowaną. Zawiera wiele przykładów, choć część z nich powtarza się zbyt często. Można mieć wrażenie, że przykłady pochodzą z pewnego wąskiego obszaru interfejsu użytkownika i prostej logiki biznesowej. Rzeczywiście osoby z projektów wbudowanych, integracyjnych, czy też pozbawionych elementów graficznych mogą mieć trudności w przełożeniu przykładów na swoją codzienną pracę.
Autorzy próbują analizować dane uciekając od interfejsu użytkownika w takich obszarach jak:
- przechowywanie danych
- kalkulowanie w oparciu o dane
- konsekwencje użycia danych.
Przejdźmy jednak do sedna, czyli do zawartości merytorycznej. W książce tej dane przestają być płaskie i jednoznaczne. Uzyskują inny wymiar, nie są wartościami, ale są zmiennymi. Czasami są wektorami, czasami wielowymiarowymi obiektami, które trzeba odpowiednio przetestować. W prostym formularzu, w którym przekazujemy dane może być przecież wiele relacji. Pewne pola pojawią się lub znikną po udzieleniu takiej, a nie innej odpowiedzi. Walidacja na polach zwróci nam informację będącą wynikiem analizy zmiennych wprowadzonych do pola. Może to być TRUE, ale może to być również komunikat błędów. To właśnie takie przypadki próbuje narysować nam ta książka, pokazując i pomagając zrozumieć relacje między zmiennymi.
Autorzy próbują odpowiedzieć na wiele innych zagadnień, które pojawiają się w testowaniu np.:
- czy jeśli do pola możemy wprowadzić dowolny ciąg znaków, to ile testów potrzeba nam na uzyskanie jego pełnego pokrycia?
- a jeśli znaki ograniczone są tylko do alfanumerycznych, to czy ilość testów się zmniejszy czy zwiększy?
- czy pole, do którego teoretycznie można wprowadzić wszystko, jest naprawdę nieskończone?
- itd.
Kaner i spółka bez pokazania jedynego słusznego rozwiązania wskażą nam problem zmiennych, które dają nam jedynie pewne pokrycie. Przy definiowaniu pokrycia niezmiernie łatwo jest o czymś zapomnieć, albo przesadzić z ilością zaprojektowanych testów. Co gorsza oba błędy można popełnić jednocześnie. Dużo miejsca w książce zajmuje więc testowanie domenowe z uwzględnieniem ryzyka. Pokazuje nam, jakie ryzyka kompensujemy testami i jakie ryzyka pojawią się jeśli czegoś nie przetestujemy.
Podsumowując, jest to prawdziwy workbook z wieloma przykładami i omówieniami. Ta książka dla niektórych może być zbyt matematyczna. Dla niektórych może być zbyt szczegółowa w odniesieniu do danych. Jest to jednak warsztatowa analiza zagadnienia testowania wielowymiarowych danych, gdzie każdy kolejny przykład otwiera nam oczy na testy, które moglibyśmy wykonać. Bardzo polecam.
Radek Smilgin
Książkę można kupić w Amazonie.