Po sukcesie wydanej w 2015 roku monografii „Testowanie i jakość oprogramowania. Metody, narzędzia, techniki” autorstwa Adama Romana wydawnictwo PWN postanowiło iść za ciosem i przedstawić nam niejako kontynuację tej pozycji. W książce „Testowanie oprogramowania w praktyce. Studium przypadków” mamy okazję przyjrzeć się zagadnieniom związanym z testowaniem na prawdziwych przykładach zaczerpniętych z codziennej pracy autorów.

Każdy z szesnastu rozdziałów napisał inny autor, bądź autorzy. Większość nazwisk jest znana w testerskim środowisku – są to osoby, które spotykamy jako prelegentów na branżowych konferencjach, autorzy publikacji i twórcy inicjatyw związanych z zapewnianiem jakości oprogramowania. Do powstania książki przyczynili się m.in. Marta Firlej, Radosław Smilgin czy Piotr Wicherski. To ogromna zaleta tej pozycji, że oparto ją na doświadczeniach tak licznych i uznanych praktyków branży.

Redakcją naukową zajęli się Karolina Zmitrowicz oraz wspomniany już wcześniej Adam Roman – autorzy wielu publikacji i książek związanych z analizą wymagań oraz testowaniem oprogramowania. Patrząc na nazwiska autorów i redaktorów, już w momencie zakupu książki mamy, nie bez powodu, bardzo duże oczekiwania co do jej zawartości. Sprawdźmy, czy zostaną one zaspokojone.

Automatyzacja

Zaczynamy od automatyzacji testowania. Z rozdziału poświęconego tej tematyce dowiemy się, w jaki sposób wprowadzić do projektu testy automatyczne, aby poradzić sobie jak najlepiej w ograniczonym czasie oraz budżecie. Autorka, Natalia Krawczyk, przedstawia proces „porządkowania” procesu testowego, który praktycznie nie istniał. Dodając do tego brak dokumentacji, kod źródłowy złej jakości oraz ograniczoną komunikację z klientem możemy sobie wyobrazić jakim to było wyzwaniem. Jest to źródło praktycznej i bardzo ciekawej wiedzy.

Testowanie mobilne

Kolejne dwa rozdziały wprowadzają w świat testowania mobilnego. Niestety pierwszy traktuje zagadnienie bardzo ogólnie. Dodatkowo, nie wiadomo po co autor opisuje i przedstawia na rysunku rodzaje szaf, w których tester może przechowywać urządzenia mobilne. Posługuje się on również skomplikowanymi pojęciami, takimi jak na przykład ADB, nie tłumacząc jednak ich znaczenia. W drugim rozdziale temat przedstawiono dużo bardziej konkretnie. Gdyby obie te części połączyć i trochę skrócić, wyszedłby bardziej zwięzły i znacznie łatwiejszy do czytania materiał.

Użyteczność i testy eksploracyjne

W pierwszym z dwóch rozdziałów poświęconych testom użyteczności oraz wydajności otrzymujemy prawdziwe kompendium wiedzy, na której możemy się wzorować gdybyśmy chcieli zagłębić się w podobny temat. W drugim natomiast autor podaje sporo dobrych praktyk i wskazówek, jak rozwinąć i ulepszyć swoją własną metodologię prowadzenia testów wydajności. Obie części przeznaczono jednak dla osób, które na co dzień zajmują się tą tematyką i maja już pewne doświadczenie. Brakuje wprowadzenia i odniesienia się do podstaw, tak aby początkujący też skorzystali i zdobyli nową wiedzę.

Artykuł dotyczący testów eksploracyjnych jest niewątpliwie najlepszą i najciekawszą częścią książki. Zawiera informacje, których próżno szukać w innych miejscach. Temat testów eksploracyjnych wciąż niestety jest traktowany trochę po macoszemu – możliwe, że ze względu na trud, jaki trzeba sobie zadać, aby zgłębić to zagadnienie. Radosław Smilgin przedstawia zagadnienie w bardzo praktyczny i przystępny sposób oraz podaje na tacy mnóstwo praktycznych wskazówek, jak „ugryźć” ten temat.

