Wyzwania automatyzacji testowania
Dostępne narzędzia
Część I

Tagi: 0

Trudności, z którymi trzeba się zmierzyć, chcąc nie tylko tworzyć, ale i utrzymać testy automatyczne tak, by korzystanie z nich było jak najbardziej efektywne, różnią się w zależności od firmy czy organizacji. Każda z nich ma bowiem swoją unikatową specyfikę i kulturę pracy. Można jednak sformułować pewne główne problemy, które powtarzają się najczęściej i z którymi firmy muszą mierzyć się na co dzień.

Kolejnym tematem naszej analizy dotyczącej wyzwań w automatyzacji testowania, jest kwestia dostępnych na rynku narzędzi. Sprawa dotyczy nie tylko ich efektywności, ale też liczby na rynku. 

Analiza raportu

Wyniki badań  przeprowadzonych przez Capgemini i Sogeti wykazały, iż organizacje borykają się z niedoborem odpowiednich narzędzi do automatyzacji. 42% ankietowanych przyznało, że ich zespoły nie dysponują zapleczem technologicznym dostosowanym do potrzeb związanych z automatyzacją. Przyglądając się wynikom ankiety z lat poprzednich (2017, 2016), zauważyć można, iż wskazany problem utrzymuje się od paru lat na podobnym poziomie (odpowiednio: 39% i 41%). Oznacza to, iż ten rodzaj “bariery” technologicznej nie pomniejsza się. Choć na rynku pojawia się wiele nowych narzędzi mających ułatwić automatyzację procesów testowych, to wciąż nie spełniają one wymagań i prawdziwych potrzeb zespołów testerskich.Brak narzędzi do testowania, zamęt technologiczny

Paradoksalnie, 29% respondentów wskazało, iż zamęt technologiczny spowodowany zbyt dużą liczbą dostępnych narzędzi do tworzenia testów automatycznych, utrudnia wdrożenie i utrzymanie rzetelnych testów. Rynek oferuje wiele narzędzi wykorzystujących możliwości nagrywania i odtwarzania testów, a wszystkie próbują załagodzić dokładnie ten sam problem – automatyzacji testów manualnych – lecz często okazują się szkodliwe dla poziomu produktywności zespołu. Sytuacja ta znacznie utrudnia oddzielenie ziarna od plew i znalezienie narzędzi, które faktycznie usprawnią testowanie i odpowiedzą na rzeczywiste potrzeby.

Przyczyna

Przestarzałe narzędzia

Dostępne na rynku narzędzia do testowania zostały zaprojektowane w czasach, gdy strony internetowe czy programy były prostsze, a ich ilość na rynku mniejsza. Dlatego znaczna część opatentowanych systemów testowych dostępna jest w branży niemalże od początku XXI wieku. Co więcej, nawet najnowsze produkty, jak platforma testowa Espresso lub Square KIF, wyglądają i funkcjonują w strukturach bardzo podobnych do swoich poprzedników.

Jednym ze sposobów usprawnienia testowania stała się automatyzacja, która w swoim czasie była rozwiązaniem prawdziwie rewolucyjnym. Po początkowych sukcesach jej rozwój zatrzymał się jednak na wiele lat. Przez ponad dekadę znane paradygmaty automatyzacji testów wykorzystujące identyfikację obrazu, nagrywanie i odtwarzanie czy manualne kodowanie selektorów, często oparte na DOM-ie czy identyfikatorach dostępności (accessibility identifiers), zostały poprawione tylko w niewielkim stopniu i przeniesione na nowocześniejsze platformy.

Przestarzałe narzędzia

Dzięki ciągłemu ulepszaniu języków programowania, w roku 2010 na rynek wypuszczony został CSS 3, a cztery lata później swoją premierę miał HTML 5. Osiągnięcia te nadały nowe trendy w programowaniu stron WWW. Jeszcze do niedawna kwestia responsywności stron internetowych i aplikacji webowych nie była brana pod uwagę podczas testowania. Wraz z rozwojem techniki i technologii, spopularyzowaniem urządzeń przenośnych (smartfony, tablety) i upowszechnieniem dostępu do internetu responsywność stała się cechą absolutnie niezbędną.

Dynamicznie generowane strony WWW są na bieżąco dostosowywane do urządzeń, na których są wyświetlane. Aktywnie ładowane treści takie jak przyciski CTA, pop-upy czy reklamy zmieniają strukturę w zależności od użytkownika. Sprawia to wiele kłopotów podczas testowania, ponieważ każdy test trzeba przeprowadzić na różnych przeglądarkach, urządzeniach i systemach operacyjnych i to wielokrotnie. 

