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?
Antworten:
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.
quelle
Welche Funktionen sollten über automatisierte UI-Tests getestet werden?
Alle Funktionen der Benutzeroberfläche.
Sie sollten testen:
quelle
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. :-)
quelle