Zerstörungsfreie Softwareprüfung (ZfP): Was ist das, Teststrategie

⚡ Intelligente Zusammenfassung

Zerstörungsfreies Testen überprüft, ob sich eine Anwendung bei gültigen Eingaben korrekt verhält. Daher wird es auch als Positiv- oder Happy-Path-Test bezeichnet. Es bestätigt die erwarteten Ergebnisse anhand der dokumentierten Anforderungen.

  • 🔘 Positiv gestaltet: Bei jeder zerstörungsfreien Prüfung werden gültige Daten und eine bekannte Anforderung verwendet; ein bestandener Test beweist, dass die Funktion wie spezifiziert funktioniert.
  • ☑️ Erster auszuführender Test: Der normale Ablauf wird zuerst überprüft, da ein fehlerhafter Hauptablauf fast jeden nachfolgenden Test blockiert.
  • ✅ Anforderung tracFähigkeit: Jeder Testfall lässt sich auf ein Akzeptanzkriterium zurückführen, wodurch die Ergebnisse in einer Überprüfung leicht zu verteidigen sind.
  • 🧪 Gegenteil von zerstörender Prüfung: Bei zerstörenden Prüfverfahren wird nach dem Bruchpunkt gesucht, während zerstörungsfreie Prüfverfahren bestätigen, dass das beabsichtigte Verhalten eingehalten wird.
  • ️ Niedrige Einrichtungskosten: Es werden keine spezielle Umgebung, beschädigte Daten oder Fehlereinspeisung benötigt, daher eignet sich die Technik für kurze Zeitpläne und knappe Budgets.
  • 📈 Bekannte Einschränkung: Das erfolgreiche Durchlaufen aller Erfolgsfälle beweist nichts über die Fehlerbehandlung, daher müssen weiterhin negative und destruktive Tests parallel durchgeführt werden.

Zerstörungsfreie Softwareprüfung (ZfP) erklärt mit Teststrategie

Was ist zerstörungsfreies Softwaretesten?

Zerstörungsfreie Prüfung ist ein Softwaretesttyp, der das korrekte Testen und Interagieren mit der Softwareanwendung beinhaltet. Mit anderen Worten: Non Destructive Software Testing (NDT) kann auch als Positive Testing oder Happy Path Testing bezeichnet werden. Es liefert die erwarteten Ergebnisse und beweist, dass sich die Softwareanwendung wie erwartet verhält.

Der Name stammt aus dem Ingenieurwesen, wo zerstörungsfreie Prüfverfahren ein Bauteil untersuchen, ohne es zu beschädigen. In der Softwareentwicklung ist das Prinzip dasselbe: Die Anwendung wird so getestet, wie sie konzipiert wurde, und übersteht den Test unbeschadet.

Ejemplo: Die korrekten Daten in ein Anmeldemodul eingeben und prüfen, ob die Anmeldeinformationen akzeptiert werden und ob zur nächsten Seite navigiert wird.

Der untenstehende Screenshot zeigt das Anmeldeformular, in dessen Feld „Benutzername“ vor der Ausführung des Tests ein gültiger Wert eingegeben wurde.

Anmeldeformular als Beispiel für zerstörungsfreies Softwaretesting mit gültigen Eingaben

Um an dem obigen Beispiel einen zerstörungsfreien Test durchzuführen, geben Sie einen gültigen Benutzernamen und ein gültiges Passwort in das Anmeldeformular ein. Da die Eingabe den Anforderungen entspricht, ist das gewünschte Ergebnis positiv, und der Tester bestätigt lediglich, dass die Anwendung zur nächsten Seite wechselt.

Warum führen wir zerstörungsfreie Softwaretests (NDT) durch?

Zerstörungsfreies Testen beantwortet die erste Frage, die sich jeder Beteiligte zu einem Build stellt: Erfüllt die Funktion tatsächlich ihre Aufgaben? Aus diesem Grund führen Teams es durch.

  • Der größte Vorteil der zerstörungsfreien Prüfmethode (ZfP) besteht darin, dass sie zu einer verbesserten Softwarequalität führt, da Fehler, die im Hauptablauf gefunden werden, frühzeitig behoben werden.
  • Um zu zeigen, dass Softwarefunktionen gemäß der Spezifikation funktionieren.
  • Um zu überprüfen, ob die Leistungsanforderungen erfüllt wurden.
  • Um sicherzustellen, dass die Anforderungen der Endnutzer erfüllt werden.
  • Um zu überprüfen, ob ein kleiner Abschnitt des Codes oder der Funktionalität wie erwartet funktioniert und die zugehörige Funktionalität nicht beeinträchtigt.
  • Um Beweise zu erbringen, die vor einem Gericht vorgelegt werden können User Acceptance Testing Abnahme, bei der der Kunde das beabsichtigte Verhalten sehen möchte und nicht die Fehlermöglichkeiten.

