Testing

Vision AI – sztuczna inteligencja, która wznosi testowanie na wyższy poziom?

Sierpień 11, 2021 1
Podziel się:

Wykorzystywanie sztucznej inteligencji w testowaniu oprogramowania jest tematem dość świeżym. Póki co, na rynku istnieje kilka firm, które promują swoje AI i Tricentis jest jedną z nich. Kilkanaście lat temu zaczynał jako startup, a dzisiaj chwali się rozwiązaniem, które wykorzystuje sieć neuronową. Osoby związane z Tricentis podają, że Vision AI to game changer na rynku wytwarzania oprogramowania. Przekonajmy się sami, czy tak jest.

Vision AI = nowa era?

Tricentis twierdzi, że Vision AI jest trzecim kamieniem milowym na osi czasu w kontekście testowania oprogramowania. Przytoczmy je, aby mieć się do czego odnieść.

Pierwszym kamieniem ma być testowanie oparte na językach skryptowych. Takie podejście jest dobre, wymaga jednak umiejętności programowania, co samo w sobie jest pewnym ograniczeniem – może wymagać np. zatrudnienia osoby o danym profilu technicznym.

Kolejnym, drugim kamieniem milowym ma być testowanie w oparciu o modele (Model-based testing). Tutaj przychodzi z propozycją m.in. narzędzie Tosca Commander, gdzie tworzone są moduły, które odzwierciedlają elementy ze struktury aplikacji niezależnie od tego, czy mówimy o aplikacji webowej, desktopowej czy mobilnej. Można to porównać do klocków Lego: jeśli chcemy testować formularz logowania, musimy zapisać kontrolki, które nas interesują, np. pole do wpisania loginu, hasła i przycisk do potwierdzania. Tosca Commander radzi sobie z tym bardzo dobrze i w ciągu chwili możemy mieć gotowy ,,klocek” z trzema kontrolkami, który odpowiada ekranowi logowania. Jest to podejście typu Page Object Model i ma wiele zalet.

Ostatnim (na ten moment) kamieniem milowym ma być właśnie Vision AI. Tricentis rozpoczął pracę nad własną siecią neuronową ponad 2 lata temu i dzisiaj dostarcza rozwiązanie, które jest częścią narzędzia Tosca Commander. Ta funkcjonalność działa w taki sposób, że ,,patrzy” na warstwę UI tak jak ludzkie oko i zwraca użytkownikowi wszystkie rozpoznane przez siebie elementy. Dla niej nie jest istotne jak elementy ułożone są “pod spodem”, więc jeśli używamy Vision AI w aplikacji webowej, to nie będziemy mieli wglądu w strukturę jak np. kontenery, div’y itp. Liczy się tylko wierzchnia warstwa aplikacji. Vision AI nie sprawdzi się zawsze i wszędzie. Zdarza się, że brakuje stabilności, np. nie wykryje przycisku i nie wciśnie go.

Zalety Vision AI

Pierwsza zaleta to możliwość ręcznej zmiany źle rozpoznanego elementu. Jeśli system rozpozna daną kontrolkę jako pole do wpisania tekstu, a w rzeczywistości jest to przycisk, to możemy zmienić jej typ techniczny z ‘text input’ na ‘button’. Tym samym przekazujemy do Vision AI informację: ,,hej, chcę żebyś interpretował ten element jako przycisk”.

Jeśli mamy zdefiniowaną jakąś kontrolkę, to powinna być ona rozpoznana na ekranie niezależnie od tego, czy to jest aplikacja webowa, desktopowa czy mobilna. Liczy się warstwa UI, a Vision AI szuka najbardziej pasującej kontrolki. Jest to zatem ogromna zaleta, ponieważ możemy zdefiniować kontrolkę raz i używać jej ponownie na różnych platformach. Podejście Model-based w taki sam sposób sobie nie poradzi.

Kolejną korzyścią jest możliwość doprecyzowania kontrolki, z którą chcemy wejść w interakcję. Jeśli z jakiegoś powodu Vision AI nie jest w stanie rozpoznać pożądanego elementu, można skorzystać z funkcjonalności o nazwie “Create User Identified Control…”. Działa to w ten sposób, że zaznaczamy wycinek UI aplikacji (coś, w co chcemy kliknąć) oraz inny element odniesienia, tzw. anchor. W ten sposób anchor ustabilizuje wykrywalność kontrolki. Należy jednak pamiętać, że jeżeli planujemy robić testy na wielu platformach, to kontrolka, jak i anchor muszą być widoczne na każdej z nich.

