Testowanie oprogramowania z wykorzystaniem generatywnej AI – Mark Winteringham Helion

Testowanie oprogramowania jest krytycznym elementem procesu wytwarzania, gwarantującym jakość, niezawodność i bezpieczeństwo dostarczanych systemów i produktów. W ostatnich latach generatywna sztuczna inteligencja (ang. generative artificial intelligence, generative AI, GenAI) i duże modele językowe (ang. large language models, LLMs) otworzyły nowe możliwości dla testowania: automatyzację pewnych zadań, generowanie danych testowych, znaczące wsparcie procesu projektowania skryptów automatycznych, a nawet wspomaganie testowania eksploracyjnego, obiecując znaczne przyspieszenie cyklu wydawania. Z jednej strony eksperci prowadzą krytyczne rozważania odnośnie wiarygodności, kontroli i etyki wykorzystania AI w tak wrażliwym obszarze, jak zapewnienie jakości. Z drugiej strony, strategiczne możliwości AI w optymalizacji kosztów i czasu testowania są zbyt duże, by je ignorować. I choć wiele firm inwestuje coraz więcej zasobów w rozwój kompetencji pracowników w zakresie AI i jej integrację z procesem tworzenia oprogramowania, teoria nie zawsze łatwo przekłada się na praktykę, tym bardziej, że wdrożenie tego typu rozwiązań wymaga przezwyciężenia wielu wyzwań związanych z kontekstem domenowym, halucynacjami modeli i efektywną inżynierią promptów. Książka “Testowanie oprogramowania z wykorzystaniem generatywnej AI” Marka Winteringhama stanowi ciekawy i praktyczny pomost między innowacyjnym potencjałem AI a rzeczywistymi przykładami i gotowymi implementacjami w procesie testowania.

Książka podzielona jest na trzy logiczne części, które obejmują trzy kluczowe atrybuty stanowiące niezbędny fundament dla skutecznej i odpowiedzialnej pracy z modelami językowymi: nastawienie (mindset), technikę i kontekst. Pierwsza część – Nastawienie, to fundament, który skupia się na zrozumieniu i właściwemu podejściu do tego, jak wykorzystujemy LLMs, co może znacząco zwiększyć lub zmniejszyć ich wartość. To celowy i świadomy kierunek, który wymaga jasnego zrozumienia celu i wartości testowania, realnej oceny możliwości LLMs oraz nauczenia się, jak budować z nimi relację, by wykorzystywać w ukierunkowany i precyzyjny sposób.

O ile wiedza o tym gdzie i kiedy używać LLMs jest kluczowa, o tyle umiejętność skutecznej pracy z nimi maksymalizuje ich wartość. Druga część – Technika, koncentruje się na inżynierii, w tym na tworzeniu jasnych i precyzyjnych instrukcji, na zaawansowanych metodach integracji z platformami API i agentami AI, czy na wdrażaniu AI do automatyzacji bardziej złożonych zadań. W części tej Autor omawia, jak wykorzystując pojedyncze prompty i inne narzędzia LLM w połączeniu z technikami TDD i narzędziami, jak Copilot, mogą one wspierać programistów w szybszym tworzeniu kodu i testów jednostkowych, ale również w ulepszaniu dokumentacji technicznej i komunikacji z zespołem. Kolejne podrozdziały skupiają się na planowaniu efektywnych i ukierunkowanych testów opartych na ryzyku. Kluczowe jest to, aby nie ograniczać się tylko do generowania przypadków testowych przy użyciu AI, ale skupić się również na tym, jak bezpiecznie i precyzyjnie wykorzystać model do wsparcia w identyfikacji zagrożeń, analizy ryzyka, i generowaniu danych testowych w dowolnym popularnym formacie (np. JSON, XML, SQL), pamiętając, że zbyt ogólnikowe i niejasne formułowanie promptów może bardziej zaszkodzić niż wesprzeć nasze planowanie i przygotowywanie testów. Również w przypadku automatyzacji UI, Autor prezentuje jak możemy przyspieszyć zautomatyzowanie testów przy użyciu AI, ale znowu, podkreśla, że najpierw musimy posiadać głęboką wiedzę na temat projektu i struktury automatyzowanych testów, a dopiero potem myśleć kiedy i gdzie używać narzędzi AI, by odnieść faktyczne korzyści, a nie tylko szybciej generować trudne w utrzymaniu testy wymagające wielu poprawek. Bardzo ciekawy jest również fragment książki opisujący wsparcie AI w testach eksploracyjnych i kombinację różnych działań, które mogą wystąpić podczas sesji testowej, i jak łączenie promptów z heurystykami testowymi może zaoferować nową perspektywę i sugerować pomysły na nowe testy.

Ostatnia część książki – Kontekst, wychodzi poza standardowe użycie dostępnych modeli, wprowadzając zaawansowane techniki i ich dostosowywanie do specyfiki danej dziedziny. Zasada „śmieci na wejściu, śmieci na wyjściu” jest w pracy z modelami bezwzględna. Ich odpowiedzi będą powierzchowne, jeśli brakuje im specyficznych informacji. W tym rozdziale Autor skupia się na sposobach pozyskiwania i dostarczania wiedzy dziedzinowej i kontekstu do promptów i modeli, aby generować trafne i użyteczne rezultaty. Czytelnik pozna kilka technik, takich jak generowanie wspomagane wyszukiwaniem (ang. retrieval-augmented generation, RAG) i dostrajanie (ang. fine-tuning), zyskując wiedzę na temat narzędzi do dostosowywania LLMów do konkretnych potrzeb biznesowych.

Książka „Testowanie oprogramowania z wykorzystaniem generatywnej AI” to doskonałe źródło wiedzy, które łączy w sobie szeroką perspektywę teoretyczną z konkretnymi, gotowymi do wdrożenia technikami. Przemyślana struktura i skupienie na inżynierii promptów oraz odpowiedzialnym użyciu AI sprawiają, że jest to pozycja wartościowa zarówno dla testerów manualnych, którzy chcą wejść w świat automatyzacji i GenAI, jak i dla programistów oraz architektów testów, szukających innowacyjnych metod na podniesienie jakości swojego oprogramowania. Szczególnie cenię formę książki za to, że z jednej strony prezentuje praktyczne i innowacyjne metody testowania wspomaganego przez sztuczną inteligencję, z drugiej, w niemal każdym aspekcie, konsekwentnie podkreśla rolę Human-in-the-Loop (HITL) w AI, która łączy wiedzę ekspercką człowieka z uczeniem maszynowym. To tester, posiadający wiedzę domenową i doświadczenie, kieruje procesem, decydując o tym, kiedy, gdzie i jakie narzędzie AI ma zostać użyte, co z pewnością stanowi o przewadze tej pozycji nad innymi publikacjami, które promują bezrefleksyjne użycie AI. W dobie współpracy testerów ze sztuczną inteligencją, książka oferuje praktyczny plan działania dla efektywniejszego testowania przy jednoczesnym utrzymaniu najwyższej jakości. Zdecydowanie polecam ją każdemu, kto dąży do bycia innowacyjnym liderem i chce przewodzić transformacji w dziedzinie zapewnienia jakości oprogramowania.

Wydawca: Helion (2025)

Komentarze

komentarzy

Ten wpis został opublikowany w kategorii Helion, recenzja, sztuczna inteligencja, testowanie i oznaczony tagami , , , , . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*