Ich arbeite zZ an dem Aufbau einer automatisierten Funktions-/Abnahmetestsuite für ein Projekt, aber ich habe nicht viel Erfahrung, diese Typen der Tests zu schreiben, also wollte ich einiges erhalten Eingabe über die richtige Strukturierung. Insbesondere arbeite ich mit Arquillians Graphene-Erweiterung.Korrekte Struktur der funktionalen/Akzeptanztests
Zum Beispiel sagen, ich habe 3 Tests, A, B und C.
TestA: Tests auf ein Konto bei der Anwendung anzumelden. Wenn der Test erfolgreich ist, sollte sich der Browser also auf der Home/Info-Seite des Accounts befinden.
TestB: Testet das Ändern eines Kontopassworts. Dies würde erfordern, dass man sich beim Account anmeldet und dann die Passwortänderungsfunktionalität testet.
TestC: Tests zum Ändern der E-Mail-Adresse eines Kontos. Dies würde wiederum erfordern, dass Sie sich beim Konto anmelden und dann die E-Mail-Änderungsfunktionalität testen.
Wenn TestA aufgrund eines Problems mit dem Login-Code fehlschlägt, sollten TestB und TestC natürlich ebenfalls fehlschlagen, da sie bei einem Account angemeldet sein müssen.
Frage: Sollten automatisierte Funktions-/Akzeptanztests jeweils einen Prozess duplizieren, der zur Vervollständigung des Tests erforderlich ist? In diesem Fall müssen sich TestB und TestC beim Konto anmelden, bevor Sie etwas anderes tun. Jede Prüfung sollte rufen ausdrücklich etwas wie:
/* ...initial test setup code here */
LoginPage.login(username, password);
assertTrue(onCorrectAccountPage);
AccountModification.changePassword(newPassword);
Oder sollte ich in gewisser Weise ein Konto in der Sitzung des spöttischen, die durch Tests B und C verwendet werden können, so dass sie nicht ausfallen, auch wenn TestA (die tatsächliche Login-Test) tut?
Da es sich um Benutzerakzeptanztests handelt, dachte ich, dass sie genau das tun sollten, was der Benutzer tun würde, und sich bei Bedarf einloggen, aber ich bin nicht sicher, ob dies unnötige Duplizierung ist, die anders gehandhabt werden sollte. behandelt wie Funktionseinheiten, ähnlich einem Standard-Unit-Test) und ich wollte Feedback von jemandem mit mehr Erfahrung in diesem Bereich bekommen.
Vielen Dank im Voraus. Hoffentlich ist meine Frage nicht zu verworren. :)
Gut erklärt. Ich habe in diese Richtung gedacht, aber die Idee der "Verdoppelung" ist so tief in meinen Gedankenprozess eingegraben, dass ich mich in diesem Fall nicht sicher war. Danke für deine Antwort. – whitlaaa