Wady automatyzacji testowania
Jestem wielkim fanem automatyzacji testów, ale w związku z tym, że spędziłem trochę swojego życia w różnych projektach to mam również świadomość, że posiada ona pewne wady o których warto wiedzieć rozpoczynając swoją przygodę z testami automatycznymi.
Koszty
Pensja testera automatyzującego to znaczne obciążenie dla budżetu firmy. Jeżeli chcemy mieć pewność, że stworzone testy będą dobrej jakości musimy zatrudnić osobę, która posiada już pewne doświadczenie i nie będzie spędzała dużo czasu nad rozwiązywaniem prostych problemów technicznych. Doświadczenie zatrudnionej osoby powinno pomóc w określeniu co automatyzować i z jakich narzędzi skorzystać.
Poza zatrudnieniem odpowiedniej osoby musimy liczyć się z dodatkowymi wydatkami na narzędzia, które ułatwią i przyśpieszą tworzenie testów. Koszty narzędzi można ograniczyć do minimum i kupić licencję do IDE.
Nakłady czasowe
Na samym początku osoba odpowiedzialna za automatyzację skupi się na stworzeniu szkieletu testów, który przyśpieszy i ułatwi automatyzację kolejnych przypadków testowych. Stworzenie szkieletu jest czasochłonne i z perspektywy biznesu przynosi korzyści w późniejszym czasie. Na początku taki szkielet testów nie ma dla Nas żadnej wartości biznesowej. Dodawanie poszczególnych testów również jest procesem czasochłonnym.
Utrzymywanie testów
Nasza aplikacja ciągle się zmienia i jako osoba odpowiedzialna za automatyzację musimy dbać o to, aby testy automatyczne nadążały za zmianami. Powoduje to konieczność wprowadzania poprawek i aktualizacji w kodzie testów automatycznych. Konieczność i czasochłonność aktualizacji zależy od jakości kodu który wytworzyliśmy. Jeżeli kod który stworzyliśmy jest dobrej jakości to proces aktualizacji nie powinien przysporzyć Nam zbyt wielu problemów,
Testy słabej jakości
W związku z tym, że testy automatyczne tworzy się w większości przypadków przy pomocy wybranego języka programowania to istnieje możliwość, że w ramach całego przedsięwzięcia stworzymy testy, które będą bardzo słabej jakości i nie przyniosą żadnej korzyści dla projektu. Stanie się tak, gdy osoby tworzące testy automatyczne nie będą posiadały odpowiedniej wiedzy i nieodpowiednio dobiorą narzędzia oraz przypadki testowe do automatyzacji. Posiadanie testów, które są niestabilne ( czasami kończą się sukcesem, a czasami porażką) może przynieść więcej szkody niż pożytku.
Brak możliwości zastąpienia prawdziwego użytkownika
Pisząc testy automatyczne skupiamy się na pewnym specyficznym przypadku i weryfikujemy konkretne zachowanie aplikacji np. czy odpowiednia wiadomość została wyświetlona na ekranie po wysłaniu formularza. Domyślnie nie sprawdzamy jednak wyglądu elementów i zachowań aplikacji podczas całego testu i co za tym idzie możemy przeoczyć nieoczekiwane zachowanie Naszego programu. Tester manualny przechodząc przez kolejne kroki testu weryfikuje również „przy okazji” pozostałe elementy i zachowania Naszej aplikacji, a co za tym idzie jest w stanie znaleźć inne błędy w aplikacji, które nie będą widoczne dla testu automatycznego.
Podsumowanie
Automatyzacja testowania to bardzo ciekawa i ekscytująca przygoda i serdecznie zachęcam Cię do spróbowania tej aktywności. Warto jednak pamiętać, że każdy kij ma dwa końce, a medal dwie strony i zwrócić uwagę na wyzwania na które możemy napotkać podczas tworzenia testów automatycznych, aby odpowiednio się do nich przygotować i stawić im czoła.