Wdrożenie automatycznego testowania w już istniejącym projekcie to zadanie skomplikowane i wielopoziomowe.
Historia pytania: W organizacji, w której testowanie przez długi czas odbywało się ręcznie, procesy, dokumentacja i architektura kodu nie zawsze odpowiadają wymaganiom automatyzacji. Testerzy nie znają narzędzi automatycznych, a architektura testów i samych aplikacji może nie wspierać szybkiego uruchamiania testów automatycznych.
Problem: Główne trudności we wdrożeniu:
Rozwiązanie: Zespół powinien przejść przez etapy:
Kluczowe cechy:
Czy automatyczne testy mogą całkowicie zastąpić testowanie ręczne?
Nie. Nawet przy wysokim pokryciu testy automatyczne są stosowane tylko w powtarzalnych, deterministycznych scenariuszach. Niezauważalne błędy użyteczności, eksploracja, błędy projektowe i nietypowe „ludzkie” błędy zazwyczaj wychwytywane są ręcznie.
Czy należy automatyzować wszystkie testy bez wyjątku?
Nie. Nie wszystkie testy opłaca się automatyzować: testy o niskiej częstotliwości lub trudne scenariusze lepiej pozostawić do testowania ręcznego z uwagi na koszty i niską wydajność.
Czy testerzy muszą być programistami, aby skutecznie realizować automatyzację?
Nie, ale wskazany jest podstawowy poziom programowania. Zespół często budowany jest na połączeniu: doświadczony tester — architekt testów automatycznych, automatyzatorzy — programiści.
Firma zdecydowała się automatyzować wszystkie testy ręczne jednocześnie, nie wydzielając oddzielnego zespołu i nie omawiając priorytetów. Kupiono modny instrument, ale nie obsługiwał części potrzebnych przeglądarek. W rezultacie połowa testów przestała działać po kwartale.
Zalety:
Wady:
Zespół ręcznie wybrał 10 najczęstszych scenariuszy regresyjnych. Przeprowadzono szkolenie w zakresie automatyzacji na Pythonie (Selenium), dodano testy do CI. Po pół roku 70% testów regresyjnych uruchamiało się automatycznie, testerzy ręczni zajmowali się kreatywnością.
Zalety:
Wady: