„Czy narzędzi do automatyzacji testów możemy nauczyć interfejsu aplikacji, w taki sam sposób, jak uczmy tego realnych użytkowników?” – to pytanie postawił sobie Tricentis, zaczynając pracę nad Vision AI.
Vision AI możemy zdefiniować jako „inteligentny” silnik do automatyzacji testów interfejsu użytkownika (UI), pozwalający na automatyzację skryptów testowych bez użycia kodu. Będą to m.in.: sytuacje, w których definiowanie selektorów na potrzeby automatyzacji jest niemożliwe ze względu na wczesną fazę developmentu aplikacji (dostępność jedynie mockupów) lub wymagana jest weryfikacja skomplikowanych struktur i elementów graficznych na stronie (np.: map, diagramów). Narzędzie to pozwoli także na zaangażowanie w proces testowania osób nietechnicznych, ale posiadających kluczową w procesie wiedzę domenową.
Przy tworzeniu Vision AI Tricentis wykorzystał jako metodę analizy danych uczenie maszynowe, dzięki czemu silnik narzędzia, podobnie jak użytkownik końcowy, ma zdolność interpretowania różnych ekranów i obiektów dostępnych w aplikacji. Ponadto, dzięki modułowi „Vision AI Self Healing”, w przypadku zmian w aplikacji, które w tradycyjnych testach spowodowałyby niepowodzenie egzekucji, Vision AI podejmie próbę „samonaprawy” skryptu, bazując na swojej wyuczonej „inteligencji”.
Silnik Vision AI jest zintegrowany z narzędziem Tricentis Tosca, o czym dowiesz się więcej z artykułu: Czy Tosca i podobne rozwiązania codeless są przyszłością testowania?
W niniejszym artykule postaramy się szerzej omówić wymienione na wstępie przypadki użycia Vision AI w projektach informatycznych, zwracając szczególną uwagę na aspekty wyróżniające to narzędzie na tle „klasycznych” frameworków do automatyzacji testów.
Konfiguracja
Jak z każdym narzędziem – pracę z Vision AI należy rozpocząć od konfiguracji. Przygotowanie do pracy należy poprzedzić kilkoma etapami:
- rejestracją,
- logowaniem,
- instalacją,
- konfiguracją połączenia.
Rejestracja
Dla danej firmy/instytucji/projektu powinno zostać założone środowisko – Nexus Server. Dostępu do niego udziela administrator na prośbę przyszłego użytkownika. Po otrzymaniu informacji o przyznaniu dostępu możemy się zalogować.
Logowanie
Aby się zalogować korzystamy z adresu: https://authentication.app.tricentis.com/ . W pierwszym kroku podajemy Account Name (jest to nazwa zarejestrowanej firmy), np.: SII i klikamy „Continue”.

W kolejnym kroku uzupełniamy nasz adres e-mail i hasło, dodatkowo możemy zaznaczyć opcję „Remember me”, a na końcu klikamy „Login”.

Po zalogowaniu, warto przygotować Token, który będzie potrzebny do połączenia z Vision AI agent – zapewni to nam stabilność połączenia podczas skanowania modułów z Vision AI oraz egzekucji testów.

Pamiętajmy, że dane Tokena są widoczne tylko w momencie wygenerowania, więc warto zapisać je w notatniku na przyszłe potrzeby. Jeśli tego nie zrobimy – nie będziemy mogli użyć Tokena i zaistnieje konieczność wygenerowania nowego oraz zapisania jego danych od początku. Pamiętajmy też, że Token ma swój czas przydatności i po wygaśnięciu musimy utworzyć nowy oraz ustanowić połączenie z usługami na nowo. Jest to i tak o wiele mniejsza niedogodność w porównaniu z wpisywaniem codziennie loginu i hasła w ramach autentykacji 😉
Poniżej poglądowo screen z Tokenem „test” i informacjami, jakie dane są generowane – te dane należy skopiować (ułatwia to ikona „kopiuj” przy każdej wartości) i zapisać na potrzeby dalszego użytku.

Instalacja
Jeśli nie instalowaliśmy komponentu Vision AI podczas instalacji Tosca Commander, to powinniśmy ponownie ściągnąć plik instalacyjny dla Tosca Commander (zgodny z naszą wersją) i go uruchomić. Następnie, wybrać opcję „Modify” > „Custom Instalation” oraz „Next”, a na kolejnym ekranie zaznaczyć checkbox dla Vision AI:

