Wprowadzanie innowacji do testowania oprogramowania pomaga w dostarczaniu najwyższej jakości kodu i tworzeniu lepszych produktów cyfrowych. Piotr (QA Engineer) przedstawi nowości w obszarze testowania automatycznego, którym warto się przyjrzeć w 2023 roku.

W ostatnich latach mogliśmy zaobserwować zwiększenie tempa cyfrowej transformacji wielu firm. Przedsiębiorcy zaczęli kłaść większy nacisk na cyfryzację i rozwój oprogramowania. Tak dynamiczny postęp technologiczny wymaga utrzymania jakości kodu na najwyższym poziomie – wzrasta tym samym zapotrzebowanie na innowacje w testowaniu oprogramowania tak, aby było jeszcze wydajniejsze.

Trendy w automatyzacji testów w 2023

Automatyzacja testów jest nieodłączną częścią procesu testowania oprogramowania. Liczne korzyści automatyzacji, takie jak skrócenie cyklu tworzenia oprogramowania, czy zwiększenie możliwości testowania nie są przedsiębiorcom obojętne. Główny cel automatyzacji w QA dla biznesu to przyspieszenie informacji zwrotnej o jakości aplikacji na każdym etapie.

Według raportu, rynek testowania aplikacji mobilnych wygeneruje do 2025 roku przychód w wysokości 8,23 mld dolarów.

W 2023 roku możemy spodziewać się jeszcze większego wzrostu zapotrzebowania na automatyzację testów, w szczególności wspieranego przez AI i ML, a także tzw. codeless automation

Rola AI i machine learning w testach automatycznych 

AI to obecnie bardzo trendujący kierunek, tzw. buzzword, który generuje duże zainteresowanie. Sztuczna inteligencja znajduje też swoje zastosowanie w testowaniu, a jej głównym zadaniem jest ułatwienie QA testerom wykonywania prostych zadań.

Początki sztucznej inteligencji w QA

Temat SI (lub z angielskiego AI) zaczął być popularny już kilka lat temu, kiedy coraz większe uznanie zdobywała automatyzacja testów. Wówczas firmy zaczęły wykorzystywać sztuczną inteligencję we frameworkach do automatyzacji testów. Ja również miałem okazję poznać możliwości AI spędzając sporo czasu na instalowaniu i testowaniu tych frameworków. Byłem jednak nieco zawiedziony, ponieważ początki SI w automatyzacji nie przynosily większych rewolucji w testowaniu. Wszelkie algorytmy oparte były na niezwykle prostych mechanizmach, i nie wnosiły nic innowacyjnego do pracy testerów.

W jaki sposób obecnie AI ułatwia testowanie?

Z czasem postępy w rozwoju technologii AI zaszły tak daleko, że możemy już obserwować rezultaty. Chociażby w postaci zyskującego ostatnio na popularności chatGPT, który odpowiednio wykorzystany, może znacznie skrócić czas niektórych czynnosci testera. 


AI może pomóc w testowaniu
poprzez:

  • przyspieszenie prostych i powtarzalnych zadań, np. generowanie zgłoszeń (ticketow) w Jira,
  • tworzenie planów testów i scenariuszy testowych wg schematów,
  • łatwiejsze tworzenie syntetycznych danych testowych,
  • generowanie ruchu w aplikacjach webowych.  

Mam nadzieję, że w tym roku będzie można wykorzystać AI do bardziej złożonych czynności, a nie tylko prostych, powtarzalnych zadań. Wyboraźmy sobie, że potrzebujemy szybkiego utworzenia dużej bazy danych potrzebnej do testów. AI na polecenie ,,stwórz dane personalne ludzi z wojewodztwa slaskiego” może wygenerować adresy i kody pocztowe pasujące do danej lokalizacji. Jest to przykład praktycznego zastsowania, który sprawdzi się na co dzień w pracy QA testera.

Codeless automation 

Kolejny trend to codelesss automation testing. Ten trend pozwala automatyzować testy osobom, które nie mają zaawansowanej wiedzy dotyczącej programowania. W praktyce przypomina to trochę budowanie z klocków. Gotowe moduły układa się w odpowiedniej kolejności, aby w rezultacie powstał kod automatyczny. Jednak zawsze należy pamiętać, że prawidłowe testy automatyczne wymagają wkładu ludzkiego i krytycznego myślenia.

Wyzwaniem przy budowaniu testów automatycznych z gotowych modułów jest duża liczba wejść i wyjść z każdego z nich. Boty Si mogłyby pomóc w integracji ‘klocków’ pomiędzy sobą. 

