3 sposoby na ulepszenie ciągłego testowania pod kątem generatywnej sztucznej inteligencji

Jako że coraz więcej dyrektorów ds. informatycznych i zespołów ds. rozwoju wykorzystuje generatywną sztuczną inteligencję, zespoły ds. kontroli jakości muszą również dostosować swoje praktyki ciągłego testowania, aby nadążyć.

Gerd Altmann / Pixabay

Generatywna sztuczna inteligencja, ChatGPT i duże modele językowe (LLM), takie jak GitHub Copilot i inne narzędzia do generowania kodu AI, zmieniają praktyki tworzenia oprogramowania i produktywność. Firma badawcza McKinsey donosi, że programiści korzystający z narzędzi generatywnej sztucznej inteligencji są szczęśliwsi, bardziej produktywni i mogą skupić się na bardziej znaczącej pracy. Według tego raportu, sztuczna inteligencja może pomóc programistom przyspieszyć dokumentację, generowanie i refaktoryzację kodu o 20% do 50%. Dane te sugerują, że więcej CIO-sów i zespołów devops będzie eksperymentować z generatywnymi możliwościami rozwoju oprogramowania AI w celu zwiększenia produktywności programistów i przyspieszenia modernizacji aplikacji.

Jeśli generatywna sztuczna inteligencja pomaga przyspieszyć kodowanie i tworzenie oprogramowania, to czy testowanie i zapewnianie jakości dotrzymają kroku większej prędkości? Niestety, historia sugeruje, że praktyki testowania pozostają w tyle za ulepszeniami w zakresie produktywności rozwoju i automatyzacji devops.

Zobacz również:

Kent Beck zdefiniował test-driven development (TDD) pod koniec lat 90. ubiegłego wieku, zaś automatyzacja testów istnieje już od jakiegoś czasu, mimo to wiele firm nadal niedostatecznie inwestuje w testowanie oprogramowania. Ciągłe testowanie pozostaje w tyle za inwestycjami w automatyzację wdrożeń za pomocą CI/CD, budowanie infrastruktury jako kodu (IaC) i inne praktyki devops. Ponieważ coraz więcej organizacji korzysta z devops w celu zwiększenia częstotliwości wdrożeń, zespoły są zobowiązane do przyjęcia ciągłego testowania, używania flag funkcji, włączania wydań kanaryjskich i dodawania możliwości AIops.

Oto trzy sposoby, w jakie programiści i zespoły mogą dostosować testowanie ciągłe do nowego środowiska programistycznego z generatywnymi możliwościami sztucznej inteligencji.

Zwiększenie „pokrycia” testami

W pierwszej kolejności zespoły ds. zapewnienia jakości (QA) powinny spodziewać się większej ilości kodu stron trzecich z generatywnej sztucznej inteligencji oraz dodać narzędzia i automatyzację do przeglądania i oznaczania tego kodu. „Narzędzia generatywnej sztucznej inteligencji będą nadal zyskiwać na popularności w ciągu najbliższego roku, a to drastycznie zwiększy prędkość, ale także stworzy zagrożenia dla bezpieczeństwa”, mówi Meredith Bell, CEO AutoRABIT. „Zespoły muszą już teraz włączyć statyczną analizę kodu i automatyzację testów integracyjnych, aby działać jako poręcze dla tej nowej technologii”.

Statyczna i dynamiczna analiza kodu, w tym SAST, DAST i inne testy bezpieczeństwa kodu, są kluczowymi narzędziami dla zespołów devops, które chcą wykorzystać kod generowany przez sztuczną inteligencję lub zintegrować open source i inne przykłady kodowania sugerowane przez LLM. Testy te mogą identyfikować luki w zabezpieczeniach i problemy z formatowaniem kodu, niezależnie od tego, czy kod został wygenerowany przez programistę, czy przez sztuczną inteligencję.

Automatyzacja przypadków testowych

Zespoły QA powinny również oczekiwać, że zespoły devops będą szybciej tworzyć funkcje, co będzie oznaczać więcej przypadków testowych wymagających automatyzacji. Jeśli testowanie oprogramowania nie nadąża za szybkością rozwoju i kodowania, w jaki sposób i gdzie narzędzia generatywnej sztucznej inteligencji mogą wypełnić tę lukę? Mush Honda, główny architekt jakości w Katalon, sugeruje: „Testy generowane przez sztuczną inteligencję oparte na rzeczywistych podróżach użytkowników powinny być połączone z testami wizualnymi, weryfikacjami dostępności i testami porównawczymi wydajności w różnych przeglądarkach i urządzeniach, aby zapewnić, że wszystkie wersje spełniają kompleksowe wrażenia użytkownika”. Z kolei Emily Arnott, menedżer ds. marketingu treści w Blameless, uważa, że QA musi również rozważyć wykorzystanie LLM do generowania i automatyzacji większej liczby przypadków testowych: „Automatyzacja testów może wykorzystywać narzędzia AI, takie jak LLM, aby stać się szybszą i bardziej elastyczną. LLM pozwalają na żądanie skryptu przy użyciu języka naturalnego, dzięki czemu można powiedzieć: „napisz mi skrypt, który testuje ten fragment kodu z każdym wejściem z tego pliku dziennika” i uzyskać działający”.