Kolejno klikamy przycisk „Next” oraz potwierdzamy chęć zmiany przyciskiem „Modify”. Po zakończeniu procesu instalacji Vision AI otrzymamy stosowny komunikat.
Konfiguracja połączenia
Uruchamiamy Vision AI agent, który został dodany do Tosca Commander – jest to również samodzielna aplikacja, która będzie się włączać w każdym momencie uruchamiania skanowania aplikacji przez silnik Vision AI, jak również podczas egzekucji testów z modułami przygotowanymi dla Vision AI/przez Vision AI.
Vision AI jest dla nas dostępny z zasobnika systemowego – aby ustanowić stabilne połączenie, klikamy prawym przyciskiem myszy na ikonę Vision AI i wybieramy „Settings”:

Ustawiamy odpowiedni Nexus Server Endpoint. Dla stabilnego działania podczas egzekucji testów warto połączyć się z przygotowanym wcześniej Tokenem. Możemy to zrobić za pomocą przycisku „Set Token”. Dalsze etapy są intuicyjne i polecenia wyświetlane są na ekranie – jeśli Token został wcześniej przygotowany, a dane do niego zapisane, to podłączenie nie powinno stanowić żadnego problemu.

Po konfiguracji połączenia za pomocą Tokena nasz Vision AI Agent powinien zostać zamknięty i uruchomiony ponownie.
Jeśli planujemy uruchamiać testy na DEX-ie, powinniśmy dla usera, na którym testy będą uruchamiane, również założyć konto dla Vision AI (poprosić o to administratora), wygenerować Token oraz zainstalować Vision AI agenta w lokalizacji, gdzie będą uruchamiane testy. Następnie połączyć z Tokenem – tak jak dla każdego innego użytkownika. Musimy też pamiętać o tym, aby Vision AI agent był uruchamiany tuż po uruchomieniu systemu Windows na tej lokalizacji.
Ważna informacja – Vision AI będzie działał tylko jeśli mamy połączenie z Internetem.
Jeśli chcemy zgłębić dodatkowe warunki konfiguracji, to zapraszamy do zapoznania się z dokumentacją źródłową od Tricentis: Vision AI documentation.
Vision AI – sposoby użycia
Wyróżniamy 3 główne sposoby użycia Vision AI:
- Budowanie stepów poprzez moduł Run Vision Script.
- Skanowanie mockupów UI – w celu przygotowania wstępnych testów, zanim napisany będzie kod aplikacji, ale kiedy dostępny jest projekt UI.
- Skanowanie obrazów, grafów, aplikacji trudnych do klasycznej automatyzacji – Vision AI przydaje się wszędzie tam, gdzie standardowe metody uzyskiwania/weryfikacji danych nie są stabilne (np.: odczytywanie danych z wykresów zapisanych w pliku graficznym).
Moduł Run Vision Script
Moduł „Run VisionScript”, który znajdziemy w Standard Modules w Tosce, pozwala na sterowanie aplikacją przy użyciu słów kluczowych, wykorzystując konstrukcje bardzo zbliżone do „języka naturalnego”.
Poniższy przykład (wypełnianie formularza kontaktowego na stronie Sii w celu weryfikacji poprawności walidacji) ilustruje prosty przypadek użycia modułu „Run VisionScript” w Tosce.

Po uruchomieniu skryptu nastąpi wypełnienie wskazanych pól formularza, wybranie kategorii z listy oraz kliknięcie przycisku wysłania wiadomości. Na końcu skrypt zweryfikuje treść i kolor komunikatu o błędnym wypełnieniu formularza.

