Czy sztuczna inteligencja zastąpi testerów oprogramowania?

Discover how to deliver better software and systems in rapidly scaling environments. Join our Community

Sztuczna inteligencja zmieni oblicze testowania oprogramowania, ale nie sprawi, że testerzy staną się zbędni (choć może zwiększyć ich możliwości). W jaki sposób AI może automatyzować powtarzalne zadania, ustalać priorytety testów i pomagać testerom zwiększać efektywność procesów testowania?

Czy sztuczna inteligencja sprawi, że testerzy oprogramowania staną się zbędni? Prawdopodobnie nie. Bardziej prawdopodobne jest, że AI sprawi, iż zbędni staną się twórcy oprogramowania. Nie ma jednak wątpliwości, że AI oznacza znaczącą zmianę w testowaniu oprogramowania. W tym artykule omówiono niektóre ze zmian, których możemy się spodziewać już wkrótce.

Dawno temu automatyzacja testów zastąpiła testerów wykonujących pracę robotów, czyli uruchamiających testy zaprojektowane przez kogoś innego. Testerzy nie zniknęli. Zyskali czas na projektowanie większej liczby lepszych testów i, co oczywiste, na ich automatyzację. Później metody zwinne i DevOps miały sprawić, że tester stanie się zbędny, ponieważ programiści mieli testować swój kod podczas jego tworzenia. Okazało się, że większość programistów woli pisać kod niż go testować. Dowiedzieliśmy się również, że należy testować cały proces biznesowy przebiegający przez granice aplikacji. Testerzy oprogramowania rozszerzyli zakres swojej pracy o testy eksploracyjne i testy kompleksowe.

Jak AI zmieni testowanie oprogramowania

AI zmieni rolę testera, stając się dużym wsparciem w działaniach, które testerzy nie wykonują zbyt dobrze. AI prawdopodobnie wpłynie na cały proces testowania, a nie tylko usprawni poszczególne zadania.

Charakterystyczne dla pracy testera jest to, że te same czynności są wykonywane wielokrotnie, przy niewielkich różnicach i długim czasie oczekiwania. Testerzy czekają na:

  • nowe wydanie do przetestowania.
  • zakończenie automatycznych uruchomień testów.
  • poprawkę błędu uniemożliwiającego dalsze testowanie.
  • I tak dalej...

Testerzy wykonują również zadania wymagające dużej dbałości o szczegóły, które mogą nie być szczególnie motywujące, takie jak analizowanie wyników automatycznych uruchomień testów, utrzymywanie testów automatycznych, które zakończyły się niepowodzeniem z powodu zmian w aplikacji, czy obliczanie i raportowanie stanu testów. Każda minuta poświęcona na te ważne zadania oznacza, że ktoś inny czeka na wyniki testów.

Ludzki tester oprogramowania grający w szachy z testerem oprogramowania będącym robotem AI
Ten obraz został utworzony za pomocą prostego polecenia przy użyciu narzędzia AI

Większość pracy związanej z testowaniem stanowi wykonywanie testów. Jest ono w dużej mierze zautomatyzowane, ale nadal pochłania również wysiłek człowieka; a ten ludzki wysiłek spowalnia cały cykl testowy. Nadal potrzebujemy ludzi do automatyzowania testów, które będą uruchamiane przez robota, utrzymywania tych testów po zmianach w aplikacji oraz analizowania wyników testów. Już teraz dostępne są narzędzia do testowania wyposażone w AI, które mogą wybierać i porządkować testy na podstawie prawdopodobieństwa wykrycia przez nie błędów, automatycznie naprawiać niedziałające testy lub wstępnie wypełniać zgłoszenia defektów. 

Bezpośredni wpływ AI na specjalistów QA

W następnej fali tworzenia testów automatycznych zobaczymy narzędzia, które będą generować testy bezpośrednio na podstawie opisu przypadku użycia, a nawet jeszcze bardziej bezpośrednio — obserwując testera eksplorującego aplikację. To duży krok od testowania automatycznego w kierunku testowania autonomicznego. Być może nie jesteśmy jeszcze na tym etapie. Większość aplikacji i procesów biznesowych jest własnościowa, a dane potrzebne do trenowania AI są rozproszone w różnych narzędziach do testowania oprogramowania. Dlatego najpierw prawdopodobnie zobaczymy testowanie nadzorowane przez człowieka, a nie w pełni autonomiczne testowanie.