Opieranie testów całkowicie na gotowych modułach może zwyczajnie się nie sprawdzić, szczególnie w zakresie połączenia pomiędzy poszczególnymi klockami. Widzę natomiast szansę w tym, że boty potrafiące doskonale napisać proste kawałki kodu mogłoby znacznie ułatwić integrację pomiędzy modułami bez dodatkowego kodowania. 

Przykład:

Już teraz możemy wykorzystać AI w  prostych zdaniach, np. Do pobierania danych z odpowiedzi API w formacie json. Wyobraźmy sobie, że chcemy zaprogramować w danym języku funkcję, która pobierze ID wybranego elementu. W kilka chwil otrzymamy nie tylko poprawne linijki kodu, ale również dokładny opis wyjaśniający go krok po kroku. W efekcie możemy zaoszczędzić naprawdę dużo czasu.

Automatyzacja testów we frameworkach opartych na JavaScripcie

JavaScirpt to na tyle poplarny język, że na co dzień posługuje się nim wielu specjalistów IT w różnych dziedzinach, zarowno frontend jak i backend. JS znajduje również swoje zastosowanie w testowaniu. Dzięki znajomości wspólnego języka programowania developerzy i testerzy mogą ściśle współpracować. Takie rozwiązanie angażuje cały zespół w automatyzację testów. Zarówno testerzy, jak i programiści wykorzystujący na co dzień JS mogą brać udział w testowaniu, pisząc lub dopisując części testów.

Jakie są korzyści frameworków automatyzacji testów JS?

Plusem powstających nowych frameworków do automatyzacji JS jest to, że mogą korzystać z doświadczeń frameworków opartych na innych technologiach. Dzięki temu, że automatyzacja testów rozwija się prężnie od ponad 10 lat, można wykorzystać cały dobytek tej dziedziny do rozwoju i aktualizacji coraz lepszych frameworków. Wiadomo też, co opłaca się automatyzować lub można łatwiej przewidzieć obszary potencjalnych błędów.

Shift-left testing, czyli im wcześniej tym lepiej

Shift-left to podejście w testowaniu, które polega na przesunięciu automatyzacji testów jak najwcześniej. Wiadomo, że im wcześniej wykryty błąd, tym tańszy koszt jego naprawy. Przesunięcie testowania na pierwszą fazę rozwoju pomaga uniknąć tej sytuacji.

The visual representation of shift-left testing approach.

Test Driven Development w automatyzacji

Razem z rozwojem popularności shift-left testing, możemy też zaobserwować zapotrzebowanie na TDD (ang. test driven development). Ten kierunek pozwala na przeprowadzanie testów przed albo równocześnie z implementacją. Aplikacje oparte na mikroserwisach łatwo jest obłożyc testami, zanim tak naprawdę powstaną. Coraz więcej aplikacji migruje na mikrosewrwisy, a więc coraz częstszą tendencją będzie przesuwanie się automatyzacji w lewo. W rezultacie częściej będziemy wykorzystywać podejście TDD. Automatyzacja może przejść jeszcze bardziej na lewo, czyli bliżej początku całego procesu rozwoju oprogramowania.

Shift-right testing również ma znaczenie

Shift right, czyli testowanie na samym końcu procesu rozwoju oprogramowania z reguły polega na testowaniu niewielkich zmian. Jakie korzyści niesie shift-right testing? Tuż po deploymencie, czyli praktycznie na samej produkcji testowanie pomaga chociażby w lepszej analizie ruchu na stronie. Testy AB mają ogromny potencjał w zwiększaniu sprzedaży i efektywności działań marketingowych. Dzięki nim firmy mogą zmierzyć dokładnie efekty niewielkich zmian w aplikacji. Na przykład, jak zmiana koloru fontu przycisku wzywającego do działania może wpłynąć na reakcje różnych grup użytkowników. Shift-right testing dotyczy często tak drobnych zmian, że może odbywać się już poza środowiskiem testowym. Najczęściej pozwala to zbadać zachowania użytkowników, a tym samym tworzyć aplikacje zgodne z wzorcem user-friendly.

Podsumowanie

Nowe trendy w QA, takie jak automatyzacja, machine learning czy AI znacząco przyczyniają się do ułatwienia i usprawnienia procesów testowania oprogramowania. Obserwowanie nowości z dziedziny testowania to dobra droga dla każdego software house’u, aby zapewnić zespołom QA odpowiednie narzędzia i zasoby, które zapewnią najwyższą jakość kodu w projektach IT. 

Zapraszamy na naszego bloga po więcej tematów związanych z technologiami. A jeśli potrzebujesz porady od zespołu specjalistów IT, skontaktuj się z nami! Możemy stać się Twoim zaufanym partnerem w tworzeniu oprogramowania od podstaw.