Dlaczego tradycyjna automatyzacja testów nie wystarcza? Nowoczesne podejście NoCode i AI w testowaniu aplikacji
Wytwarzanie oprogramowania nieodłącznie wiąże się z jego testowaniem, które stanowi kluczowy element procesu zapewnienia jakości. Tradycyjne testy manualne mogą być przeprowadzane już na wczesnym etapie, bez konieczności oczekiwania na pełną wersję aplikacji. Ponadto, testy manualne nie są wrażliwe na techniczne zmiany w aplikacji, koncentrując się głównie na weryfikacji, czy funkcjonalność działa zgodnie z wymaganiami biznesowymi.
Te cechy stanowiły jednak wyzwanie w kontekście automatyzacji testów. Tradycyjna automatyzacja testów mogła rozpocząć się dopiero po powstaniu działającej wersji aplikacji, co opóźniało proces weryfikacji jakości. Dodatkowo, utrzymanie testów automatycznych wiązało się z koniecznością reagowania na techniczne zmiany aplikacji, które często nie były widoczne dla użytkownika, ale wymagały aktualizacji skryptów testowych.
Wyzwania związane z aplikacjami opartymi np. na technologiach legacy, czyli starszych rozwiązaniach, które nie są już szeroko stosowane ani wspierane, stają się coraz bardziej zauważalne w dzisiejszym świecie IT. Główne trudności pojawiają się przy doborze odpowiednich narzędzi do efektywnej automatyzacji tych systemów. W wielu przypadkach wymaga to zastosowania odrębnych, często przestarzałych narzędzi, co w konsekwencji prowadzi do konieczności utrzymania wielu różnych rozwiązań.
Tego rodzaju złożoność powoduje, że zespoły muszą dysponować specjalistyczną wiedzą, której transfer między członkami zespołu może być trudny, zwłaszcza w sytuacjach rotacji pracowników. Zwiększa to również liczbę narzędzi, które trzeba monitorować i utrzymywać, co wiąże się z dodatkowymi kosztami oraz obciążeniami operacyjnymi.
Naprzeciw tym problemom wychodzi Tricentis Tosca, czyli narzędzie typu No Code, które bez konieczności pisania kodu wspiera wiele technologii i potrafi automatyzować aplikacje desktopowe, webowe, mobilne oraz wiele więcej, w tym np. analizować pliki PDF. Pokrycie tak wielu technologii sprawia, że w ramach jednego narzędzia możliwe jest tworzenie automatycznych testów end-to-end (E2E) przechodzących przez różne systemy i technologie.
W obecnej erze rozwijającego się AI pojawia się Vision AI, będący częścią Tricentis Tosca. Vision AI umożliwia przeprowadzanie testów z wykorzystaniem zaawansowanej technologii rozpoznawania obrazu i uczenia maszynowego. Znacząco usprawnia procesy testowe i eliminuje niektóre z wyzwań związanych z tradycyjnymi metodami automatyzacji.
Vision AI dzięki oparciu o sztuczną inteligencję imituje sposób postrzegania i rozumienia świata przez człowieka. Dzięki tej technologii możliwe jest automatyzowanie działań w aplikacjach, które bazują na wizualnym interfejsie graficznym, bez względu na jego techniczną warstwę.
Pozwala to zautomatyzować testy, które w wielu przypadkach były nieautomatyzowalne lub wymagałyby użycia i integracji wielu różnych narzędzi.
Poniżej znajduje się zobrazowanie sposobu rozpoznawania obiektów przez Vision AI.
Zbliżona technologia rozpoznawania obiektów jest z powodzeniem wykorzystywana w pojazdach autonomicznych, gdzie umożliwia precyzyjne rozpoznawanie i analizowanie otoczenia w czasie rzeczywistym.
Tricentis Tosca z Vision AI pozwala na osiągnięcie konkretnych korzyści
Poziom uproszczenia i przyspieszenia pracy (w porównaniu do tradycyjnych rozwiązań, np.: opensource) zależy w dużej mierze od specyfiki wdrażanej aplikacji oraz automatyzowanych procesów. Mimo to, można wskazać kilka uniwersalnych korzyści.
- No Code, czyli lepsza dostępność testów automatycznych dzięki wsparciu tworzenia testów przez użytkowników bez wiedzy technicznej i programistycznej
- Shift left, czyli wczesne tworzenie testów automatycznych bez czekania na działającą wersję aplikacji (wystarczy wstępna makieta)
- Szybsze tworzenie nowych testów bez skupiania na technicznej warstwie
- Lepsza stabilność testów przez odporność na dynamiczne różnice w technicznej warstwie aplikacji
- Minimalizacja nakładu pracy na utrzymanie testów w miarę rozwoju aplikacji przez odporność na zmiany w technicznej warstwie aplikacji
- Uruchamianie testów na różnych platformach bez konieczności dostosowywania
- Minimalizacja konieczności dostosowywania testów do różnych wersji aplikacji
W jaki sposób działa Tricentis Tosca z Vision AI?
Żeby dobrze zrozumieć podejście No Code w połączeniu z Vision AI warto zacząć od nakreślenia sposobu tworzenia testów w Tricentis Tosca.
Automatyzacja testów w Tricentis Tosca opiera się na wykorzystaniu różnego rodzaju obiektów. Jednymi z nich są moduły będące techniczną reprezentacją poszczególnych komponentów testowanej aplikacji. Tworzone są dzięki dedykowanym silnikom potrafiącym identyfikować poszczególne technologie testowanych aplikacji. Jednym z tych silników jest Vision AI.
Moduły reprezentują elementy na stronie. Mogą odzwierciedlać całe strony lub poszczególne ich fragmenty takie jak np. menu główne, formularz itp.
Podejście obiektowe zastosowane w narzędziu Tosca umożliwia tworzenie testów automatycznych w sposób przypominający „układanie klocków”, co eliminuje konieczność pisania kodu. Dzięki temu testy stają się bardziej zrozumiałe dla różnych członków zespołu, co sprzyja lepszej współpracy i transparentności oraz ułatwia utrzymanie testów. Przekłada się to na wyższą efektywność oraz oszczędność zasobów.
Mając już moduły reprezentujące części interfejsu aplikacji możemy przejść do stworzenia automatycznego przypadku testowego. Wystarczy ułożyć odpowiednie moduły w kolejności odpowiadającej ich obsłudze w procesie biznesowym. Tak właśnie powstaje przypadek testowy z odpowiednimi krokami.
Następnie należy uzupełniać kroki testowe o dane, niezbędne akcje oraz asercje (czyli to co test ma sprawdzać).
Jednym z głównych atutów tego podejścia jest wyraźne oddzielenie biznesowej warstwy testu od technicznej reprezentacji aplikacji. Takie podejście umożliwia łatwiejsze przydzielanie zadań do członków zespołu zgodnie z ich mocnymi stronami i podziałem na techniczne lub biznesowe.
Ponadto, możliwość reużycia modułów i całych zestawów kroków z bibliotek znacząco podnosi wydajność tworzenia nowych testów dotykających już wcześniej obsłużone fragmenty automatyzowanego procesu. To też powoduje, że zmiany w jednym miejscu propagują się automatycznie na wszystkie wystąpienia, co skutecznie redukuje pracochłonność podczas utrzymania już wytworzonych testów.
Obiekty NoCode w Tricentis Tosca
Moduły tradycyjne, działające na technicznej warstwie aplikacji.
Moduły (Modules) reprezentujące części aplikacji znajdują się w pomarańczowej sekcji.
Dzięki zastosowaniu różnych silników, Tricentis Tosca jest w stanie zeskanować szeroki zakres różnych technologii aplikacji oraz stron HTML. Standardowy proces skanowania odbywa się na warstwie technicznej aplikacji, co skutkuje definiowaniem elementów na podstawie technicznych parametrów.
Silnik skanowania w Tricentis Tosca analizuje techniczną strukturę aplikacji lub strony internetowej, identyfikując wszystkie znajdujące się na niej elementy. Następnie użytkownik dokonuje wyboru, określając, które z tych elementów mają zostać uwzględnione w danym module.
Poniżej znajduje się widok tworzenia modułów na podstawie technicznych parametrów zeskanowanych elementów menu poziomego oraz formularza kontaktowego z działającej strony internetowej www.soflab.pl.
Moduły oparte na Vision AI, działające na wizualnej warstwie aplikacji
Vision AI jest rozszerzeniem standardowych funkcjonalności Tricentis Tosca i służy do zaawansowanej identyfikacji elementów interfejsu użytkownika na etapie tworzenia modułów.
Robi to w sposób zbliżony do tego jak ten interfejs widzi człowiek, czyli bez warstwy kodu aplikacji. Dzięki tej technologii możliwe jest przeprowadzanie procesu identyfikacji na podstawie analizy obrazów, w tym planów interfejsu w formacie graficznym. Takie podejście umożliwia przesunięcie etapu tworzenia testów automatycznych na wcześniejszy etap cyklu życia projektu, jeszcze przed rozpoczęciem developmentu aplikacji. To innowacyjne podejście wspiera realizację strategii „shift-left”, znacząco zwiększając efektywność procesu testowania.
Tworzenie modułów z wykorzystaniem technologii Vision AI różni się od tradycyjnego skanowania, działa na warstwie widocznej dla użytkownika pomijając warstwy technicznych parametrów interfejsu aplikacji. Dzięki wytrenowaniu Vision AI na dużej liczbie różnych widoków aplikacji, system jest w stanie poprawnie rozpoznać elementy, takie jak np. przyciski czy pola wprowadzania danych (input).
Moduły powstałe w ten sposób są takie same pod względem użycia jak moduły tradycyjne, różnicą jest jedynie sposób definiowania elementów. Dzięki temu sposób użycia modułów jest taki sam niezależnie od użytej technologii
W odróżnieniu od tradycyjnego podejścia do lokalizowania elementów, zeskanowane elementy przez Vision AI nie są wrażliwe na techniczne zmiany w kodzie aplikacji, takie jak zmiany identyfikatorów (ID), klas lub CSS. Ponadto, niektóre zmiany w wyglądzie aplikacji, które nie wpływają znacząco na jej strukturę wizualną, też nie mają wpływu na rozpoznawanie elementów i stabilność testów.
Poniżej znajduje się widok tworzenia modułów z użyciem Vision AI na podstawie widoku zeskanowanych elementów menu poziomego oraz formularza kontaktowego z działającej strony internetowej www.soflab.pl.
Vision AI pozwala na przesunięcie momentu wprowadzania testów automatycznych na bardzo wczesny etap cyklu życia aplikacji, już na etapie projektu interfejsu. Umożliwia tworzenie modułów na podstawie makiet graficznych (np. JPG), a następnie wykorzystanie ich w czasie, gdy dostarczona zostanie pierwsza działająca wersja aplikacji. Moduły powstałe w ten sposób są takie same pod względem użycia jak poprzednio opisane.
Poniżej znajduje się widok tworzenia modułu z użyciem Vision AI na podstawie widoku makiety z elementami jeszcze niedziałającej aplikacji.
Przypadki testowe, czyli biznesowa warstwa testów.
Przypadki testowe (Test Cases) znajdują się w niebieskiej sekcji.
Kroki testowe są tworzone przez moduły i zawarte w nich elementy. Moduły są poukładane zgodnie z ich wykorzystaniem w procesie biznesowym a elementy wzbogacone o konkretne akcje które powinny być na nich wykonane.
Poniżaj znajdują się dwa przykłady przypadków testowych. Pierwszy bazuje na modułach tradycyjnych, powstałych po skanowaniu technicznej warstwy działającej aplikacji. Drugi bazuje na modułach wykorzystujących Vision AI, powstałych po skanowaniu makiety aplikacji.
Oba przypadki testowe wyglądają tak samo pomimo bazowania na innych sposobach definicji elementów. Ta cecha daje dużą spójność tworzonych testów niezależnie od technologii.
Poniżej znajduje się widok na przypadek testowy bazujący na modułach ”tradycyjnych”.
Poniżej znajduje się widok na przypadek testowy bazujący na modułach wykorzystujących Vision AI.
Jak pokazują przedstawione przykłady, testy automatyczne oparte na standardowych modułach są tożsame z testami tworzonymi za pomocą Vision AI. Dzięki temu zachowywana jest pełna spójność testów. Co więcej, istnieje możliwość wykorzystania w jednym teście kroków bazujących na różnych typach modułów. Takie podejście daje testerowi dużą elastyczność w doborze technologii tworzenia testów, umożliwiając wybór najbardziej odpowiedniego rozwiązania.
Podsumowanie
Podsumowując, Tricentis Tosca z Vision AI umożliwia zautomatyzowanie procesów i aplikacji, które dotychczas były niemożliwe do automatyzacji oraz znacząco poprawia stabilność testów regresyjnych dzięki swojej odporności na zmiany w technicznej warstwie aplikacji. Automatyczne testy mogą być tworzone już na etapie makiet, czyli znacznie wcześniejw cyklu życia oprogramowania, a potem użyte do testów aplikacji już przy udostępnieniu pierwszej wersji funkcjonalności. W przeszłości takie testy mogły być przeprowadzane jedynie manualnie, a efektywna automatyzacja zaczynała się dopiero na późniejszym etapie z dostępem do działającej wersji testowanej aplikacji. Dzięki Vision AI pierwsza oddana wersja funkcjonalności może być natychmiastowo testowana automatycznie.
Dodatkowo, dzięki zdolności do samo-naprawiania oraz niewrażliwości na zmiany techniczne, testy regresji zyskują na skuteczności w wykrywaniu rzeczywistych problemów aplikacji. Eliminowana jest konieczność interwencji i aktualizacji testu automatycznego w przypadku zmian w warstwie technicznej aplikacji oraz niektórych zmian wizualnych. Cały proces prowadzi do oszczędności czasu, zarówno poprzez szybsze wykrywanie problemów, jak i znaczną redukcję nakładu pracy związanego z utrzymaniem automatycznych testów.
W efekcie wykorzystania Tricentis Tosca i Vision AI w automatycznych testach, jakość aplikacji oraz efektywność procesów wytwarzania oprogramowania mogą znacznie wzrosnąć. Również testerzy zyskują cenny czas, który mogą przeznaczyć na tworzenie nowych testów automatycznych, zamiast na utrzymanie istniejących testów i analizę raportów z nadmiarowymi błędami.
Testy automatyczne zyskują nową jakość.