6 sposobów na zmniejszenie kosztów automatyzacji testów cz. I
Część pierwsza poradnika, w którym podpowiadamy jak obniżyć koszty automatyzacji testów oprogramowania.
Podczas gdy wiele organizacji zmaga się jeszcze z problemem minimalizacji kosztów testowania samego w sobie inne natrafiają często na problem wysokich kosztów automatyzacji testów, która miała być cudownym rozwiązaniem pierwszego problemu.
A przynajmniej z takimi problemami zgłaszają się do nas nasi klienci. Pozwoliłem sobie przygotować krótki poradnik dla każdego, kto automatyzuje testy lub dopiero się do tego przymierza.
1. Narzędzia Capture-Replay to nie automatyzacja testów
To, że na rynku istnieje wiele narzędzi pozwalających na nagrywanie i późniejsze odtwarzanie testów wcale nie znaczy, że jest to najlepsze rozwiązanie. Nagrywanie skryptów testowych jest bardzo proste, dzięki czemu jeszcze bardziej zachęca początkujących inżynierów testów. Niestety takie skrypty są wręcz nie do utrzymania jeśli cokolwiek się zmienia w naszej aplikacji. W zasadzie testy automatyzujemy właśnie po to by testować zmiany w naszym oprogramowaniu więc narzędzia, które nie ułatwiają utrzymywania tych testów podczas zmian są… do wyrzucenia…
Wybór narzędzia do automatyzacji testów jest kluczowy, a kluczowym czynnikiem wyboru powinna być właśnie możliwość utrzymania testów wytworzonych za pomocą danego narzędzia.
2. Utrzymanie testów to podstawa – stosuj wzorce
Jak wspomniałem w poprzednim podpunkcie koszty automatyzacji testów wiążą się głównie nie z samym wytworzeniem testów lecz z ich późniejszym utrzymywaniem w zmieniającym się środowisku projektowym. Dlatego też warto sięgnąć po sprawdzone rozwiązania i powszechnie stosowane wzorce projektowe takie jak Page Object Pattern oraz Data Driven Testing. Dzięki tym podejściom nasze testy będą mogły być rozwijane niskim kosztem równolegle z rozwojem funkcjonalności aplikacji.
Dzięki Page Object Pattern możliwe jest również łatwe zastosowanie podejścia Acceptance Test-Driven Development, a także w kontekście całej organizacji równiez Behavior-Driven Development.
3. Technologia ma znaczenie
Wybierając narzędzie do automatyzacji testów warto wziąć pod uwagę również umiejętności osób, które z danego narzędzia będą korzystały oraz wiedzę w organizacji na temat technologii wykorzystywanej przez dane narzędzie. Mając w zespole programistów Javy i wybierając narzędzie pozwalające tworzyć testy jedynie w Pythonie zmniejszamy możliwość współpracy i wymiany wiedzy pomiędzy testerami uczącymi się automatyzacji a programistami, którzy mogliby pomóc rozwiązać wiele problemów natury technologicznej. Dodatkowo zastosowanie narzędzia wykorzystującego znaną przez wszystkich technologię jeszcze bardziej zachęca do współpracy nad rozwojem testów automatycznych.
Na naszym blogu uruchamiamy cykl porad dotyczących poszczególnych zagadnień związanych z Agile i tematyką naszych szkoleń. Teraz możecie z łatwością odnajdywać potrzebną wiedzę. Jednocześnie zachęcamy do aktywnego komentowania, zadawania pytań i proponowania tematów najbardziej was interesujących, abyśmy mogli jeszcze bardziej służyć naszą wiedzą i pomocą.