Tworzenie testów automatycznych dla stron internetowych i aplikacji webowych przy pomocy starszych systemów jest często kwestią godzin, a nawet dni. Analizowanie awarii może w dużym stopniu zależeć od stopnia złożoności systemu. Największym problemem pozostaje jednak kwestia utrzymania testów, która nierzadko zajmuje 50% lub więcej czasu normalnie poświęconego na testowanie. Za każdym razem, gdy programiści dokonują drobnych zmian w kodzie, należy przerobić w najlepszym wypadku tylko część testu.

Zamęt technologiczny

Różnorodność charakteru systemów testowanych a w szczególności front-endu aplikacji, skutkuje tym, iż środowiska i systemy testujące działają tylko w wybranych przypadkach i nie ma rozwiązania, które odpowiadałoby na potrzeby wszystkich uczestników rynku. Tłumaczyłoby to paradoksalną sytuację, w której 29% respondentów wskazało, iż zamęt technologiczny spowodowany zbyt dużą liczbą dostępnych narzędzi do tworzenia testów, jest kolejną przyczyną utrudniającą wdrożenie i utrzymanie rzetelnych testów. Dobór odpowiedniego narzędzi jest skomplikowanym procesem, który w wielu organizacjach wymaga obecności (i opinii) wielu osób od testerów i zespoły ds. QA po stanowiska kierownicze odpowiedzialne za budżety oraz dobór kadr. 

Rzetelna ocena narzędzia może wydawać się nieosiągalna z różnych powodów, m.in.:

  • Braku specjalistycznej wiedzy niezbędnej do maksymalnego wykorzystania możliwości danego narzędzia
  • Niewiedzy na temat tego, czy istnieje narzędzie spełniające określone potrzeby zespołu
  • Błędnego wyobrażenia na temat testowania i możliwości jego zautomatyzowania prowadząca do pragnienia (szukania, czekania) narzędzia, które z różnych powodów nie jest dostępne
  • Ulubione narzędzie nie zapewnia pełnego pokrycia testowego
  • Kosztów narzędzia wykraczających poza dostępny budżet

Rynek oferuje wiele różnych narzędzi do  testowania, począwszy od darmowych i open source’owych, jak Katalon czy Selenium, przez te typowo komercyjne, jak CrossBrowserTesting, aż po te wspierające różne rodzaje testów i technologie. Każde z nich ma swoje mocne i słabe strony, każde posiada swoją specyfikę i tendencje do wspierania określonych sytuacji. Kampanie marketingowe prowadzone przez marki wprowadzają jeszcze więcej zamieszania, wywołując błędne wyobrażenia o produktach i dezorientację w wyborze takiego rozwiązania, które spełniałoby indywidualne oczekiwania zespołu. 

Zamęt technologiczny

Dostęp do wielu narzędzi, z których każde odpowiedzialne jest za inny rodzaj testów to dodatkowe utrudnienie. By kompleksowo i rzetelnie przetestować stronę z wykorzystaniem różnych urządzeń, należy je wyposażyć w szereg narzędzi, z których każde musi być zaopatrzone w odpowiednie sterowniki, być na bieżąco aktualizowane i wymaga konkretnych zasobów pamięci podręcznej. Takie zaplecze nierzadko wiąże się z utrzymaniem dużego zespołu testerskiego, niezbędnego do obsługi urządzeń i narzędzi. Manewrowanie między nimi nie obejdzie się bez sporych zasobów systemowych, a obsługiwanie procesów przez rozbudowaną kadrę czyni całość bardziej skomplikowaną, a w efekcie czasochłonną. Zwiększa to znacznie koszta projektu związane z zakupem oraz utrzymaniem odpowiednich sprzętów i narzędzi, oraz z opłaceniem wykwalifikowanych pracowników.

Podsumowanie

Z jednej strony narzędzia do automatyzacji testowania, które nie nadążają za szybkim rozwojem programowania i dynamicznymi oczekiwaniami użytkowników. Z drugiej obecność wielu narzędzi na rynku i natarczywe kampanie marketingowe je promujące prowadzą do chaosu informacyjnego, w którym ciężko jest odnaleźć rozwiązanie, które będzie najbardziej efektywne dla naszych potrzeb.

Jak poradzić sobie w takiej sytuacji i nie zwariować? Na co zwrócić uwagę w trakcie dokonywania wyboru narzędzia? O tym w drugiej części tego wpisu już za tydzień.

DYSKUSJA

Skomentuj
wypróbuj

Zarejestruj się i zacznij działać!