Większość zespołów programistycznych ma raczej zbyt mało testów niż zbyt wiele. Wraz z zastosowaniem AI rozmiar zasobu testów prawdopodobnie wzrośnie. Chociaż uruchamianie testów automatycznych jest praktycznie bezpłatne, znaczenie nadal ma szybkość uzyskiwania wyników testów. Dlatego korzystne byłoby uporządkowanie uruchomień regresyjnych tak, aby najpierw wykonywane były testy, które z największym prawdopodobieństwem wykryją błędy. Jeśli AI wystarczająco dobrze rozumie dane dotyczące cyklu życia, może przeanalizować zmiany w kodzie i wcześniejsze wyniki testów, określić kolejność testów, a tym samym przyspieszyć cykl informacji zwrotnej.

Jeśli AI jest w stanie wybierać testy na podstawie prawdopodobieństwa wykrycia przez nie błędów, powinna również być w stanie przewidzieć, gdzie prawdopodobnie zostaną znalezione błędy. Ludzki tester także może skorzystać z tych informacji, koncentrując wysiłki związane z ręcznymi testami eksploracyjnymi na tych funkcjach.

Dla wielu osób AI jest synonimem możliwości generowania języka naturalnego zaprezentowanych przez ChatGPT. Możliwości te mają również zastosowanie w testowaniu. Jeśli AI wie, jak utworzyć przypadek testowy, wie również, jak opisać wykonanie testu w zgłoszeniu defektu. Prawdopodobnie raport defektu wygenerowany przez AI będzie łatwiejszy do zrozumienia niż raport napisany pospiesznie przez człowieka, który spieszy się, aby sprawdzić kolejny przypadek testowy.

Oprócz raportów defektów testowanie dostarcza wielu danych ilościowych dotyczących jakości oprogramowania, a nawet procesu tworzenia oprogramowania. Problem polega na tym, że osoby blisko związane z testowaniem, które rozumieją te dane, nie chcą ich wyjaśniać tym, którzy powinni je rozumieć, a ci, którzy powinni je rozumieć, mogą nie chcieć słuchać. AI może oddać obu stronom i ich liderom ogromną przysługę, przekształcając statystyki testów w słowne spostrzeżenia, wnioski i zalecenia. 

Czy AI zastąpi specjalistów QA?

Kuszące jest wyobrażanie sobie, co łatwiej będzie zastąpić sztucznej inteligencji: testera czy programistę. Łatwiej jest wygenerować test niż kod. Z drugiej strony generowanie wartościowych testów wymaga większej wyobraźni. W końcu programowanie przekształca wymaganie w kod, który sprawia, że aplikacja działa, podczas gdy testowanie powinno przekształcać wymaganie w jeden lub więcej testów, które powinny sprawić, że aplikacja przestanie działać. 

Na dużą skalę projektowanie testów jest jednak prostsze niż programowanie. Zbudowanie dużego systemu informatycznego jest znacznie większym wyzwaniem niż napisanie kodu dla pojedynczej funkcji. Projektowanie testów dla dużego systemu informatycznego nie jest o wiele trudniejsze niż projektowanie testów dla pojedynczej funkcji. To po prostu więcej pracy. Konfiguracja testów może być jednak znacznie większym wyzwaniem. 

Na przykład skonfigurowanie i zweryfikowanie testu, który tworzy zamówienie w aplikacji mobilnej, następnie przetwarza je w Salesforce, a później przekazuje do realizacji w SAP, jest bardzo złożonym zadaniem — chociaż sam scenariusz testowy jest dość prosty. Będziemy potrzebować zarówno ludzi wspomaganych przez AI, jak i AI wspomaganej przez ludzi.

Nawet te niewielkie przykłady dowodzą, że już w niedalekiej przyszłości wiele rzeczy będzie wyglądać zupełnie inaczej. AI zwiększy szybkość i produktywność tworzenia oprogramowania, ale jeszcze nie będzie w stanie autonomicznie budować oprogramowania i zapewniać jego jakości.

Gdybym dziś był testerem oprogramowania pracującym na pełen etat, nie martwiłbym się, że AI odbierze mi pracę. Martwiłbym się tym, jak mogę testować AI.

Interesują Cię dodatkowe informacje na temat AI i testowania oprogramowania? W takim razie zapisz się do newslettera CTO Club, aby otrzymywać informacje o najnowszych trendach.

Esko Hannula
Esko Hannula is VP Product Line Management at Copado, a DevOps and testing solution for low code SaaS platforms that run the world’s largest digital transformations. Backed by Insight Partners, Salesforce Ventures and SoftBank Vision Fund, Copado accelerates multi-cloud, enterprise deployments by automating the end-to-end software delivery process to maximize customers’ return on their cloud investment.
Follow the author: