Od ponad 8 lat jest związany z testami i ich automatyzacją. Przez ten czas miał okazję poznać wiele gałęzi związanych z IT (Telco, FinTech, Automotive, GameDev) i zajmować się procesami wdrażania jakości dla różnorodnych systemów. Obecnie od prawie 5 lat zajmuje się testami automatycznymi wraz z architekturą, dedykowanymi aplikacjom webowym.
Prelekcja:
Jak z QA zostałem coachem – (r)ewolucja w mindsecie testów na przykładzie HuuugeGames
Celem prezentacji jest pokazanie jak wraz ze wzrostem organizacji, ilości i poziomu skomplikowania projektów musiały się zmienić procesy, które stosowaliśmy w zapewnianiu jakości (automatyzacja testów, infrastruktura środowisk testowych, koncepcje i odpowiedzialności związane z testowaniem na różnych szczeblach), jakie błędy popełniliśmy, z jakimi wyzwaniami się zmagaliśmy i jakie finalnie wypracowaliśmy rozwiązania.
Sama prezentacja będzie podzielona na 3 kluczowe bloki:
- PRZEDSTAWIENIE PROBLEMU – CO? (Rozrost organizacji i podejście do zapewniania jakości)
- Jak organizacja i management podchodzili do testów i jakie stwarzało to problemy
- Jak wyglądały nasze projekty i jakie wówczas mieliśmy wyzwania z nimi związane
- Narzędzia do testów i automatyzacji z jakich korzystaliśmy i jakie rodziły problemy
- POTRZEBA ZMIAN – JAK i DLACZEGO? (Stare rozwiązania nie sprawdzały się w nowych wyzwaniach)
- Problemy które zaczęliśmy napotykać (np. związanie z utrzymaniem testów, liczbą istniejących narzędzi)
- Problem z utrzymaniem testów
- Testy automatyczne stały się wąskim gardłem
- Wiele różnych języków i wiele narzędzi do testów
- Zmiana infrastruktury (CI/CD) wymaga zmian w testach
- Testy nie zapewniały szybkiego feedbacku
- Testowanie automatycznie z poziomu API było niewystarczające, nie zapewniało wymaganego pokrycia
- Pisanie nowych testów API było ponad siły zespołu QA (tworzenie nowych testów, testowanie nowych funkcjonalności, pisanie test planów – tego było za dużo)
- Przejście na Kubernetesa wymagało szerokich zmian w testach
- Problemy które zaczęliśmy napotykać (np. związanie z utrzymaniem testów, liczbą istniejących narzędzi)
- ROZWIĄZANIA (jak możemy odpowiedzieć na powyższe wyzwania)
- Zaangażowanie cały zespół developerski w tworzenie testów (na różnych poziomach)
- rola i odpowiedzialności QA
- Testy E2E, testy funkcjonalne, testy dostępności, testy UX
- Wsparcie w testowaniu i pisanie test planów
- Monitoring, nagrywanie sesji i zbieranie logów (szczególnie w środowiskach k8s)
- rola i odpowiedzialności developera
- API testy, unit testy
- Dbanie o pokrycie kodu
- sposób wyboru nowych narzędzi, decyzja o utrzymaniu starych
- testowanie wraz ze wzrostem poziomu skomplikowania infrastruktury (mikroserwisy z CI/CD)
Jako organizacja przeszliśmy długą drogę w zrozumieniu tego, że testy to integralna cześć każdego procesu wytwarzania oprogramowania i wymaga, jak kod, dokumentacji, planu, wymagań, uwzględnienia w estymacjach, a także odpowiedniej architektury. Ważnym wnioskiem jest uświadomienie, że za jakość odpowiada cały zespół, ale rolą QA jest pomoc każdemu członkowi zespołu być świadomym tej jakości, pomagać w procesach usprawniających jakość, dzielić się wiedzą z nią związaną, a także rozumieć zapewnianie jakości jako proces, a nie jednorazowe osiągnięcie.