Struktura modułu Run VisionScript
Prześledźmy szczegółowo strukturę użytego modułu „Run VisionScript”. Każdorazowo, w module, musimy wskazać nazwę testowanej aplikacji. Następnie, używając słów kluczowych, wykonujemy określone kroki testowe na stronie. Przeanalizujmy przykładowe:
- „TYPE „Daria” IN the 'First name’ input” – pozwala na wpisanie frazy „Daria” w pole typu input, przy którym widnieje etykieta „First name”.
- „CLICK IN the 'Subject’ dropdown„ – umożliwia kliknięcie (w tym przypadku rozwinięcie) elementu typu dropdown o nazwie 'Subject’.
- „CLICK the 'Send messange’ button„ – klika w przycisk 'Send message’.
- „VERIFY color > 25% „red” FOR the 'The field is required’ text„ – słowo kluczowe „VERIFY” umożliwia weryfikację. W tym przykładzie weryfikujemy, czy w wyświetlanym tekście, więcej niż 25% pixeli jest koloru czerwonego.
Szczegółowe omówienie wszystkich słów kluczowych jest dostępne w dokumentacji Vision AI.
Skanowanie mockupów
W świecie IT, coraz większą popularność zdobywa koncepcja „Shift Left”, polegająca na przesunięciu zadań związanych z zapewnieniem jakości do początkowych etapów procesu wytwarzania oprogramowania. Dzięki takiemu działaniu, możemy wcześniej wykrywać i rozwiązywać problemy wynikające np.: z niespójności wymagań. A jak wiemy, im szybciej odnaleziony i zaadresowany błąd, tym tańsza jego naprawa.
Silnik narzędzia Vision AI, dzięki możliwości interpretacji obiektów graficznych, pozwala nam na stworzenie testów, jeszcze zanim gotowa jest realna aplikacja i jej kod, ponieważ do stworzenia pierwszych testów wystarczą nam mockupy.
W celu zademonstrowania działania silnika Vision AI, wykorzystałyśmy grafikę ze strony freepik.com („Gradient ui/ux elements collection„).

Na powyższym zrzucie ekranu widzimy, jak skutecznie Vision AI poradził sobie z mockupem, bazując jedynie na pliku graficznym. Rozważmy przedstawiony przykład – XScan w Tosce poprawnie rozpoznał elementy takie, jak:
- przycisk „button” widziany w lewym górnym rogu,
- nagłówek sekcji „highlight update”,
- nagłówek sekcji „user profile”,
- grafiki: zdjęcie „Rossy” w kontenerze „highlight update” oraz „Adam Suley” widoczne w „user profile”,
- pole typu input “search something”,
- przycisk „message” do wysłania wiadomości do Adama Suley.
Korzystając z silnika Vision AI, zeskanowano przykładową sekcję – „user profile” i utworzono moduł w Tosce, a następnie, korzystając z modułu, utworzono krok testowy.

Przeprowadzono weryfikację widoczności wszystkich elementów graficznych i tekstów oraz sprawdzono, czy możliwe jest kliknięcie przycisków „follow” oraz „message”. Poniższy zrzut ekranu przedstawia wyniki wykonania testu zestawione na Execution Liście w Tosce.

Przygotowane w ten sposób pre-testy, mogą znacznie ułatwić proces komunikacji z analitykami i biznesem, a w kolejnych etapach powstawania aplikacji znacznie przyspieszyć proces budowy docelowych testów.
Skanowanie obrazów, grafów, aplikacji trudnych do klasycznej automatyzacji
Vision AI może pomóc w automatyzacji niestandardowych elementów, np.: w przypadku, jeśli potrzebujemy uzyskać dane z mapy bądź z grafiki, na której mamy wykresy z danymi.
Jedynym warunkiem jest to, aby grafika była wyraźna – Vision AI opiera się na rozpoznawaniu obiektów „wzrokowo”, więc tak jak w przypadku rozpoznawania obiektów ludzkim okiem – jeśli obiekt będzie rozmazany, to narażamy się na niemożność odczytania danych. Tego typu sytuacji nie jesteśmy w stanie obsłużyć, nawet wspomagając się najnowszą technologią wspierającą testy.
Vision AI zdecydowanie sprawdzi się również w przypadku aplikacji, które, co tu dużo mówić, są źle napisane, ich konstrukcja jest zawiła, nie mają powtarzalnych schematów bądź standardowych elementów i są przez to trudne do automatyzacji pod warstwą ładnego UI.
Działanie w praktyce
Poniżej przykład test case’a z weryfikacją danych z grafiki:
Środowisko:
Przeglądarka Chrome (wersja 124.0.6367.62), tryb incognito
Dane testowe:
Kategoria artykułu: Development na miękko
Subkategoria artykułu: Salesforce
Tytuł artykułu: Odkrywanie potencjału Salesforce Maps – przegląd narzędzia
Autor artykułu: Michał Najdora
Data publikacji: 23 lutego 2024
Miasto: Gdańsk (na mapie Gdansk)
Stepy:
- Otwórz stronę https://sii.pl/ w przeglądarce.
- Zaakceptuj ciasteczka na stronie.
- Zweryfikuj, czy link prowadzący do Bloga jest widoczny.
- Kliknij w link prowadzący do Bloga.
- Wybierz odpowiednią Kategorię artykułu.
- Kliknij „Zobacz więcej” dla sekcji Subkategorii artykułów.
- Wybierz odpowiednią Subkategorię artykułu.
- Zweryfikuj, czy oczekiwany artykuł jest na liście.
- Kliknij link artykułu.
- Wyszukaj obraz o odpowiednim opisie.
- Zweryfikuj, czy obraz jest widoczny.
- Zweryfikuj elementy na obrazie: ikona przycisku „Layers” jest widoczna, ikona przycisku „Save Changes” jest widoczna oraz najedź kursorem myszy na podane miasto w buforze.
- Zamknij przeglądarkę.
- Usuń wszystkie użyte bufory.
Step 12 ma być wykonany podczas egzekucji za pomocą modułu przygotowanego z silnikiem Vision AI.

