W tym artykule skupimy się na kilku przykładach na tym jak sztuczna inteligencja (AI) w testowaniu może być wykorzystywana do wspierania istotnych aspektów testowania oprogramowania.
Analiza zgłoszonych usterek
Zgłoszone usterki są porządkowane (kategoryzowane, priorytetyzowane, sprawdzane pod kątem duplikatów), co nazywa się triage lub analizą defektów. Celem jest szybsze rozwiązywanie problemów. Sztuczna inteligencja (AI) może w tym pomóc przez: Kategoryzację, Określanie krytyczności i Przypisywanie.
Generowanie przypadków testowych
Sztuczna inteligencja do generowania testów może znacznie przyspieszyć tworzenie testów i zwiększyć pokrycie kodu lub wymagań. AI tworzy testy na podstawie kodu, interfejsu użytkownika lub specjalnego modelu testowego. Niektóre narzędzia analizują działanie systemu na niskim poziomie (logi).
Głównym problemem jest określenie, jakie powinny być poprawne wyniki testów (tzw. problem wyroczni testowej). Można to rozwiązać, porównując działanie testowanej aplikacji z podobnym systemem (testowanie back-to-back) lub sprawdzając, czy test nie powoduje prostych błędów, jak zawieszenie aplikacji.
Optymalizacja zestawów testów regresji
Wraz z rozwojem systemu pojawiają się nowe testy, które zasilają zestaw testów regresji. Aby uniknąć nadmiernego rozrostu tego zestawu, konieczna jest jego regularna optymalizacja. Polega ona na wyborze, ustalaniu priorytetów i ewentualnym rozszerzaniu testów, tak aby zestaw regresji był skuteczniejszy i szybszy.
Narzędzia AI mogą optymalizować testy regresji, analizując m.in. wyniki poprzednich testów, powiązane błędy i ostatnie zmiany w kodzie (np. które funkcje często zawodzą i które testy sprawdzają zmieniony kod).
Przewidywanie defektów
Sztuczna inteligencja pomaga określić, czy, ile i gdzie prawdopodobnie wystąpi błędów. Wyniki pozwalają skupić testy na najbardziej ryzykownych częściach oprogramowania.
AI analizuje różne czynniki (metryki kodu, procesu, zespołu) w celu przewidzenia defektów. Z uwagi na złożoność tych zależności, uczenie maszynowe jest niezbędne. Najdokładniejsze przewidywania opierają się na wcześniejszych doświadczeniach z podobnych projektów i zespołów.
Testowanie interfejsów użytkownika
Testowanie interfejsu graficznego (GUI) jest popularne w testach ręcznych i często stanowi pierwszy krok do automatyzacji. Automatyzacja naśladuje interakcje użytkownika, wykorzystując współrzędne elementów GUI lub ich programowe definicje. Jednak ta metoda jest podatna na zmiany interfejsu, kodu i platformy, co utrudnia identyfikację obiektów.
Sztuczna inteligencja może zmniejszyć te problemy. Narzędzia AI potrafią identyfikować obiekty GUI na różne sposoby (np. XPath, etykieta, ID, klasa, współrzędne) i wybierać te metody, które są najbardziej stabilne w czasie. Na przykład, jeśli identyfikator przycisku często się zmienia, AI może nadać mu mniejsze znaczenie i polegać na innych kryteriach.
Jeśli chcesz się dowiedzieć się więcej na temat AI oraz jakie są przewidywane trendy w dziedzinie sztucznej inteligencji to więcej informacji znajdziesz na stronie szkolenie ISTQB® AI testing.
Opracowano na podstawie sylabusa ISTQB CT-AI v1.0.