Podczas zeszłorocznej edycji konferencji Testwarez miałem okazję poprowadzić warsztaty z metody projektowania usług i produktów: Design Thinking. Przedmiotem naszego warsztatu było zaprojektowanie usługi testowej w dobie AI. Próbowaliśmy odpowiedzieć na pytanie, jakie widzimy zagrożenia i korzyści związane z AI i jej wykorzystaniem w testowaniu.
Artykuł będzie omawiał założenia Design Thinking i przedstawi główne problemy oraz wnioski z naszej pracy warsztatowej, pełnej także innych elementów: rzucania pluszową surykatką (na rozgrzewkę), rozlewania kawy (niezbędny element każdych warsztatów, które prowadzę) i spacerów po sopockim Monciaku.
Testwarez 2024
Największa konferencja dla testerów w Polsce w zeszłym roku miała swoje miejsce w sopockim Sheratonie. Trzy intensywne dni wypełnione warsztatami, prelekcjami, spotkaniami i wymianą doświadczeń. Pierwszy raz miałem okazję poprowadzić zewnętrzne warsztaty z metody myślenia projektowego i było dla mnie dużym wyzwaniem. W artykule opiszę, co udało nam się wypracować w ich trakcie.
Co to jest Design Thinking?
Koncepcję Design Thinking przybliżyłem już nie raz na tym blogu, m.in. Design thinking w testach (studium przypadku). W tym wpisie przedstawię przykład użycia myślenia projektowego na podstawie, którego przygotowałem warsztaty.
Myślenie projektowe to metoda opracowana na Uniwersytecie Stanforda w Kalifornii w celu tworzenia przedmiotów oraz usług zaprojektowanych pod użytkownika, tak aby w centrum projektu były jego potrzeby.
Założenia Design Thinking:
- koncentracja na użytkowniku – zrozumienie jego uświadomionych i nieuświadomionych potrzeb,
- interdyscyplinarny zespół – spojrzenie na problem z wielu perspektyw,
- eksperymentowanie i częste testowanie hipotez – budowanie prototypów i zbieranie informacji zwrotnej od użytkowników.
W efekcie powstają rozwiązania, które są:
- pożądane przez użytkowników,
- technologicznie wykonalne,
- ekonomicznie uzasadnione.
Najważniejszą zmianą w paradygmacie projektowania, którą wprowadza Design Thinking, jest skupienie na subiektywnych doświadczeniach użytkowników oraz eksperymentacji. Nadrzędną wartość stanowi podważanie status quo oraz bazowanie na modelach empirycznych.

Warsztaty
Na warsztaty wybrałem następujący problem: jak zaprojektować proces testowy, wychodząc naprzeciw szansom i zagrożeniom idącym wraz z wprowadzaniem sztucznej Inteligencji.
Po wprowadzeniu do podstaw metody Myślenia projektowego przeszliśmy do części warsztatowej polegającej na przejściu przez wszystkie etapy procesu myślenia projektowego.

Pierwszym etapem myślenia projektowego jest Badanie/Wczucie się w problem . W czym pomoże odpowiedzenie sobie na następujące pytania:
- kto jest odbiorcą/klientem?
- jakie są jego potrzeby i nawyki?
- co robi, jak myśli?
Podczas warsztatów zebraliśmy na kolorowych karteczkach nasze obawy, problemy, trudności oraz wyzwania związane z testami i sztuczną inteligencją.
Następnie w drugim etapie uczestnicy zajęli się definiowanie problemu. Podczas tego etapu powinniśmy uzyskać odpowiedź na następujące pytania:
- co jest celem projektu?
- jakie potrzeby klienta/interesariuszy należy zaspokoić?
- co jest najważniejsze (jakie informacje, funkcjonalności)?
Kluczowe w omawianej metodzie jest empatyczne podejście zarówno do problemu, jak i do użytkownika. W tym celu podczas warsztatów wykorzystaliśmy technikę person, którą bardziej szczegółowo opisałem we wcześniejszym artykule: Persona – testowanie z wykorzystywaniem technik z gier RPG.