Podczas skanowania obrazu z pomocą Vision AI jesteśmy w stanie rozpoznać nie tylko stałe elementy, jak na przykład przyciski (o czym było już wspomniane w poprzednim podrozdziale), ale również obiekty na mapie. Z racji tego, iż na naszym obiekcie możemy odczytać kilka nazw miast, stąd nie korelowano nazwy miasta z parametrem „na sztywno”, ale zastosowano bufor – dzięki czemu możemy podać inną nazwę miasta – np. „Wroclaw” i również zostanie ona odnaleziona na mapie.
Poniżej możecie obejrzeć nagranie opisanego testu.
Vision AI Self-Healing
Dzięki temu, że Vision AI wykorzystuje jako metodę analizy danych uczenie maszynowe i potrafi interpretować elementy UI, tak jak „prawdziwy” użytkownik aplikacji, możliwe było wprowadzenie do testów funkcjonalności „samonaprawiania”. Aby włączyć mechanizm Vision AI Self-Healing, należy zezwolić aplikacji na przechowywanie historii testów w chmurze. Pozwoli to Vision AI na analizę obrazów z uruchomień testów, „naukę” interfejsu i stworzenie kilku stabilnych alternatyw dla odnalezienia elementów aplikacji używanych w teście.
Kolejnym krokiem jest wyszukanie modułu „Vision AI Self-Healing” i dodanie go jako Test Step w Recovery Scenario w Tosce, co zilustrowano na poniższym zrzucie ekranu.

Na przykładzie przycisku wysyłania formularza, przedstawionego we wcześniejszej części artykułu, rozważmy sytuację, w której może zadziałać mechanizm „samo-naprawy” testu. Jeśli przycisk ten zmieni kolor lub jego położenie ulegnie zmianie, Vision AI w dalszym ciągu będzie w stanie poprawnie rozpoznać element. Dynamiczne id, czy zmieniające się nazwy klas również nie będą stanowiły przeszkody dla narzędzia, aby poprawnie zidentyfikować przycisk.
W celu zademonstrowania działania mechanizmu „samo-naprawiania” wprowadziliśmy zmiany w wyglądzie przycisku znajdującego się na dole formularza, zgodnie z poniższym zrzutem ekranu.

Zmianie uległy:
- id,
- nazwa,
- klasy odpowiedzialne za rozmiar i kolor elementu,
- etykieta przycisku.
W pierwszej iteracji Tosca nie mogła odszukać przycisku i doszło do uruchomienia mechanizmu „samo-naprawiania”. Moduł „Vision AI Self-Healing” zadziałał poprawnie i pomimo wprowadzonych zmian, w drugiej iteracji Tosce udało się kliknąć w przycisk.

Sandbox (VisionAI assistant)
Jeśli nie jesteśmy zaznajomieni z możliwościami Vision AI, to Tricentis wychodzi nam naprzeciw, oferując Sandbox – VisionAI assistant, dzięki któremu możemy wypróbować różne dostępne opcje i rozwiązania. Do środowiska mamy dostęp tak samo, jak do innych elementów Vision AI – po założeniu nam konta przez administratora (link do środowiska).
Po wejściu w link klikamy w „Start Assistant”:

