Automated Test Framework (ATF) zapewnia środowisko do tworzenia, wykonywania i zarządzania testami automatycznymi bezpośrednio w ServiceNow. Dzięki niemu można tworzyć testy, które symulują działania użytkowników, interakcje z formularzami, przepływ pracy (workflow) i inne elementy platformy ServiceNow. Umożliwia to weryfikację poprawności działania aplikacji i procesów, a także ułatwia wykrywanie błędów czy zmian, które mogą mieć wpływ na działanie systemu. Przykładowo: po aktualizacji wersji ServiceNow, podczas tworzenia aplikacji czy podczas wdrażania różnorakich konfiguracji dla istniejącej instancji za pomocą tzw. „update setów”.
ATF oferuje funkcje takie jak:
- definiowanie danych testowych,
- asercje i logikę testów,
- generowanie raportów,
- śledzenie wyników testów,
- wykonywanie zrzutów ekranu w odniesieniu do poszczególnych kroków testowych
- i wiele innych.
Dzięki temu narzędziu możliwe jest zarządzanie testami w sposób scentralizowany i integracja z innymi funkcjonalnościami platformy ServiceNow.
Automated Test Framework ma na celu usprawnienie procesu testowania aplikacji i procesów na platformie ServiceNow, zwiększając efektywność i jakość wdrażanych rozwiązań.
Korzyści z wykorzystania Automated Test Framework
Dzięki wykorzystaniu ATF organizacje mogą uzyskać następujące profity:
- Skrócenie czasu testowania – ATF umożliwia automatyzację testów, co skraca czas potrzebny na przeprowadzenie testów manualnych. Dzięki temu można szybciej zweryfikować poprawność działania aplikacji.
- Zwiększenie efektywności – automatyzacja testów przy użyciu ATF pozwala na szybsze i bardziej precyzyjne wykonanie testów, co zwiększa efektywność procesu testowania.
- Poprawa jakości oprogramowania – dzięki automatycznym testom możliwe jest skrupulatne sprawdzenie wielu aspektów aplikacji, co prowadzi do wykrywania błędów i uchybień, poprawy jakości oprogramowania.
- Oszczędność zasobów – zautomatyzowane testy przy użyciu ATF pozwalają zaoszczędzić zasoby ludzkie i czasowe, które mogą zostać przekierowane na inne ważne zadania.
- Łatwa replikacja testów – ATF pozwala na tworzenie testów, które można łatwo replikować i uruchamiać w różnych kontekstach, co umożliwia testowanie aplikacji w różnych scenariuszach.
- Skalowalność – dzięki ATF możliwe jest tworzenie testów w formie zestawów, które można uruchamiać partiami. To pozwala na skalowanie procesu testowania, szczególnie w przypadku dużych i rozbudowanych aplikacji.
Przykładowe zastosowania Automated Test Framework
Przygotowaniu zestawu testów w oparciu o Quick Start Suites
Narzędzie to umożliwia szybkie tworzenie zarówno pojedynczych testów jak i zestawów testowych, gdyż są przygotowane w taki sposób, aby można je było dostosować do aktualnych wymagań bez konieczności poświęcania cennego czasu i tworzenia ich od zera.
Niewątpliwą zaletą Quick Start Suites jest sposobność dodawania, usuwania oraz modyfikowania testów, aby pasowały do konkretnych przypadków użycia i wymagań biznesowych. Domyślnie uwzględnione są zestawy testów m.in.: dla incydentów, problemów czy zarządzania zmianą.
Tworzenie i zarządzanie incydentami
ATF można wykorzystać do testowania procesu zarządzania incydentami. Należy zdefiniować testy, które symulują tworzenie nowych incydentów, aktualizację statusu, eskalację utworzonego incydentu, a także weryfikację poprawności działań związanych z zarządzaniem incydentami.
Zarządzanie zmianą (tzw. Change Request Management)
ATF umożliwia testowanie procesu zarządzania zmianami na platformie ServiceNow. Można tworzyć scenariusze testowe, które obejmują tworzenie, ocenę, zatwierdzanie i wdrażanie zmian, a także weryfikację wpływu tych zmian na otoczenie biznesowe.
Zarządzanie problemami
ATF można również wykorzystać do testowania procesu innego rodzaju zgłoszeniami, a mianowicie – problemami. Można przygotować testy, które symulują tworzenie nowych problemów, aktualizację statusu czy zgłoszenie nowego Change Requesta na podstawie problemu.
Inne funkcje Automated Test Framework
Funkcje ATF to, między innymi, także:
- Testowanie formularzy i procesów – można zweryfikować, czy formularze są poprawnie wypełniane, czy procesy obsługi usług działają zgodnie z oczekiwaniami oraz czy dane są prawidłowo przetwarzane i przechowywane.
- Testowanie integracji zewnętrznych – ATF umożliwia testowanie integracji zewnętrznych systemów lub interfejsów API. Można tworzyć testy, które symulują wymianę danych z innymi systemami, sprawdzając poprawność komunikacji i przetwarzania informacji.
- Testowanie interfejsu użytkownika (UI) – ATF umożliwia automatyczne testowanie interfejsu użytkownika. Oznacza to, iż można tworzyć testy, które sprawdzają poprawność wyświetlania elementów interfejsu, reakcję na akcje użytkownika, walidację pól i wiele innych aspektów związanych z interakcją użytkownika.
- Przywracanie stanu systemu do wcześniejszej konfiguracji, czyli tzw. „rollback” – dzieje się to po wykonaniu testów, usuwając wszelkie zmiany wprowadzone przez testy. Jest to szczególnie przydatna funkcja w przypadku testowania aplikacji, gdzie wprowadzone zmiany mogą mieć wpływ na działanie innych procesów lub danych, jak również, gdy chcemy zapewnić, iż testy nie pozostawiły trwałych zmian w systemie produkcyjnym.
- „Test Step Templates” – to funkcja, dzięki której możliwe jest tworzenie szablonów kroków testowych do wielokrotnego wykorzystania w różnych testach. „Test Step Templates” upraszczają proces tworzenia testów poprzez zdefiniowanie jednorazowo kroków, które można później łatwo wstawiać do różnych zestawów testowych. Na przykład, jeśli w wielu testach występuje taki sam krok logowania do systemu, możemy stworzyć Test Step Template dla tego kroku i wielokrotnie go używać w różnych zestawach testowych. To znacznie oszczędza czas i wysiłek potrzebne do pisania tych samych kroków wielokrotnie. „Test Step Templates” umożliwia dostosowanie istniejących szablonów kroków testowych lub tworzenie nowych, aby pasowały do określonych wymagań projektowych.
- Możliwość generowania zrzutów ekranu kroków testów po stronie klienta, które są uruchamiane w interfejsie użytkownika – pozwala to na wizualne śledzenie wykonania testów i analizowanie rezultatów w sposób bardziej czytelny i intuicyjny. Dzięki temu możemy zobaczyć, jak wyglądała aplikacja w konkretnym momencie, co ułatwia diagnozowanie błędów i zrozumienie kontekstu testów. Umożliwia to też lepszą dokumentację i analizę testów oraz ułatwia proces debugowania.
Dzięki elastyczności i rozbudowanym funkcjom ATF, narzędzie to można dostosować do indywidualnych potrzeb i specyfiki organizacji, przyspieszając proces testowania i zapewniając wysoką jakość rozwiązań na platformie ServiceNow.
Przykład struktury testów w Automated Test Framework
Automated Test Framework oferuje rozbudowane możliwości zarządzania przypadkami testowymi. Umożliwia użytkownikom tworzenie, organizowanie i zarządzanie przypadkami testowymi, zapewniając kompleksowe pokrycie testowe. Przypadki testowe mogą być łatwo dostosowywane i parametryzowane, umożliwiając wykonywanie testów w różnych konfiguracjach i środowiskach.
Automated Test Framework obsługuje budowanie wielopoziomowych hierarchii, w których zestaw testów może pełnić rolę zarówno nadrzędną (Parent Test Suite), jak i podrzędną (Child Test Suite). Dodatkowo, każdy zestaw testów może być wykonany indywidualnie i zaplanowany do uruchomienia w określonym czasie, co pozwala na elastyczne zarządzanie testami, umożliwia ich planowanie w zależności od potrzeb i priorytetów projektu. Na przykład, poniższy schemat ilustruje Test Suite 1 jako nadrzędny na szczycie hierarchii. Test Suite 1.3 jest podrzędnym dla Test Suite 1 i jednocześnie nadrzędnym dla Test Suite 1.3.1 i Test Suite 1.3.2.
ATF Test Generator and Cloud Runner – możliwość wykonywania testów bez potrzeby angażowania interfejsu użytkownika
ATF Test Generator and Cloud Runner to narzędzie umożliwiające generowanie testów regresji dla określonej instancji.
Generator ten tworzy testy, analizując zachowanie oraz procesy zachodzące w instancji. ATF Test Generator integruje się z istniejącym frameworkiem ATF. Dzięki temu narzędziu istnieje możliwość wykonania testów za pomocą narzędzia ServiceNow Cloud Runner, który uruchamia testy ATF w przeglądarce bez angażowania interfejsu graficznego (przeglądarka jest hostowana przez ServiceNow).
Zanim jednak rozpoczniemy pracę z Generatorem, należy upewnić się, że nasza instancja korzysta z „ADCv2 load balancer”. Więcej informacji nt. „ADCv2 load balancer” można znaleźć na stronie ServiceNow.
Warto również upewnić się, że wszystkie dodatki do tej funkcjonalności są zainstalowane w naszej instancji. Można to zweryfikować, nawigując do „System Definition –> Plugins”, jak pokazano na zdjęciu poniżej.
Zdjęcie poniżej przedstawia już zainstalowany „plugin”:
Aby wygenerować testy przy użyciu ATF Generatora, trzeba najpierw skonfigurować poświadczenia dla użytkownika korzystającego z Cloud Runnera.
W nawigatorze wpisz frazę „select cloud” i wybierz opcję, którą zaznaczono na zdjęciu poniżej:
W dalszym kroku wymagane jest podanie użytkownika, który ma przypisaną rolę „admin”:
Aby wygenerować testy gotowe do uruchomienia, wpisz „test gener” w nawigatorze i wybierz opcję, którą zaznaczono na zdjęciu poniżej:
Po wygenerowaniu testów użytkownik otrzyma stosowną informację. Aby przejść do testów, trzeba kliknąć w podany link jak pokazano na zdjęciu poniżej:
Jak zostało wspomniane na początku tego rozdziału, opisywana funkcjonalność umożliwia uruchamianie testów bez konieczności wykorzystania interfejsu graficznego.
Dotychczas, podczas wykonywania testów, użytkownik był niejako „skazany” na jedną opcję i interfejs graficzny był uruchamiany. Co więcej, jeśli interfejs nie był otwarty w aktywnym oknie przeglądarki, bardzo często rezultatem tego było przekroczenie czasu określonego na wykonanie poszczególnego testu (tzw. timeout) i nie został on wykonany.
Na zdjęciu poniżej przedstawiono uruchomiony test z wykorzystaniem interfejsu graficznego:
Opisywana tutaj funkcjonalność daje użytkownikowi możliwość wyboru, czy chce widzieć, co ów uruchomiony test wykonuje, co dzieje się krok po kroku, czy woli, aby był wykonywany w tzw. „chmurze”. Dane testowe są tymczasowo przechowywane w sesji przeglądarki, a te z kolei są przechowywane w centrum danych ServiceNow. Po zakończeniu wszystkich wykonanych testów, dane testowe zostają usunięte.
Na zdjęciu poniżej uwidoczniono możliwość wyboru i przeprowadzenia testu przy pomocy „Cloud Runnera”:
Po wybraniu opcji „Cloud Runner” test uruchamia się:
Rezultat wykonanego testu przy użyciu „Cloud Runnera” uwidoczniono na zdjęciu poniżej:
Dobre praktyki rekomendowane przez ServiceNow podczas tworzenia i wykonywania testów ATF
Aby jak najlepiej wykorzystać potencjał narzędzia:
- Dostosuj swoje testy do kluczowych scenariuszy testowych – ATF jest przeznaczone do funkcjonalnego testowania konkretnych procesów biznesowych. Skoncentruj się na kluczowych ścieżkach użytkownika lub procesach w ramach aplikacji ServiceNow.
- Najpierw wykonaj impersonację – zazwyczaj pierwszym krokiem każdego testu jest podstawienie odpowiedniego użytkownika, który będzie wykonywał określone zadanie. Aby podstawić użytkownika, skorzystaj z kroku testowego „Utwórz użytkownika”, by stworzyć użytkownika o określonych rolach i z określonymi grupami do testu. Po zakończeniu testu nastąpi usunięcie wcześniej utworzonego na potrzeby testu rekordu (np. użytkownika).
- Grupuj testy – tworzenie i uruchamianie zestawów testowych (tzw. Test Suite) pozwala na grupowanie testów w określonej kolejności w celu przetestowania aplikacji lub powiązanych funkcji. Dzięki temu możliwe jest wykonywanie testów i podgląd wyników jako jedno zadanie.
- Uruchamiaj testy równolegle – skróć czas testowania, uruchamiając wiele testów i zestawów testowych równolegle. Testy, które tworzą własne dane, powinny być uruchamiane równolegle, aby uniknąć konfliktów pod kątem zależności danych. Można oznaczać testy jako wzajemnie wykluczające się, aby zapobiec równoczesnemu uruchamianiu testów, które wymagają tych samych danych.
- Korzystaj z możliwości tzw. „opóźnienia” – kroki testowe oferowane przez ATF wyposażone są w inteligentny mechanizm „opóźnienia”. Oznacza to, że aby przejść do następnego kroku testowego, obecnie wykonywany musi zostać ukończony. Czasem jednak asynchroniczne aktualizacje na serwerze, takie jak przetwarzanie zdarzeń, aktualizacje w obrębie przepływu danych i powiadomienia e-mail, mogą wymagać dodatkowego czasu oczekiwania na zakończenie tych działań. Ustawienie „opóźnienia” (timeout) podczas tworzenia kroków testowych może być również przydatne podczas debugowania testów. Na przykład, można ustawić limit czasu („opóźnienie”) na 30-60 sekund, aby mieć możliwość podglądu stworzonego rekordów zanim zostanie on usunięty.
- Bądź zwięzły – staraj się nie testować wszystkiego, skup się na kluczowych elementach, a do każdego z nich utwórz zwięzły test/zestaw testów. Ułatwi to ich budowanie (testów) oraz ocenę ewentualnych błędów. ATF umożliwia łączenie wielu testów jako część zestawu testowego i wykorzystywanie zestawów testowych hierarchicznie. Dzięki temu będziesz mógł przeprowadzać dodatkowe testy, jeśli jeden z wczesnych kroków testu nie powiedzie się.
- Unikaj powtarzania kroków testowych – nie powtarzaj testowania tej samej funkcjonalności interfejsu użytkownika w wielu testach. Jeśli inne testy wymagają podobnej funkcjonalności, zasymuluj ją za pomocą tzw. „server test steps”.
- Sprawdź aktualizacje dla utworzonych rekordów – za każdym razem kiedy rekord jest aktualizowany, dodaj krok testowy (Record Validation), aby upewnić się, że został on faktycznie zaktualizowany.
- Testuj funkcjonalność, a nie dane – zamiast testować wszystkie możliwe kombinacje oparte na danych, stwórz jeden lub dwa testy skupiające się na funkcjonalności. Następnie zweryfikuj, czy wartości zmieniają się zgodnie z oczekiwaniem, bez tracenia czasu na testowanie wszystkich możliwych kombinacji.
Podsumowanie
Automated Test Framework to niezwykle przydatne narzędzie dla organizacji korzystających z platformy ServiceNow. Dzięki ATF można zautomatyzować proces testowania aplikacji i procesów, co prowadzi do większej efektywności, lepszej jakości i mniejszego ryzyka błędów. Wdrażanie ATF może stanowić kluczowy krok w zapewnieniu niezawodności i doskonałego działania systemu opartego na platformie ServiceNow.
Zostaw komentarz