Testy automatyczne w mTab.

by Sandra Wyzujak

Język.

Testy automatyczne pisane są w JavaScript z użyciem takich narzędzi jak WebdriverIO, Mocha, Chai i JUnit. Wybór języka wynika z tego, że w mTab mamy wielu specjalistów od JS, którzy gotowi są wesprzeć proces automatyzacji i tworzą przejrzysty kod zgodny z aktualnymi standardami.

Co testujemy?

Ze względu na charakterystykę naszej aplikacji Discover – niezbędne jest sprawdzanie części wizualnej. Z każdym klienckim wydaniem, w trakcie testów generujemy setki różnorodnych slajdów, następnie porównujemy je z ich poprzednimi wersjami – dzięki temu sprawdzamy zarówno poprawność danych, która jest dla nas najwyższym priorytetem oraz sposób ich prezentowania. W wynikach możemy dostrzec każdą, nawet najdrobniejszą zmianę – np. koloru, czcionki, wcięcia, pozycji switchera czy ilości miejsc po przecinku.  

Testy wykonywane są cyklicznie – zaprogramowane tak, by regularnie wykonywać się na środowiskach klienckich oraz przeprowadzone są na życzenie przez analityków i testerów manualnych na instancjach lokalnych z uwzględnieniem szczegółowych parametrów, precyzujących jakie przypadki mają zostać sprawdzone.

Testy wizualnej regresji generują całkiem pokaźną ilość danych dla testerów i analityków – potrzeba zatem czasu na analizę zgromadzonych wyników. Aktualnie wprowadzamy również rozwiązanie, które nie będzie wymagało ludzkiej oceny. Będzie to automat wychwytujący wszystkie przypadki, w których zamiast danych wyświetlony został komunikat sugerujący jakiś problem lub informacja o braku danych dla wybranych parametrów – to rozwiązanie pozwoli na bardzo szybkie sprawdzenie czy po wrzuceniu nowych zbiorów lub po podbiciu wersji nie pojawiły się problemy z wygenerowaniem odpowiedniego rezultatu. Test nie dostarczy wprawdzie szczegółowych informacji, ale w błyskawiczny sposób wychwyci lub wykluczy istnienie podstawowych bugów, na sprawdzenie których tester manualny musiałby poświęcić kilka godzin. Zaoszczędzony czas będzie mógł przeznaczyć na bardziej skomplikowane scenariusze, które bezwzględnie wymagają ludzkiej weryfikacji. 

Oprócz aplikacji Discover która prezentuje predefiniowane slajdy, automatyzujemy również naszą aplikacje analityczną Analyze, która pozwala na obróbkę i prezentację danych na niezliczoną ilość sposobów, a następnie udostępnienie wyników i włącznie ich do naszej prezentacji w Discover lub bez jej udziału. Testy automatyczne w Analyze wymagały początkowo sporej ilości pracy testerów manualnych, aby pokryć jak największą część dostępnych funkcji. Wspólnymi siłami stworzyliśmy satysfakcjonującą bazę projektów, które importujemy do naszej aplikacji i sprawdzamy na dwa sposoby. Po pierwsze dokonujemy porównania wyników kalkulacji w nowej wersji do referencyjnych wartości uzyskanych w poprzednich wydaniach. Po drugie dokonujemy wizualnej regresji, aby skonfrontować uzyskane wyniki z historycznymi. Dzięki tym testom weryfikowane są takie funkcje jak import projektów ze starszych wersji aplikacji, które migrowane są w locie podczas próby otwarcia na aktualnym środowisku (kompatybilność wsteczna), poprawność obliczeń oraz optyczna niezmienność.

Posiadamy i rozwijamy nieustannie testy funkcjonalne przeklikujące się po naszych aplikacjach. Dążymy do tego, aby stworzyć bazę testów, która w jak największym stopniu pokryje checklistę – czyli zbiór funkcji testowanych z każdą z nowych wersji. Chcemy odciążyć testerów manualnych w tym powtarzalnym procesie. Pomysłów na rozwój i przyspieszenie pracy nigdy nam nie brakuje.


Artur, Automation Test Engineer

Zadowodwo: Analityczny, skupiony na celu tester, który uważa że komunikacja jest równie ważna, co zgłaszanie bugów. Prywatnie: Niepoprawny optymista, fan Monty Python’a, NBA, Jacka White’a oraz improwizacji.