Następnie wybieramy Vision AI agenta z listy (będzie skorelowany z nazwą naszego komputera).
Po uruchomieniu odpowiedniego Vision AI agenta zostają zaczytane wszystkie okna z uruchomionymi aplikacjami, wszystkie „widzialne” elementy dla Vision AI – możemy wybrać jedno z nich i na podstawie danego okna i wyświetlanych zawartości budować skrypt.

Po wyborze interesującego nas elementu możemy edytować zaczytane wartości, możemy również dodać stepy przed, jak i po danym stepie. Mamy dostępne opcje takie jak:
- wybierz okno,
- przeładuj widok,
- skanuj obraz,
- importuj skrypt,
- ustaw tryb interaktywny dla elementu (kliknij, wpisz, zaznacz),
- weryfikuj,
- a także uruchom skrypt i zapisz skrypt.
Do naszego Sandboxa (VisionAI assistant) możemy wrócić w każdej chwili. Przygotowane stepy nie znikną.
Każdy dodany step możemy:
- edytować,
- usunąć,
- skopiować,
- wyciąć,
- przesunąć wyżej/niżej.
Możemy dodawać różne typy stepów jak pętle:
- IF,
- WHILE,
- REPEAT UNTIL,
- WAIT UNTIL,
- TRY FAILURE,
- WITH.
Mamy możliwość również importu gotowego skryptu w formacie “.vs” jako stepu. Możliwości jest wiele – warto się z nimi zapoznać samodzielnie poprzez eksplorację narzędzia, aby bardziej zrozumieć ideę Vision AI.

Ograniczenia dla Vision AI
Jak każde narzędzie – również Vision AI ma swoje ograniczenia. Tricentis wyróżnia ich kilka:
- Rozpoznawanie tekstu współpracuje najlepiej z językiem angielskim – w związku z tym znaki nietypowe dla języka angielskiego niekoniecznie będą interpretowane prawidłowo: przykładem są polskie: ą, ę, ł, ó, ś, ć, ż, ź, dź, dż. Znaki całkiem inne niż łacińskie (np.: arabskie, cyrylica, kanji, hanji) – nie będą w ogóle czytane.
- Za pomocą Vision AI nie możemy sterować oknami zarezerwowanymi dla administratora Windows.
- Elementy poza widokiem strony nie będą również widoczne dla Vision AI – należy najpierw przeskrolować stronę, aby Vision AI miał szansę zweryfikować elementy, lub wspomóc się tradycyjnymi metodami automatyzacji, aby obrać punkt na stronie, gdzie zostanie wycentrowany obraz na potrzeby dalszych stepów dla Vision AI.
- Vision AI może mieć problem z sterowaniem tabelą – zwłaszcza jeśli nie wszystkie jej kolumny/wiersze są widoczne na jednym widoku.
- Vision AI uczy się na podstawie podawanych mu danych, stąd na początku może częściej rozpoznawać obiekty nieprawidłowo i trzeba mieć to na uwadze – im więcej egzekucji będzie wykonywanych – tym rezultaty rozpoznawania ulegną poprawie.
Podsumowanie
Vision AI jest obiecującym narzędziem, które pomaga w budowaniu testów tam, gdzie jest to utrudnione. Oczywiście, że nie wszędzie się sprawdzi i nie zastąpi testera, ponieważ kroki testowe oparte na pozostałych silnikach dostępnych w Tosca Commander (lub klasycznych frameworkach testowych) są szybsze i pewniejsze w przypadku „standardowych” sytuacji. Vision AI stanowi raczej formę wsparcia dla tych rozwiązań, które daje nam możliwości automatyzacji niektórych obszarów, gdzie do tej pory testowanie manualne pozostawało jedyną opcją.
Również dzięki Vision AI budowanie testów staje się realne w momencie, kiedy UI aplikacji nie jest jeszcze skończony, ale projekt graficzny już tak. Owszem – możliwe, że moduły przygotowane na mockupach będą do poprawy w kolejnych iteracjach procesu wytwarzania oprogramowania, ale dużo czasu zostanie zaoszczędzone. W niektórych projektach tego typu narzędzie będzie wybawieniem i game-changerem dla testera.
Warto sprawdzić możliwości Vision AI – i przekonać się na własnej skórze, że AI może być oswojonym przyjacielem, który wspiera w codziennej pracy.
Zostaw komentarz