Wraz z uczestnikami warsztatów stworzyliśmy persony, wśród których byli i udziałowcy i aktorzy procesu wytwarzania oprogramowania. W taki sposób powstali:
- Edmund Testerski – doświadczany tester, któremu zależy na wysokiej jakości, a jednocześnie obawia się zmian idących wraz z wykorzystaniem sztucznej inteligencji.
- Zbiggy Szybkaręka – junior tester z wieloletnim doświadczeniem w melioracji, w zeszłym roku przebranżowił się, ojciec dwójki łobuziaków przeszkadzających w telekonferencjach.
- Alicja Analityczna – analityczka biznesowa, bardzo zajęta, młoda, uwielbia ogrodnictwo.
- Pan Automat – tester zajmujący się automatyzacją, uwielbia muzykę elektroniczną oraz frameworki do pisania testów automatycznych.
- Wiktoria Kod – doświadczona programistka, która z niejednego pieca jadła chleb, uwielbia żeglarstwo i skandynawski doom metal.
- Pan Areczek – kierownik projektu, miłośnik herbaty oraz dostarczania oprogramowania na czas.
- Atlantyda Wąs – Scrum Masterka, która chce pomóc zespołowi dostarczyć projekt, uwielbia czytać kryminały i ćwiczy jogę.
- Pani Teodora – przedstawicielka biznesu, szara eminencja firmy, zna każdy proces na wylot, piję kawę zalewajkę, uwielbia garncarstwo.
Pomysły, jak wykorzystać SI w nowoczesnym procesie testowym
Wraz z warsztatowiczami zadaliśmy sobie następujące pytania dotyczące problemu, jak zaprojektować usługę testową w dobie rewolucji sztucznej inteligencji. Po wypisaniu wszystkich pomysłów, skategoryzowaliśmy je i sprawdziliśmy (w ramach testowania procesu), czy potrzeby wszystkich person zostały wypełnione.
Poniżej lista opisanych pomysłów przypisanych do odpowiednich kategorii.

Planowanie oraz analiza
Kategoria dotyczy wstępnej fazy testowania, podczas której analizowane są wymagania, przygotowywane plany oraz podejmowane decyzje dotyczące testowania oraz implementacji.
- Pomoc sztucznej inteligencji w tworzeniu wymagań na podstawie potrzeb użytkownika końcowego. Shift left, czyli przesunięcie w lewo procesu testowego (w diagramie wytwarzania oprogramowania), tak aby testować/zapewniać jakość jak najwcześniej (już na poziomie analizy wymagań), a potem podczas programowania, wymaga od testerów dobrej znajomości wytwarzanego oprogramowania oraz wymagań klienta.
I tutaj sztuczna inteligencja może być pomocna w tworzeniu odpowiednich wymagań/historyjek na podstawie uzyskanych informacji. Ponadto, może pomóc w definiowaniu zaleceń dotyczących testowania owych historyjek i wspomagać w wykonaniu przeglądów. - Generowanie artefaktów testowych tj. dane testowe, skrypty automatyczne, przypadki testowe. Oczywiście każda z tych czynności musi zostać sprawdzona przez testera. Warto zaznaczyć, że niektóre z artefaktów testowych ze względu na wrażliwe dane nie mogą zostać użyte przez Sztuczną Inteligencje. Testim jest narzędziem, które automatycznie generuje i utrzymuje testy interfejsu użytkownika, ucząc się na podstawie interakcji użytkownika.
- Analiza obszarów testowych pod kątem planowania testów integracyjnych i systemowych. Pomoc w analizie i definicji kryterium gotowości dla każdego z obszaru/domeny.
- Pomoc w wyborze narzędzi. Sztuczna inteligencja może, na podstawie naszych wymagań oraz projektu, zdefiniować najlepsze dostępne narzędzia do każdego etapu wytwarzania oprogramowania.
- Dobór metryk do projektu poprzez analizę danych historycznych, optymalizację wskaźników za pomocą uczenia maszynowego.
- Analiza podatności. AI będzie wsparciem do analizowania i znajdowania wszelkich podatności systemu, już na etapie projektowania architektury i tworzenia specyfikacji.
- Wsparcie w tworzeniu strategii oraz planu testów. Sprawdzanie, korekta, analizowanie wymagań oraz opracowywanie harmonogramów.
Realizacja oraz raportowanie
- Pomoc w generowaniu raportów dla interesariuszy. Sztuczna inteligencja może pomóc w pisaniu krótkich podsumowań oraz raportów. Dane oraz informacje otrzymywane od AI zawsze powinny być sprawdzone. Przy zastrzeżeniu, że możemy bezpiecznie wykorzystywać AI w organizacji, dla której pracujemy.
- Generowanie statusu wykonania testów. AI może nam pomóc w tworzeniu raportu z testów. Oczywiście raport będzie na tyle dobry, na ile wprowadzone dane są rzetelne. AI zapytane odpowiada, że pomoże w:
- podsumowaniu wyniki testów wraz z wskazówkami do analizy,
- formatowaniu i strukturyzacji raportów,
- wsparciu językowym.
- Generowanie statusu projektu. AI pomoże w raportowaniu projektu IT w następujący sposób:
- Tworzenie podsumowań dla postępów i potencjalnego ryzyka.
- Strukturyzacja raportów – przygotowanie spójnych szablonów i automatyzacja powtarzalnych elementów. Zintegrowany system zarządzania projektami.
- Ułatwienia komunikacji – tłumaczenie technicznych szczegółów na prostszy język, by wszyscy z zespołu lepiej rozumieli sytuację.
- Porównywanie makiet z aplikacją. Sztuczna inteligencja może być wykorzystywana do porównywania stanu aplikacji po wykonaniu testu ze specyfikacją/makietą. Applitools specjalizuje się w testach wizualnych, wykorzystując AI do wykrywania różnic w interfejsach użytkownika. To narzędzie jest szczególnie przydatne przy testach regresji wizualnej, gdzie nawet drobne zmiany mogą mieć duże znaczenie.
- Raportowanie testów automatycznych wraz z analizą wyników, np. mabl wykorzystuje algorytmy uczenia maszynowego do automatyzacji testów funkcjonalnych. Monitoruje wyniki testów w czasie rzeczywistym, identyfikuje anomalie oraz sugeruje potencjalne problemy, co umożliwia szybsze reagowanie na błędy.
- Weryfikacja poprawności kodu. Diffblue Cover generuje automatycznie testy jednostkowe dla kodu, co pomaga zwiększyć pokrycie testowe bez konieczności ręcznego pisania testów przez programistów.
- Zgadywanie defektów (ang. error guesing). AI może pomóc w następujących czynnościach przy wykorzystaniu techniki zgadywania defektów:
- Generowanie list potencjalnych błędów – na podstawie specyfiki projektu, dokumentacji czy opisu funkcjonalności, AI proponuje listę typowych scenariuszy błędów, które warto przetestować.
- Wskazywanie na pułapki i nietypowe przypadki – analizując informacje o systemie, AI może zasugerować nietypowe sytuacje lub graniczne przypadki, które mogą prowadzić do awarii.
- Dostarczanie heurystyk testowych – AI może przedstawić sprawdzone heurystyki i wzorce z poprzednich projektów, które pomogą w identyfikacji miejsc podatnych na błędy.
- Wsparcie dla testowania niefunkcjonalnego. Sztuczna inteligencja może znacząco wesprzeć zespół testowy w testach niefunkcjonalnych na wiele sposobów:
- Testy wydajności i obciążenia – AI może symulować różne scenariusze użytkowania, analizować wyniki testów i identyfikować potencjalne wąskie gardła, co pomaga zoptymalizować działanie systemu pod wysokim obciążeniem.
- Monitorowanie i analiza logów – dzięki zaawansowanym algorytmom analizy danych, AI potrafi szybko przeszukać duże zbiory logów, wykrywając anomalie, nietypowe wzorce czy nieoczekiwane zachowania systemu, co ułatwia diagnostykę.
- Testy bezpieczeństwa – wykorzystując techniki uczenia maszynowego, AI może identyfikować luki w zabezpieczeniach, analizując dane o potencjalnych atakach i wskazując obszary, które wymagają dodatkowej ochrony.
- Analiza użyteczności – AI może zbierać i analizować dane dotyczące interakcji użytkowników z aplikacją, co pozwala na identyfikację problemów związanych z użytecznością oraz poprawę interfejsu.
- Prognozowanie trendów – na podstawie analizy historycznych danych i bieżących wyników testów, AI potrafi prognozować, jak zmiany w systemie wpłyną na jego wydajność lub bezpieczeństwo, co wspiera podejmowanie decyzji.
- Automatyzacja i ciągły monitoring – integracja AI z narzędziami CI/CD umożliwia automatyczne uruchamianie testów niefunkcjonalnych przy każdej zmianie w systemie, co zapewnia ciągłe monitorowanie jakości oprogramowania.
- Wsparcie przy zarządzaniu środowiskami

