Niedawno nasz konsultant powiedział nam, że jeśli daną funkcję można przetestować tylko za pomocą automatycznych testów interfejsu użytkownika (np. Selenium, kodowany interfejs użytkownika), to istnieje problem architektoniczny. Chociaż to stwierdzenie może być nieco ekstremalne, jest zgodne z piramidą testową, ponieważ testy interfejsu użytkownika powinny stanowić niewielką część całego zestawu zautomatyzowanych testów.
Jakie funkcje powinny mieć automatyczne testowanie interfejsu użytkownika? Czy system o przekonującej architekturze nadal będzie posiadał funkcje, które można zweryfikować tylko za pomocą testów interfejsu użytkownika, czy też powinny one służyć jedynie jako „kopia zapasowa” dla zestawu testów jednostkowych i usługowych?
Odpowiedzi:
Prawdopodobnie masz jakąś architekturę, która łączy przyciski i inne widżety z akcjami - kliknij Zapisz, a funkcja Zapisz powinna zostać wywołana itp.
Zakładając, że masz dobry zasięg testów samych działań za pomocą testów jednostkowych lub integracyjnych, celem zautomatyzowanego testowania interfejsu użytkownika jest upewnienie się, że wszystkie widżety wykonują odpowiednie wywołania podstawowych działań i poprawnie wyświetlają wyniki tych działań.
Innymi słowy, potwierdzają, że interfejs użytkownika prawidłowo odzwierciedla stan modelu i jest prawidłowo podłączony do kontrolera.
Drugi składnik występuje, gdy logika biznesowa znajduje się w kodzie interfejsu użytkownika. Na przykład może potrzebujesz pewnych znaków w polu hasła. Musisz w jakiś sposób przetestować te funkcje, ponieważ może to być trudne lub niemożliwe do wykonania za pomocą testów jednostkowych.
źródło
Jakie funkcje należy przetestować za pomocą automatycznego testowania interfejsu użytkownika?
Wszystkie funkcje interfejsu użytkownika.
Powinieneś przetestować:
źródło
Nie ma czegoś takiego jak funkcja, którą można przetestować tylko za pomocą automatycznych testów interfejsu użytkownika. Narzędzia takie jak Selen po prostu naśladują zachowanie człowieka, nie nudząc go aż do samobójstwa. Zadaj sobie (lub swojemu konsultantowi) pytanie: „W jaki sposób program przetestowałby aspekty interfejsu użytkownika, których dana osoba nie może? ”. Kolejne pytanie brzmi: „ Jeśli tak, dlaczego miałbyś przejmować się tym, co robią? ”
Z drugiej strony, jeśli masz taką cechę, cóż, tak, powiedziałbym, że masz podstawowy problem architektoniczny. :-)
źródło