Wann wird eine zerstörungsfreie Prüfung (NDT) durchgeführt?

Das Timing ist hier wichtiger als bei den meisten anderen Techniken, denn der optimale Ablauf bestimmt alles Weitere.

  • Es handelt sich um die erste Testform, die ein Tester an einer Anwendung durchführt, also in der Anfangsphase der SDLC.
  • Zerstörungsfreie Prüfverfahren werden in der Regel dann angewendet, wenn für einen vollständigen Testzyklus nicht genügend Zeit zur Verfügung steht, da sie dennoch den Nachweis erbringen, dass die Akzeptanzkriterien erfüllt sind.
  • Es wird vor negativen und destruktiven Szenarien ausgeführt. Wenn der Hauptablauf unterbrochen wird, melden Fehlerbehandlungstests Rauschen anstelle von tatsächlichen Fehlern.
  • Dieser Vorgang wird nach jeder Fehlerbehebung wiederholt, wodurch sich die beiden Bereiche überschneiden. Regressionstests.

Teststrategie für zerstörungsfreie Prüfungen

Die Strategie für die zerstörungsfreie Prüfung ist bewusst einfach gehalten, und die Disziplin liegt eher im positiven Denken als in der Werkzeugausstattung.

  • Die Herangehensweise an zerstörungsfreie Prüfverfahren sollte positiv sein.
  • Ziel der zerstörungsfreien Prüftechnik (ZfP) ist der Nachweis, dass eine Anwendung bei der Verarbeitung gültiger Eingabedaten funktioniert.
  • Für die Durchführung zerstörungsfreier Prüfungen sind keine besonderen Anforderungen oder Umgebungsbedingungen erforderlich.
  • Die beste Vorgehensweise bei zerstörungsfreien Prüfverfahren besteht darin, zu überprüfen, ob das System seine vorgesehene Funktion erfüllt.

Das folgende Diagramm fasst zusammen, wie diese Strategie normalerweise über einen Testzyklus hinweg organisiert ist.

Teststrategieablauf für zerstörungsfreie Softwareprüfung während eines Testzyklus

Wie man nicht-destruktive (positive) Testfälle schreibt

Ein nicht-destruktiver Testfall ist nur dann sinnvoll, wenn seine Eingabe nachweislich gültig ist und sein erwartetes Ergebnis auf einer Anforderung und nicht auf einer Annahme des Testers beruht. Die folgenden Schritte führen zu einem solchen Testfall. Testfall.

Schritt 1) ​​Wählen Sie ein Akzeptanzkriterium aus. Lesen Sie die Anforderung und formulieren Sie sie als eine einzige überprüfbare Aussage um, zum Beispiel: „Das Feld ‚Benutzername‘ akzeptiert sechs bis zwanzig alphanumerische Zeichen.“

Schritt 2) Gültige Eingabedaten auswählen. Wählen Sie Werte, die problemlos innerhalb des zulässigen Bereichs liegen. Äquivalenzpartitionierung Hier hilft es — ein repräsentativer Wert pro gültiger Partition ist normalerweise ausreichend.

Schritt 3) Schreiben Sie das erwartete Ergebnis vor der Ausführung auf. Das erwartete Ergebnis muss aus der Spezifikation abgeleitet werden. Wird es erst nach dem Testlauf geschrieben, wird dieser zu einer Beschreibung dessen, was der Build tatsächlich bewirkt hat.

Schritt 4) Halten Sie die Schritte in der Reihenfolge des Benutzers ein. Die Abfolge sollte der Vorgehensweise eines realen Benutzers entsprechen, denn Ziel der Technik ist es, den beabsichtigten Ablauf zu bestätigen.

Schritt 5) Notieren Sie die Anforderungskennung. TracDie Rückführung des Falls auf sein Kriterium ermöglicht es dem Team, die Deckung während einer Überprüfung nachzuweisen.

Ein ausgearbeitetes Beispiel für das Anmeldemodul sieht folgendermaßen aus.

