Automatyzacja testów GUI a automatyzacja weryfikacji GUI

Automatyzacja testów GUI a automatyzacja weryfikacji GUI
Automatyzacja testowania to zbiór czynności, które pozwalają nam prowadzić testy przy wsparciu różnorodnych narzędzi. Podgrupą w ramach automatyzacji testowania jest automatyzacja testów i weryfikacji. Jakie są między nimi różnice i podobieństwa? Pokazujemy.

Choć słownictwo ma w tym przypadku drugorzędne znaczenie, to wprowadzenie konkretnych pojęć pozwoli nam rozróżnić dwie grupy czynności, które często są łączone do jednej, a różni je prawie wszystko - poczynając od metody przygotowania weryfikatorów, przez zaangażowanie czasowe, po koszty.

Wprowadźmy więc dwa pojęcia:

  • automatyzacja testów GUI
  • automatyzacja weryfikacji GUI.

Dwa powtarzające się tutaj pojęcia to po pierwsze: automatyzacja, co oznacza, że coś jest robione w sposób automatyczny i GUI, co oznacza, że sprawdzenie wykonywane jest tu po interfejsie graficznym.

Różnica pojawia się na poziomie definiowania testu i weryfikatora. 
Test będzie dla nas sprawdzeniem konkretnego zachowania się oprogramowania, bazującego na oskryptowanym uruchomieniu testu i sprawdzeniem, czy oczekiwany rezultat zachowania się oprogramowania jest identyczny z rzeczywistym. Rozbieżność może być interpretowana jako defekt samego oprogramowania albo testu.

Weryfikacja będzie sprawdzeniem czy poszczególne elementy oprogramowania są obecne lub też ich zachowanie jest zgodne z pewnym standardem (formalnym lub też nieformalnym).

Wyjaśnimy to na przykładach.

Automatyzacja testów GUI polega na napisaniu skryptu; zazwyczaj jest on tworzony do użycia na danym produkcie. Skrypt (zazwyczaj) zawiera takie elementy jak: 

  • przygotowanie środowiska do uruchomienia
  • wykonanie operacji lub zbioru operacji symulujących zachowanie użytkownika
  • sprawdzenie rzeczywistego zachowania oprogramowania
  • skonfrontowanie rzeczywistego zachowania z oczekiwanym zachowaniem
  • posprzątanie środowiska po uruchomieniu.

Celem skryptu będzie określenie poprawności zachowania funkcji. Przykładowo, może być to funkcja zakładania konta na stronie internetowej; skrypt „odwiedzi” więc stronę zakładania konta, poda w polach oczekiwane wartości i zobaczy, czy przy poprawnych danych konto zostanie założone. 

Przygotowanie takich skryptów często wymaga dedykowanego programisty testów, który przygotuje skrypt i jego uruchomienie. To często wiąże się z wysokim kosztem wytworzenia, uruchomienia, analizy i utrzymania.

Automatyzacja weryfikacji GUI to uruchomienia często gotowego i jedynie skonfigurowanego skryptu lub narzędzia, które używane jest na wielu produktach. Skrypt dedykowany jest do jednego lub wielu celów i zazwyczaj zwraca informację w postaci zero-jedynkowej, że pewna predefiniowana reguła została spełniona. Oprócz potwierdzenia (zaprzeczenia) może pojawić się jeszcze komentarz odnośnie do tego, jaki problem się pojawił i jak go poprawić. Skrypty zazwyczaj są proste do skonfigurowania i uruchomienia, ale wymagają dodatkowego wysiłku związanego z analizą po uruchomieniu, aby określić czy rzeczywiście pojawił się defekt.

Przykładowe automatyczne weryfikatory:

  • sprawdzenie kodów odpowiedzi stron (np. 200 czy 404)
  • sprawdzenie implementacji niektórych z reguł WCAG i ARIA
  • sprawdzenie SEO
  • sprawdzenie prostej wydajności strony przez analizę czasów odpowiedzi na pojedyncze zapytania
  • podstawowe testy bezpieczeństwa przez próbę wstrzykiwania „niebezpiecznych” stringów w pola na stronie
  • etc. 

Niewiele osób jest świadomych, że automatyczna weryfikacja może być użyta do weryfikacji regresu oprogramowania w sposób dużo bardziej optymalny (kosztowo i wysiłkowo), niż ma to miejsce w przypadku automatycznych testów regresji po GUI. 

Poniższa tabelka zestawia cechy automatyzacji testów oraz automatyzacji weryfikacji.

# Automatyzacja testów GUI Automatyzacja weryfikacji GUI
Skrypt / narzędzie Pisane na potrzeby produktu Jeden do wielu produktów
Rola Programista testów Tester
CI/CD TAK TAK
Znajduje Awarie – niepoprawność zachowania aplikacji Defekty – niezgodność ze regułami lub standardem
Czas Długie przygotowanie Szybka konfiguracja
Koszty Wysokie Niskie
Składowe kosztów Napisanie, uruchomienie, analiza po uruchomieniu, utrzymanie Konfiguracja, uruchomienie, analiza po uruchomieniu

W praktyce wiele projektów stosuje automatyczną weryfikację oraz automatyzację testów GUI równolegle i czerpią korzyści z obu, nie wyróżniając osobną nazwą ich działania. Część organizacji nie ma świadomości tego, że do testów może dołączyć automatyczną weryfikację po GUI i znacząco ponieść jej skuteczność. Ten temat opiszemy w kolejnej publikacji. 

Powiązane usługi

To powinno Cię zainteresować