KraQA #42

Pomimo grudniowego chłodu za oknami, przygotowaliśmy dla Was kolejne spotkanie z porządną porcją wiedzy testerskiej. Miłośników jakości oprogramowania tym razem ugościł Cluster Cowork, gdzie mogliśmy wysłuchać prelekcji Pawła Dyrka i Sławka Radzymińskiego.

 

Pierwszym prelegentem był Paweł, który zaprezentował nam rozwiązanie mające na celu usprawnienie testów aplikacji webowych. Przy klasycznym podejściu, w którym automatyzowane są przypadki testowe, nie sposób pokryć w pełni wszystkich możliwości. W szczególności jeśli jest to aplikacja posiadająca kilka, a nawet kilkanaście wersji językowych i jeszcze więcej stron startowych. Tak więc do standardowego podejścia, w którym wykorzystywane jest Selenium, Paweł wraz ze swoim zespołem zaprzągł sztuczną inteligencję. Na początku narzędzie miało budować mapę serwisu wykrywając wszystkie strony, na które można przejść ze strony głównej. Przy okazji narzędzie wykonywało zrzuty ekranu tworząc swego rodzaju bazę domyślnych wizualizacji aplikacji. Przy każdym kolejnym wykonaniu nowe zrzuty były porównywane z tymi w bazie. 

Na tym etapie narzędzie przypominało swoim działaniem wiele innych podobnych. To co je wyróżnia na tle innych było użycie sztucznej inteligencji do rozpoznawania obrazów. To właśnie ona miała na celu sprawdzenie elementów na stronie i decydowanie czy jest to cześć layoutu czy treści strony. Paweł zaznaczył że póki co ten etap nie jest jeszcze w pełni skończony i sprawny. Niemniej w przyszłości może to być wykorzystane w testach bardziej złożonych aplikacji webowych do sprawdzania czy układ strony nie uległ zmianie. 

Jest jeszcze trochę pracy aby to narzędzie mogło stać się bardziej popularne, lecz każdy z nas może przyczynić się do jego rozwoju. Paweł i jego zespół chcą zorganizować hackathon, w którym każdy z nas może uczestniczyć i pomóc im implementując ciekawe pomysły przy pizzy i piwie :).

 

Kolejnym prelegentem był nasz kolega z KraQA – Sławek. Tematem prezentacji były bardzo popularne ostatnio testy kontraktowe. Sławek bazując na swoim doświadczeniu opisał jakich problemów możemy się spodziewać pracując nad projektem, w który jest zaangażowanych więcej zespołów deweloperskich, w szczególności przy testowaniu mikroserwisów. Dość częstym problemem w takich przypadkach jest brak komunikowania zmian pomiędzy zespołami lub niepoprawna konstrukcja testów, skutkująca niepoprawnymi rezultatami. W przypadku niewielkiej liczby serwisów można to jeszcze obsługiwać “ręcznie”, lecz w większych aplikacjach trzeba wdrożyć inne rozwiązanie.

Właśnie do tego służą testy kontraktowe. Mają na celu czuwać nad poprawnością kontraktu, jaki jest zawarty pomiędzy dwoma serwisami, bez sprawdzania szczegółów odpowiedzi danego serwisu. Sławek opisał dwa narzędzia i pokazał główne różnice pomiędzy nimi. Dodatkowo opowiedział nam o sposobie utrzymywania testów i w jaki sposób zarządzać nimi w systemach CI. 

Na koniec padło kilka ciekawych pytań oraz wywiązała się bardzo interesująca rozmowa, w której testy kontraktowe zostały porównane do walidacji schema’y odpowiedzi. I w głównej mierze te dwie metody są do siebie bardzo podobne.

 

I oczywiście przypominamy o CFP na SkładQA#5 🙂