Feld zerstörungsfreier Prüffall
Anforderung Der Benutzername darf 6–20 alphanumerische Zeichen enthalten.
Testdaten Benutzername guru99testergültiges passendes Passwort
Shritte Öffnen Sie die Anmeldeseite, geben Sie die Zugangsdaten ein und wählen Sie „Anmelden“.
Erwartetes Ergebnis Die Anmeldedaten werden akzeptiert und die Startseite wird angezeigt.
Typ Positiver / glücklicher Weg

Beachten Sie, dass in diesem Fall nichts versucht, das Feld zu beschädigen. Ein Fall, der fünf Zeichen eingibt, um die Fehlermeldung anzuzeigen, ist ein negativer Test, keine zerstörungsfreie.

Beispiele für zerstörungsfreie Prüfungen

Das folgende Beispiel zeigt, wie sich zerstörungsfreies Testen in einer Multi-Modul-Anwendung verhält, nachdem ein Fehler behoben wurde.

  • Eine Anwendung besteht aus fünf Modulen: Anmeldeseite, Startseite, Benutzerdetailseite, Erstellung neuer Benutzer und Aufgabenerstellung.
  • Angenommen, es gibt einen Fehler auf der Anmeldeseite: Das Feld für den Benutzernamen akzeptiert weniger als sechs alphanumerische Zeichen. Dies widerspricht den Vorgaben, die besagen, dass der Benutzername mindestens sechs Zeichen lang sein muss; daher stellt dieses Verhalten einen Fehler dar.
  • Der Fehler wird dem Entwicklerteam auf dem üblichen Weg gemeldet. FehlermanagementprozessDas Problem ist behoben, und der Build wird an das Testteam zurückgeschickt.
  • Das Testteam prüft nicht nur die Anmeldeseite, auf der der Fehler behoben wurde, sondern auch die anderen Module. Dabei werden alle Module mit gültigen Daten getestet. Es werden nicht-destruktive Tests durchgeführt, um sicherzustellen, dass die gesamte Anwendung weiterhin einwandfrei funktioniert.

Zerstörungsfreie Prüfung vs. zerstörende Prüfung

Die beiden Techniken werden häufig zusammen gelehrt, weil sie gegensätzliche Fragen zum selben Aufbau beantworten. Destruktives Testen sucht nach dem Punkt, an dem die Software versagt, während zerstörungsfreie Prüfungen bestätigen, dass das beabsichtigte Verhalten erhalten bleibt.

Aspekt Zerstörungsfreie Prüfung Destruktives Testen
Absicht Interagieren Sie korrekt mit der Anwendung und überprüfen Sie positive Ergebnisse. Um die Fehlerstelle zu finden, geben Sie ungewöhnliche oder ungültige Eingaben ein.
Eingabedaten Gültige Daten, die aus den Anforderungen abgeleitet wurden Ungültige, beschädigte oder nicht in der richtigen Reihenfolge befindliche Daten
Anforderungen erforderlich Ja – Fälle werden anhand von Akzeptanzkriterien verfasst. Nicht unbedingt; Tester arbeiten ohne die Voreingenommenheit gegenüber User Stories.
Was es offenbart Funktionsschwächen im Vergleich zur Spezifikation Schwächen in Konstruktion, Robustheit und Wiederherstellbarkeit
Verwandte Techniken Rauchprüfung, Funktionsprüfung Affentest, exploratives Testen

Die beiden Verfahren ergänzen sich, anstatt Alternativen zu sein. Die alleinige Durchführung zerstörungsfreier Prüfungen lässt die Fehlerbehandlung ungeprüft, und die alleinige Durchführung zerstörender Prüfungen beweist niemals, dass das Produkt seine Funktion erfüllt.

Vorteile und Grenzen der zerstörungsfreien Softwareprüfung

Zu wissen, ab wann eine Technik ihren Nutzen verliert, ist genauso wichtig wie zu wissen, was sie umfasst.

Vorteile

  • Schnell zu entwerfen und auszuführen, da die Testdaten direkt aus der Spezifikation stammen.
  • Erfordert keine spezielle Umgebung, Fehlereinspeisung oder beschädigte Datensätze.
  • Erstellt Nachweise, die den Anforderungen eins zu eins entsprechen und sich daher für Audits und Freigaben eignen.
  • Funktioniert genauso gut wie manuelle Prüfung und wie im Drehbuch vorgesehen AutomatisierungstestsSo können dieselben Fälle in einer Regressionssuite wiederverwendet werden.
  • Gibt frühzeitig und ehrlich ein Signal über den Zustand des Gebäudes auf jeder Ebene, von der Einheit bis zur Gesamtebene. Integrationstests zu Systemtests.