Podsumowanie
Myślenie projektowe pozwala wyjść poza konwencjonalne ramy. Dzięki kreatywności grupy warsztatowej (wielkie dzięki za otwartości i pomysły) mogliśmy wypracować rozwiązanie, które brało pod uwagę potrzeby wszystkich zidentyfikowanych person. Uczestnicy raportowali, że wypracowane rozwiązanie daje nadzieję i zmniejsza lęk przed sztuczną inteligencją i nadchodzącą zmianą.
Dopóki wytwarzamy oprogramowanie dla ludzi, dopóty testerzy będą potrzebni, aby dostarczyć im produkt najwyższej jakości. To dopiero początek wykuwania procesu testowego szytego na miarę nowych czasów. Kolejne iteracje spotkania z zespołem projektowym oraz program pilotażowy to na pewno następne kroki, które należałoby podjąć, wdrażając taki proces testowy.
Generowanie pomysłów
Poniżej przedstawiam narzędzia, które przydają się podczas burzy mózgów – sesji generowania pomysłów.

Literatura
- B. R. Ingle (2014), Design Thinking dla przedsiębiorców i małych firm, Gliwice, Helion.
- T. Brown (2016), Zmiana przez design thinking, Wrocław, Libron
- M. Chłodnicki (2018), Service design po polsku, Warszawa, PWN
- Czym jest Design Thinking?
- Design thinking w testach (studium przypadku)
- Persona – testowanie z wykorzystywaniem technik z gier RPG
***
Jeśli interesuje Cię tematyka Design Thinking, zajrzyj koniecznie również do innych artykułów naszych ekspertów.
Zostaw komentarz