Testy w Vision AI można tworzyć jeszcze przed etapem tworzenia aplikacji, co jest dużym plusem. Co to oznacza w praktyce? Posiadając szkice, grafiki lub mockupy jesteśmy w stanie wykonać dużą część pracy. Vision AI skanuje dany mockup i ,,uczy się” go. Jeśli aplikacja faktycznie będzie wyglądała tak samo jak w projekcie, to możemy być pewni, że Vision AI sobie z nią poradzi.

Tricentis zapowiada kolejny dodatek, który ma usprawnić egzekucję testów. Będzie to self-healing. Na etapie tworzenia i utrzymywania testów aplikacja może się bardzo zmieniać. Self-healing ma być odpowiedzią na sytuację, gdy np. dany label czy nazwa przycisku się zmieni. Wg Tricentis Vision AI ma rozpoznać taką zmianę na podstawie umiejscowienia elementu i zaproponować aktualizację testu. Nietrudno przyznać, że takie działanie robi wrażenie oraz ułatwia utrzymywanie testów.

Novum na rynku i co dalej?

Sieć neuronowa w Tricentis trenowana była na kilkudziesięciu tysiącach aplikacji. Skupiono się głównie na formularzach – kiedy Vision AI używana jest przy polach tekstowych, nagłówkach, labelach oraz przyciskach radzi sobie z rozpoznawaniem ich bardzo dobrze.

Należy pamiętać, że AI w testowaniu jest młodą dziedziną, która wciąż się rozwija i ma swoje ograniczenia. Jednym z nich jest skanowanie ikonek (co jest bardzo istotne przy testach mobilnych) – nie są one zbyt dobrze rozpoznawane. Na ten moment rozwiązaniem jest użycie wcześniej wspomnianej funkcjonalności “Create User Identified Control…”.

Co można by dodać, aby korzystało się z tego rozwiązania jeszcze lepiej? Z pewnością wykorzystanie Vision AI u dostawców rozwiązań chmurowych, takich jak Browsertack, Perfecto czy Sauce Labs – są one coraz bardziej popularne i w wielu firmach wykorzystywane na potrzeby testów. Największą ich zaletą jest to, że środowisko testowe do egzekucji nie leży po naszej stronie i to bez względu czy jest to aplikacja webowa, mobilna lub webowa (i na jakiej przeglądarce chcemy ją sprawdzić). Na ten moment Vision AI potrzebuje warstwy UI do egzekucji testów, zanim połączy się dostawcą chmurowym (na zasadzie pośrednictwa), co wydaje się być ,,wąskim gardłem”. Faktycznym game changerem byłoby umieszczenie Agenta Vision AI u dostawców chmurowych, tak aby testy były uruchomione bezpośrednio w chmurze.

Inne usprawnienie, które przychodzi mi do głowy, to poprawa infrastruktury Vision AI w kontekście Continuous Integration. Jeśli używamy kilku maszyn do egzekucji testów, to każda maszyna musi wtedy posiadać Agenta Tosci oraz Agenta Vision AI. Dobrym rozwiązaniem wydaje się ujednolicenie tych agentów w jednego.

Vision AI posiada wiele zalet, ale służy do wspomagania testów. Z pewnością warto spróbować to narzędzie, poznać jego dobre i złe strony oraz obserwować, w jakim kierunku będzie się ono rozwijać.

3 / 5
Kategorie: Testing
Piotr Pomozow
Autor: Piotr Pomozow
Przygodę z testowaniem rozpoczął w 2016 roku. Na początku zajmował się testami manualnymi, a po pewnym czasie trafił do firmy wytwarzającej oprogramowanie do testowania automatycznego – Tricentis. Aktualnie pracuje dla projektu wykorzystującego Tosca Commander i szerzy wiedzę na temat tego narzędzia.

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

komentarze(1)

avatar'
Natalia Wandachowicz
18 sierpnia 2021 Odpowiedz

Tricentis - dostawca przyszłości :)

Zostaw komentarz