Skalowanie i zarządzanie danymi testowymi

Inną rzeczą, której należy się spodziewać, jest wzrost złożoności testów. Na przykład, generowanie przypadków testowych dla wyszukiwarki może wykorzystywać podróże użytkowników i popularne słowa kluczowe przechwycone w plikach dziennika i narzędziach obserwowalności. Ponieważ jednak coraz więcej firm bada LLM i wyszukiwanie AI, korzystając z interfejsów zapytań w języku naturalnym i podpowiedzi, przypadki testowe będą musiały stać się bardziej otwarte. Aby sprostać temu zapotrzebowaniu, dział kontroli jakości będzie potrzebował znacznie większego i bardziej dynamicznego zestawu danych testowych. Zespoły Devops powinny szukać sposobów na automatyzację testowania aplikacji opracowanych przy użyciu LLM i interfejsów zapytań w języku naturalnym. „W zwinnych środowiskach czas jest najważniejszy, a kompleksowy, samoobsługowy system zarządzania danymi testowymi ma kluczowe znaczenie. Zespoły Devops muszą mieć możliwość automatycznego generowania wirtualnych baz danych ze środowisk produkcyjnych do nieprodukcyjnych".- mówi Roman Golod, CTO i współzałożyciel Accelario. Zwiększenie możliwości testowych, częstotliwości i rozmiaru zestawów danych testowych może wymagać od zespołów devops przeglądu architektury i pojemności infrastruktury devops i testowej. Sunil Senan, SVP i globalny dyrektor ds. danych, analityki i sztucznej inteligencji w Infosys, dodaje: „Zespoły ds. aplikacji powinny rozważyć migrację potoków devsecops do hiperskalerów z funkcjami automatyzacji testów opartymi na sztucznej inteligencji, takimi jak generowanie danych syntetycznych, generowanie skryptów testowych i wykrywanie anomalii testowych w celu usprawnienia operacji uczenia maszynowego.”

Podsumowanie

Podsumowując, dział kontroli jakości może zwiększyć zakres i głębokość testów poprzez zwiększenie automatyzacji testów, skalowanie ciągłego testowania, wykorzystanie możliwości generowania testów opartych na sztucznej inteligencji oraz centralizację dużych zestawów danych testowych. „Wiodące zespoły zajmujące się tworzeniem aplikacji przyjmą oparte na sztucznej inteligencji testy eksploracyjne i ciągłe testy regresyjne, wyjaśnia Esko Hannula, SVP ds. zarządzania produktem w Copado. „Testowanie zmieni się z reaktywnego na proaktywne, ze sztuczną inteligencją identyfikującą przypadki brzegowe i błędy, zanim jeszcze funkcja zostanie zbudowana. Ten poziom zrobotyzowanego ciągłego testowania powinien nie tylko przyspieszyć rozwój, ale także podnieść jakość aplikacji do poziomu, którego nie byliśmy w stanie osiągnąć przy podstawowej automatyzacji testów”.

Coty Rosenblath, CTO w Katalon, dodaje: „Widzimy bardziej rozbudowane testy w celu walidacji produkcji, gdzie w przeszłości mogli mieć tylko stosunkowo proste syntetyki. Zespoły tworzą dynamiczne zestawy testów, które mogą skupić się konkretnie na obszarach zmian i ryzyka, unikając opóźniania wydań w oczekiwaniu na pełne zestawy regresji”.

Możliwości generatywnej sztucznej inteligencji wykorzystywane w kodowaniu i tworzeniu oprogramowania powinny być ostatecznym sygnałem alarmowym dla liderów Devops i QA, aby zainwestować w ciągłe testowanie, scentralizować dane testowe, poprawić pokrycie testowe i zwiększyć częstotliwość testów. Aby osiągnąć te cele, platformy testowe powinny dodawać możliwości generatywnej sztucznej inteligencji.

Źródło: Infoworld

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200