Jakie funkcje należy przetestować za pomocą automatycznego testowania interfejsu użytkownika?

12

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?

mragh
źródło
Zakładam, że oprócz wszystkich funkcji interfejsu użytkownika?

Odpowiedzi:

11

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.

Bryan Oakley
źródło
3

Jakie funkcje należy przetestować za pomocą automatycznego testowania interfejsu użytkownika?

Wszystkie funkcje interfejsu użytkownika.

Powinieneś przetestować:

  • Wszystkie funkcje, które użytkownicy mogą wykonywać.
  • Funkcje, które użytkownicy wykonują we wszystkich przeglądarkach (i wersjach), w których je wykonują.
  • Zarówno ścieżki szczęśliwe (robienie właściwych rzeczy na każdym kroku) jak i smutne (użytkownik popełnia błędy).
  • Prawidłowe i nieprawidłowe dane.
  • Duże i małe liczby.
  • Wszystkie role i funkcje role specyficzne dla roli.
  • Interfejsy użytkownika i administratora.
  • Próby włamania.
  • Tworzenie a aktualizacja danych działa zgodnie z przeznaczeniem.
  • Usuń pracę i usuń powiązane dane bazy danych w innych tabelach.
  • Użytkownicy korzystający z klawiatury i myszy.
  • Różne urządzenia lub symulatory komputerów, telefonów, iPadów itp.
Michael Durrant
źródło
0

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. :-)

Ross Patterson
źródło
1
Myślę, że „tylko” odnoszą się one do automatycznych testów interfejsu użytkownika w porównaniu z testami jednostkowymi lub integracyjnymi. Nie sądzę, że można stworzyć coś, co selen może przetestować, czego człowiek nie potrafi (modulo prędkości człowieka w porównaniu do prędkości selenu)
Bryan Oakley
Przepraszam, widzę, skąd masz to pytanie. Chociaż
rzuciłeś