Muster ende probezeit

Ich stimme Mikes Idee zu und möchte mit einem weiteren Argument dazu beitragen. Anforderungen können als Konzepte, Fakten oder Rotines(Prozesse) kategorisiert werden. “Kunde” ist ein Konzept. Begriffe können oder auch nicht, indem unter anderem Fakten angegeben werden. “Ein Kauf wird von einem Kunden getätigt” ist eine Tatsache. Fakten verlinken zwei oder mehr Konzepte. “Nach einem Kauf werden die Kundendaten aktualisiert” ist ein Prozess. Eine Änderung in einem Konzept wird in der Regel durch eine störende Änderung im Geschäftsszenario gefordert. Eine Änderung in einer Tatsache wird in der Regel durch einen Strukturwandel im Geschäftsszenario gefordert.

Eine Änderung in einem Prozess kann durch viele Arten von Dingen, einschließlich der Wettervorhersage, gefordert werden. Es ist möglich, minimale und schrittweise Änderungen an einem Anwendungsfluss (dem Prozess) ohne negative Auswirkungen auf die Benutzererfahrung vorzunehmen, aber selbst diese kleinen Änderungen werden wahrscheinlich die automatisierten E2E-Tests unterbrechen. Vielleicht müssen wir jetzt über eine adaptive Funktion für die E2E-Implementierung nachdenken, wenn sie noch nicht verfügbar ist. um das in einem realen Szenario zu handhaben, habe ich einen zusätzlichen Ausführungsmodus – Human Assisted – implementiert, der, bevor er fehlschlägt, den menschlichen Assistenten bittet, eine Änderung am Testfall in anderen Fällen vorzunehmen, um erfolgreich zu bleiben. Auf diese Weise könnten wir 40% e2E automatisierte Testabdeckung für eine mobile Banking-Anwendung in einer Weise erreichen, die unser Kunde akzeptiert. Sie entsprach 200 von insgesamt 500 Anwendungsströmen, die von der automatisierten E2E-Prüfung abgedeckt wurden. Schreiben Sie Integrationstests für alle Codeteile, bei denen Sie Daten serialisieren oder deserialisieren. Dies geschieht häufiger, als Sie vielleicht denken. Denken Sie darüber nach: Wir wollen vermeiden, dass die echten Darksky-Server getroffen werden, wenn sie automatisierte Tests ausführen. Quotengrenzen unseres kostenlosen Plans sind nur ein Teil des Grundes.

Der wahre Grund ist die Entkopplung. Unsere Tests sollten unabhängig von dem laufen, was die netten Leute an darksky.net tun. Selbst wenn Ihr Computer nicht auf die Darksky-Server zugreifen kann oder die Darksky-Server wartungsfrei sind. Denken Sie an die hochwertigen Interaktionen, die Benutzer mit Ihrer Anwendung haben. Versuchen Sie, Benutzerreisen zu finden, die den Kernwert Ihres Produkts definieren, und übersetzen Sie die wichtigsten Schritte dieser Benutzerreisen in automatisierte End-to-End-Tests. Glücklicherweise ist das Testen des Verhaltens Ihrer Benutzeroberfläche ziemlich einfach. Klicken Sie hier, geben dort Daten ein und möchten, dass sich der Status der Benutzeroberfläche entsprechend ändert. Moderne einseitige Anwendungsframeworks (reagieren, vue.js, Angular und dergleichen) kommen oft mit ihren eigenen Tools und Helfern, mit denen Sie diese Interaktionen auf eine ziemlich low-level (Unit Test) Weise gründlich testen können. Auch wenn Sie Ihre eigene Frontend-Implementierung mit Vanille-Javascript rollen, können Sie Ihre regulären Test-Tools wie Jasmine oder Mokka verwenden. Mit einer traditionelleren, serverseitigen gerenderten Anwendung sind Selen-basierte Tests die beste Wahl. Und da Sie wissen, dass Sich veränderungen geschehen wird, sollten Sie von Anfang an mit Best Practices oder Designmustern beginnen.

Dadurch werden Ihre Automatisierungstests reproduzierbarer und wartungsfähiger. Wir haben diesen Punkt vorhin angesprochen, aber ich glaube, dass es einen Wert hat, ihn mehr hervorzuheben. Es kommt häufig vor, dass der Testcode nicht die gleiche Aufmerksamkeit erhält wie der Produktionscode (Anwendungscode).