Strategia wyboru między testowaniem ręcznym a automatycznym jest określana przez wiele czynników, w tym koszty, cele, stabilność funkcjonalności oraz dostępne zasoby ludzkie.
Historia zagadnienia: Na początku automatyzacji uważano, że celem powinno być pokrycie 100% testów automatycznie. Z czasem zaczęto rozumieć, że nie wszystkie kontrole należy automatyzować - część zadań jest prostsza, szybsza i tańsza do wykonania ręcznie.
Problem: Automatyzacja przynosi korzyści tylko w przypadku częstego i powtarzającego się uruchamiania tych samych scenariuszy. Jednorazowe, szybko zmieniające się lub subiektywne (wizualne, UX) kontrole są znacznie łatwiejsze do przeprowadzenia w trybie ręcznym. Próby "automatyzacji wszystkiego" szybko rozdmuchują budżet, a korzyści znikają.
Rozwiązanie: Przede wszystkim warto automatyzować to, co:
Testowanie ręczne jest aktualne dla:
Kluczowe cechy:
Czy można zyskać, automatyzując wszystkie testy w projekcie?
Nie, ponieważ wiele testów zmieni się zanim zdążą zwrócić zainwestowany wysiłek, a utrzymanie automatyzacji będzie droższe niż wykonanie tych samych testów ręcznie.
Czy testowanie ręczne może być obowiązkowe przy wydaniu na produkcję?
Tak, ponieważ niektóre zadania (szczególnie związane z UI/UX i wizualnym regressem) są trudne lub niemożliwe do odpowiedniej automatyzacji.
Czy korzystne jest automatyzowanie testów "jednorazowych"/badawczych zadań?
Nie, automatyzacja wymaga czasu i zasobów, które nie zwrócą się przy jednorazowym lub rzadko używanym teście.
Zespół postanowił zautomatyzować wszystkie ręczne testy, w tym kontrole cross-browser na nietypowych urządzeniach i wizualną kontrolę layoutów. W rezultacie w ciągu kilku miesięcy wydano setki godzin na utrzymanie nieaktualnych testów.
Zalety:
Wady:
Zespół wspólnie z menedżerem stworzył listę krytycznych dla biznesu scenariuszy (rejestracja, sprawdzanie płatności), które stabilnie zautomatyzowano; wszystko inne jest testowane ręcznie lub częściowo (z użyciem testów eksploracyjnych).
Zalety:
Wady: