piątek, 5 stycznia 2007

Przewodnik dla praktyków

W 2003 roku, po raz pierwszy ukazała się drukiem książka Lee Copelanda, "A Practitioner's Guide to Software Test Design" nakładem wydawnictwa Artech House Publishing. Niestety książka wydana jest w języku angielskim co stanowi duże ograniczenie dla polskiego odbiorcy... ale mam nadzieję nie jest to ograniczenie niedopokonania (w chwili obecnej pracuję nad tłumaczeniem tej książki).

Wydanie

Książka wydana została w twardej oprawie, z foliowaną okładką. Układ druku jest przejrzysty i dosyć duży co na pewno ułatwia czytanie i korzystanie z niej. Każdy rozdział stosuje tą samą strukturę: wstęp, opis techniki, przykłady, opis zastosowania i ograniczeń, podsumowanie, ćwiczenia oraz literaturę referencyjną.

Dodatkowo, najważniejsze treści umieszczone zostały na zewnętrznych marginesach jako punkty kluczowe pozwalające w łatwy sposób znaleźć interesującą czytelnika treść. Ilustracje niestety są czarno-białe i dość kiepskiej jakości ale nie przeszkadza to w ogólnym odbiorze.

Wydawca wyposażył książkę w indeks a autor jako dodatek przygotował spis literatury pomocnej w dalszym zgłębianiu opisywanych zagadnień. Dodatkowo, umieszczono dwa załączniki zawierające studium przypadku: jeden to firma brokerska a druki to internetowy system rejestracji. Większość ćwiczeń zaproponowanych w tej książce odnosi się do tych studiów co w miarę łatwy sposób pozwala na ich wykonanie.

Książka prezentuje 7 technik testowania czarną skrzynką oraz dwie techniki testowania białą skrzynką.

Treść

Struktura książki nominalnie podzielona jest na 5 sekcji, jednak w rzeczywistości zawiera tych sekcji 6 plus dwa załączniki.

Sekcja pierwsza zawiera podziękowania autora dla osób, które przyczyniły się do powstania tej książki. Czytelnik znajdzie tutaj również rozdział poświęcony procesowi testowania wraz z próbą diagnozy współczesnych wyzwań w stosunku do testowania oprogramowania oraz opisem poziomów testowania zapożyczonym od Beizera.

Nominalna sekcja I skupia się na czarnoskrzynkowych technikach testowania i opisuje w kolejności:
  • testowanie w oparciu o klasy równoważności
  • testowanie wartości granicznych
  • testowanie tabelami decyzyjnymi
  • testowanie parami
  • testowanie przejść stanów
  • testowanie analizą dziedzin
  • testowanie przypadków użycia
Każda z tych technik opatrzona jest komentarzem metodologicznym oraz rozważaniami związanymi z ich ograniczeniami i wykorzystaniem. W trakcie lektury czytelnik ma możliwość śledzenia całego procesu danego podejścia poprzez wplatanie wielu drobnych przykładów oraz objaśnień. Aczkolwiek, nie pozostawia to niedomówień, których jest mnóstwo ale z którym czytelnik będzie sobie musiał poradzić sam.

Nominalna sekcja II opisuje techniki testowania białą skrzynką. Autor tutaj wymienia tylko dwie:
  • testowanie kontroli przepływu
  • testowanie przepływu danych
Znakomitą część opisu tych technik stanowi synteza książek Myersa "Sztuka testowania oprogramowania" oraz Bindera "Testowanie systemów obiektowych".

Sekcja III zajmuje się opisem paradygmatów testowych. Tutaj najciekawszym fragmentem określiłbym rozdział 13 opisujący testy eksploracyjne porównując je do gry w 20 pytań (ciekawostkę na gruncie polskim można znaleźć tutaj). Znalazło się tutaj także miejsce aby naświetlić problem planowania testów.

Sekcja IV zajmująca się technologiami wspomagającymi, w rzeczywistości skupia się na taksonomiach defektów oraz kryteriach zakończenia całego procesu testowania.

Uwagi końcowe

Całość napisana jest w stylu, który określiłbym jako "synkretyczny"... w tym znaczeniu, że autor nie potrafi się zdecydować czy adresuje wypowiedź do jednej osoby, liczniejszej publiczności czy też bez osobowo.

W kilku miejscach miałem wrażenie, że autor przedobrzył z upraszczaniem zagadnienia wprowadzając niedomówienia ale z całą pewnością nie jest to błąd poważny. Jednym słowem uważam, że jest to bardzo interesująca pozycja z punktu widzenia czytelnika zajmującego się kontrolą jakości oprogramowania. Pozwala ona zweryfikować dotychczas posiadaną wiedzę oraz poszerzyć ją tam gdzie tego wymaga.

Dodatkowo, książka zawiera wiele odnośników do narzędzi lub stron internetowych wyjaśniających dogłębniej niektóre, bardziej skomplikowane kwestii.

Z pewnością zaliczyłbym tą pozycję do lektur obowiązkowych dla każdego, kto uważa się za profesjonalnego testera.

Brak komentarzy: