Welche Funktionen sollten über automatisierte UI-Tests getestet werden?

12

Wir haben kürzlich von einem Berater erfahren, dass ein Architekturproblem vorliegt, wenn ein Feature nur über automatisierte UI-Tests (z. B. Selenium, Coded UI) getestet werden kann. Diese Aussage mag zwar etwas extrem sein, entspricht jedoch in etwa der Testpyramide, in der UI-Tests einen kleinen Teil Ihrer gesamten automatisierten Testsuite ausmachen sollten.

Also, welche Arten von Funktionen sollten automatisierte UI-Tests haben? Wird ein System mit einer überzeugenden Architektur noch Funktionen haben, die nur durch UI-Tests überprüft werden können, oder sollten diese Tests nur als "Backup" für eine Reihe von Unit- und Service-Tests dienen?

mragh
quelle
Abgesehen von allen Funktionen der Benutzeroberfläche, nehme ich an?

Antworten:

11

Vermutlich haben Sie eine Architektur, die Schaltflächen und andere Widgets mit Aktionen verbindet - klicken Sie auf Speichern und die Speicherfunktion sollte aufgerufen werden usw.

Angenommen, Sie haben eine gute Testabdeckung der Aktionen selbst durch Unit- oder Integrationstests. Ziel des automatisierten UI-Tests ist es, sicherzustellen, dass alle Widgets die zugrunde liegenden Aktionen ordnungsgemäß aufrufen und die Ergebnisse dieser Aktionen korrekt anzeigen.

Mit anderen Worten, sie überprüfen, ob die Benutzeroberfläche den Status des Modells korrekt widerspiegelt und ordnungsgemäß mit dem Controller verbunden ist.

Die andere Komponente ist, wenn sich eine Geschäftslogik im UI-Code befindet. Möglicherweise benötigen Sie bestimmte Zeichen in einem Kennwortfeld. Sie müssen diese Funktionen irgendwie testen, da dies über Unit-Tests möglicherweise schwierig oder unmöglich ist.

Bryan Oakley
quelle
3

Welche Funktionen sollten über automatisierte UI-Tests getestet werden?

Alle Funktionen der Benutzeroberfläche.

Sie sollten testen:

  • Alle Funktionen, die Benutzer ausführen können.
  • Funktionen, die Benutzer in allen Browsern (und Versionen von) ausführen, in denen sie sie ausführen.
  • Beide sind glücklich (bei jedem Schritt das Richtige tun) und traurig (Benutzer macht Fehler).
  • Gültige und ungültige Daten.
  • Große und kleine Zahlen.
  • Alle rollen- und funktionsspezifischen Rollen.
  • Benutzer- und Administrationsoberflächen.
  • Einbruchversuche.
  • Das Erstellen und Aktualisieren von Daten funktioniert wie vorgesehen.
  • Lösche die Arbeit und lösche die zugehörigen Datenbankdaten in anderen Tabellen.
  • Benutzer im Tastatur- oder Mausstil.
  • Verschiedene Geräte oder Simulatoren von - PCs, Handys, iPads usw.
Michael Durrant
quelle
0

Es gibt keine Funktion, die nur über automatisierte UI-Tests getestet werden kann. Werkzeuge wie Selen ahmen nur das Verhalten eines Menschen nach, ohne den Menschen bis zum Selbstmord zu langweilen. Fragen Sie sich selbst (oder Ihre Berater) eine Frage: „ Wie ein Programmtest UI Aspekte würde , dass eine Person nicht? “ Die nächste Frage ist: „ Wenn ja, warum sollten Sie das, was sie tun?

Auf der anderen Seite, wenn Sie eine solche Funktion haben, würde ich sagen, dass Sie ein zugrunde liegendes architektonisches Problem haben. :-)

Ross Patterson
quelle
1
Ich denke, dass sie sich "nur" auf automatisierte UI-Tests im Vergleich zu Unit- oder Integrationstests beziehen. Ich glaube nicht, dass es möglich ist, etwas zu erschaffen, das Selen testen kann, was ein Mensch nicht kann (modulo die Geschwindigkeit des Menschen gegenüber der Geschwindigkeit des Selens)
Bryan Oakley
Tut mir leid, ich kann sehen, wo Sie das aus der Frage bekommen würden. Obwohl Sie mich aufgefordert haben, eine Anwendung zu entwickeln, die nur von Selenium verwendet werden kann - nur um sie an unser UX-Team zu
binden