Dlaczego warto zacząć od automatyzacji testów UI?

W poprzednich wpisach starałem się na przykładzie konkretnej aplikacji pokazać piramidę testowania. Mam nadzieję, że masz już jakiś obraz odnośnie testów na różnych poziomach. Jeżeli myślisz nad automatyzacją testów to pewnie zastanawiasz się od automatyzacji którego poziomu najłatwiej zacząć. Uważam, że automatyzacja UI jest najlepszym wyborem na początek i postaram się przytoczyć kilka argumentów przemawiających za tą tezą.

Nie musisz znać kodu aplikacji
Żeby zacząć automatyzować UI nie musisz znać kodu swojej aplikacji. Nie zastanawiasz się jaka metoda jest odpowiedzialna za pobieranie aktualnego kursu walut, a która wylicza ilość pieniędzy, które otrzymamy. Nie musisz również poznawać wszystkich zależności między modułami, co w przypadku aplikacji o skomplikowanej logice biznesowej może zająć wiele czasu. Warto mieć świadomość, że aplikacja może być stworzona przy użyciu bibliotek, których nie znasz i będziesz musiał przyswoić bardzo dużo wiedzy zanim przejdziesz do pisania testów jednostkowych czy integracyjnych. Dlatego testy na niskim poziomie są tworzone zazwyczaj przez programistów.
Testowanie UI jest intuicyjne
Nawet jeśli nie jesteś testerem manualnym i nie masz doświadczenia w testowaniu oprogramowania to korzystałeś i korzystasz na co dzień z wielu aplikacji internetowych czy mobilnych w których wykonujesz jakieś akcje. Nie posiadając instrukcji jesteś w stanie intuicyjnie odkryć funkcjonalności aplikacji i je zweryfikować. Oczywiście niektóre aplikacje do pełnego zrozumienia wymagają specjalistycznej wiedzy biznesowej, ale próg wejścia do zrozumienia tego co ma być przetestowane jest dużo niższy niż w przypadku testów niższego poziomu.
Automatyzujesz swoją pracę
Jeżeli pracujesz na co dzień jako tester manualny aplikacji internetowych to ułatwiasz sobie pracę. Kiedy nauczysz się pisać testy automatyczne UI to część Twojej codziennej pracy będzie wykonywana przez testy automatyczne. Jedynym Twoim zadaniem będzie weryfikacja raportu z testów i zgłoszenie ewentualnych błędów, gdy jakiś test zakończy się niepowodzeniem. Mając doświadczenia w testach manualnych wiesz co ma robić Twój test tzn. jakie kroki należy wykonywać i co ma weryfikować.
Jesteś niezależny od projektu
Testy UI możesz tworzyć w dowolnym języku programowania i w żaden sposób nie jest to zależne od języka programowania używanego w projekcie. Twoje testy nie bazują na wewnętrznym kodzie aplikacji i są niezależne od kodu projektu. Znając jeden język programowania oraz konkretne biblioteki do automatyzacji testów jesteś w stanie zautomatyzować testy większości aplikacji internetowych. Testy integracyjne niskiego poziomu oraz jednostkowe w większości przypadków muszą być pisanie w języku programowania w którym został stworzony projekt, bo korzystają z kodu źródłowego aplikacji.
Automatyzacja UI jest pożądana przez pracodawców
Automatyzacja testów na poziomie UI jest pożądana przez pracodawców i możesz ją znaleźć jako wymaganie w wielu ofertach pracy. Oczywiście język programowania który jest wymagany w danej ofercie może się różnić. Jeżeli dopiero starasz się o swoją pierwszą pracę, umiejętność automatyzacji testów może być „game changerem”, który sprawi, że wyprzedzisz konkurencje.
Podsumowanie
W tym wpisie chciałem przekonać Cię że UI jest czymś od czego powinnaś/powinieneś zacząć swoją przygodę z automatyzacją testów. Oczywiście jak każde rozwiązanie, ma ono również swoje wady, ale próg wejścia do tego typu testów jest dużo niższy od testów integracyjnych i jednostkowych.