Zapobieganie problemom

Nie zapomniano również o takich kwestiach, jak zapobieganie problemom związanym z jakością oprogramowania, które mogą pojawić się na skutek nieprzewidzianych działań. Autorzy radzą, jak przeprowadzać pewne procesy, np. usprawnienie komunikacji z klientem, zwiększenie roli analizy wymagań, czy też przeprowadzenie testów alfa, beta i akceptacyjnych.

Testy w dużym zespole

A co z testowaniem w dużych zespołach? Zainteresowani tym tematem nie będą zawiedzeni. Autorzy rozdziału poświęconego tej kwestii opisują swoje doświadczenia z prowadzenia testów w dużej korporacji. Wspominają o wyzwaniach, takich np. jak: wpływ regulacji na model pracy przy wytwarzaniu oprogramowania w sektorze bankowym, motywacja pracowników, czy problemy wynikające z równoległego testowania różnych projektów we wspólnym środowisku. Pojawiają się również informacje na temat bardzo popularnego ostatnio tematu grywalizacji. Okazuje się, że również można ją z powodzeniem wykorzystać w celu zwiększenia zaangażowania pracowników. Autorzy opisują, w jaki sposób wprowadzili ją w swojej organizacji i jakie pozytywne efekty przyniosła.

Testowanie a sztuczna inteligencja

W rozdziale poświęconym sztucznej inteligencji opisano, jak wykorzystać ją przy określaniu fragmentów kodu, przy których należy zachować jak najwyższe standardy. Dzięki temu minimalizujemy ryzyko wystąpienia nieprawidłowości. Niestety większa część tekstu napisana jest stylem publikacji naukowej. To sprawia, że osobie nieprzyzwyczajonej do takiego zapisu może być ciężko przebrnąć przez ten rozdział.

Na zakończenie otrzymujemy fragment dotyczący przyszłości testowania, zastosowania w tej dziedzinie sztucznej inteligencji, sieci neuronowych oraz algorytmów genetycznych. Tak ciekawy i niebanalny temat przedstawiony w zwięzłych słowach sprawia, że całość jest bardzo dobrym zwieńczeniem całej publikacji.

Podsumowanie

„Testowanie oprogramowania w praktyce. Studium przypadków” to pozycja, która powinna się znaleźć w biblioteczce każdego testera. Jest ona pełna konkretnych przykładów dotyczących większości zagadnień i problemów, przed jakimi stajemy codziennie jako testerzy oprogramowania. Takiej pozycji zdecydowanie brakowało na rodzimym rynku wydawniczym.

Jedną z niewielu wad, jakie dostrzegam w tej publikacji jest kwestia linków do źródeł. Na plus zaliczyć można oczywiście bardzo dużą liczbę źródeł dołączonych do poszczególnych rozdziałów. Jednak chcąc wykorzystać którykolwiek z nich, trzeba przepisać cały adres strony internetowej, czasami naprawdę długi. Wydaje się, że niewielkim kosztem dla wydawcy byłoby zebranie tych linków w jednym miejscu i udostępnienie online.

Nie ulega też wątpliwości, że książka nie wyczerpuje tematu. Do omówienia zostało jeszcze wiele zagadnień. Oczywiście jest to kwestia, którą można nadrobić. Mam więc nadzieję, że już wkrótce wydawnictwo PWN podejmie się przygotowania kontynuacji tej wartościowej publikacji.
Czytaliście już tę książkę? Jeśli tak, podzielcie się wrażeniami z lektury w komentarzu. Jestem ciekaw Waszych wrażeń.

Certified Agile Tester and Requirements Analyst, holds a postgraduate diploma in software testing and requirements engineering. As a Scrum team member infects everyone at Goyello with his uncompromising attitude towards quality assurance.