Einschränkungen

  • Ein vollständiger Testlauf sagt nichts darüber aus, wie sich die Anwendung bei ungültigen Eingaben verhält, sodass schwerwiegende Fehler in der Fehlerbehandlung unentdeckt bleiben können.
  • Der Umfang der Prüfung ist durch die Qualität der Anforderungen begrenzt. Alles, was nicht spezifiziert ist, wird niemals getestet.
  • Es kann ein falsches Vertrauen erzeugen, wenn vor einer Veröffentlichung nur der bewährte Weg beschritten wird.
  • Es misst weder Robustheit, Erholung noch Leistungsfähigkeit unter Belastung, wofür eigene Techniken aus dem breiteren Spektrum der Messmethoden erforderlich sind. Arten von Softwaretests.

Behandeln Sie die zerstörungsfreie Prüfung als Grundlage, auf der alle anderen Verfahren aufbauen, und planen Sie sie innerhalb des umfassenderen Prozesses ein. Lebenszyklus von Softwaretests und nicht als einmalige Aktivität.

Häufig gestellte Fragen

Lediglich das Prinzip ist gemeinsam. Die technische zerstörungsfreie Prüfung (ZfP) untersucht ein physisches Bauteil, ohne es zu beschädigen, beispielsweise mittels Ultraschall oder Radiografie. Die softwarebasierte ZfP übernimmt zwar den Gedanken, das Prüfobjekt intakt zu lassen, die Technik selbst entspricht jedoch der Durchführung herkömmlicher positiver Prüfungen.

Zerstörungsfreie Prüfverfahren liefern valide Daten und erwarten Erfolg. Negativtest Es werden ungültige Daten verarbeitet, und es wird eine kontrollierte, informative Fehlermeldung erwartet, beispielsweise eine Validierungsmeldung. Beides ist notwendig, da ein fehlerfreier Ablauf niemals beweist, dass die Fehlerbehandlung funktioniert.

Sie lassen sich leichter automatisieren als jede andere Kategorie. Die Daten sind stabil, das erwartete Ergebnis ist durch die Anforderung festgelegt und der Ablauf ändert sich selten, was Happy-Path-Fälle zu den naheliegenden ersten Kandidaten für eine Regressionssuite macht.

Üblicherweise wird pro gültiger Äquivalenzpartition ein Fall berücksichtigt, zuzüglich eines weiteren für jedes unterschiedliche erfolgreiche Ergebnis, das die Anforderung beschreibt. Das Hinzufügen weiterer gültiger Werte innerhalb derselben Partition führt selten zu neuen Ergebnissen und verlangsamt die Testsuite.

KI-gestützte Tools lesen User Stories und Akzeptanzkriterien und erstellen die passenden Testfälle sowie gültige Testdaten. Die Einsparungen sind real, aber ein Mensch muss jedes erwartete Ergebnis weiterhin anhand der Spezifikation bestätigen, bevor der Testfall als vertrauenswürdig eingestuft wird.

GitHub-Copilot Erstellt schnell Skripte für den erfolgreichen Ablauf aus einer bestehenden Testdatei oder einem beschriebenen Ablauf. RevPrüfen Sie die Aussagen sorgfältig – generierte Tests bestätigen eher, was der Code tut, als was die Anforderung verlangt.

Sie überschneiden sich, sind aber nicht identisch. Rauchprüfung Eine oberflächliche Durchmusterung der kritischen Bereiche dient der Entscheidung, ob eine Prüfung eines Bauwerks sinnvoll ist. Zerstörungsfreie Prüfverfahren sind eine bewährte Methode, die in jeder Tiefe angewendet werden kann und auch eine vollständige Funktionsprüfung ermöglicht.

Die Anforderungsabdeckung ist der ehrliche Wert: der Anteil der Akzeptanzkriterien, bei denen mindestens ein positiver Testfall erfüllt ist. Kombiniert man sie mit der Erfolgsquote und dem Verhältnis von positiven zu negativen Testfällen, so lassen sich Testsuiten identifizieren, die ausschließlich den Normalfall prüfen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: