Positive Tests und negative Tests mit Beispielen

โšก Intelligente Zusammenfassung

Positive und negative Tests entscheiden gemeinsam darรผber, ob eine Software erwartete Eingaben akzeptiert und unerwรผnschte Eingaben ablehnt. Dieser Artikel erlรคutert beide Ansรคtze, die zugrundeliegenden Techniken, praktische Beispiele und Vorgehensweisen zur Minimierung von Fehlern.

  • โœ… Positives Testergebnis: Geben Sie nur gรผltige Daten ein und stellen Sie sicher, dass die Anwendung den vorgesehenen Ablauf genau wie in der Spezifikation beschrieben durchfรผhrt.
  • โ›” Negatives Testergebnis: Geben Sie ungรผltige oder extreme Daten ein und vergewissern Sie sich, dass die Anwendung diese ablehnt, eine eindeutige Fehlermeldung anzeigt und stabil bleibt.
  • ๐Ÿ“ Grenzwertanalyse: Testen Sie die Grenze jedes zulรคssigen Bereichs und anschlieรŸend einen Schritt auรŸerhalb dieses Bereichs, um Abweichungen von einer Position schnell zu erkennen.
  • ๐Ÿงฉ ร„quivalenzzerlegung: Teilen Sie die Eingaben in gรผltige und ungรผltige Gruppen auf und wรคhlen Sie dann aus jeder Gruppe einen Wert aus, anstatt alle Werte zu testen.
  • ๏ธ Deckungsregel: Schreiben Sie mindestens zwei Fรคlle pro Anforderung, einen positiven und einen negativen, damit kein Akzeptanzkriterium ungetestet ausgeliefert wird.
  • ๐Ÿ›ก๏ธ Sicherheitsgewinn: Negative Testfรคlle decken Injektionsfehler, abgelaufene Token und unbehandelte Ausnahmen auf, die bei positiven Testlรคufen nie auftreten.
  • ๐Ÿค– Automatisierungspassung: Automatisieren Sie stabile positive Ablรคufe fรผr den Regressionswert und automatisieren Sie negative Validierungsprรผfungen fรผr das Feedback zur Resilienz.

Softwaretests dienen der รœberprรผfung und Validierung einer Softwareanwendung, um festzustellen, ob sie wie erwartet funktioniert. Ziel ist es, Fehler zu finden und die Produktqualitรคt zu verbessern. Es gibt zwei Arten von Softwaretests: positive und negative Tests.

Die beiden Ansรคtze beantworten gegensรคtzliche Fragen: Funktioniert die Anwendung, wenn alles glatt lรคuft, und bleibt sie stabil, wenn etwas schiefgeht?

Was bedeutet ein positives Testergebnis?

Positive Tests Es handelt sich um eine Testart, die an einer Softwareanwendung durchgefรผhrt wird, indem gรผltige Datensรคtze als Eingabe bereitgestellt werden. Dabei wird geprรผft, ob sich die Softwareanwendung bei positiven Eingaben wie erwartet verhรคlt.

Ein Positivtest wird durchgefรผhrt, um zu รผberprรผfen, ob die Softwareanwendung genau das tut, was sie soll. Er wird daher auch als Happy-Path-Test bezeichnet.

Betrachten Sie beispielsweise das unten gezeigte numerische Textfeld.

Positive Tests

In einer Anwendung gibt es ein Textfeld, das nur Zahlen akzeptiert. Das System akzeptiert die Eingabe von Werten bis 99999, alle anderen Werte sollten nicht akzeptiert werden. Um einen positiven Test durchzufรผhren, legen Sie die gรผltigen Eingabewerte zwischen 0 und 99999 fest und prรผfen Sie, ob das System die Werte akzeptiert.

Was ist ein Negativtest?

Negativtest ist eine Testmethode, die an der Softwareanwendung durchgefรผhrt wird, indem ungรผltige oder fehlerhafte Datensรคtze als Eingabe verwendet werden. Dabei wird รผberprรผft, ob sich die Softwareanwendung bei negativen oder unerwรผnschten Benutzereingaben wie erwartet verhรคlt.

Das Ziel von Negativtests ist es, sicherzustellen, dass die Softwareanwendung bei ungรผltigen Dateneingaben nicht abstรผrzt und stabil bleibt. Daher werden sie auch als Fehlerpfadtests oder Ausfalltests bezeichnet.

Betrachten wir beispielsweise dasselbe Feld, das anstelle von Ziffern Zeichen empfรคngt.

Negativtest

Ein Negativtest kann durch Eingabe der Zeichen A bis Z oder von a bis z durchgefรผhrt werden. Entweder sollte das Softwaresystem die Werte nicht akzeptieren oder eine Fehlermeldung fรผr diese ungรผltigen Dateneingaben ausgeben.

Bei beiden Testarten ist Folgendes zu beachten:

  • Eingabedaten
  • Eine Aktion, die ausgefรผhrt werden muss
  • Ausgabeergebnis

Positives Testergebnis vs. negatives Testergebnis: Die wichtigsten Unterschiede

Beide Ansรคtze haben Folgendes gemeinsam: Testfall Struktur. Der Unterschied liegt in den eingegebenen Daten und in dem, was ein positives Ergebnis beweist.

Parameter Positive Tests Negativtest
Auch bekannt als Testen des Erfolgspfads Fehlerpfad- oder Fehlerprรผfung
Eingabe verwendet Gรผltige, erwartete Daten Ungรผltige, extreme oder unerwartete Daten
Ziel Prรผfen Sie, ob die Funktion wie vorgesehen funktioniert. Bestรคtigen Sie, dass die Funktion das ablehnt, was sie nicht sollte.
Erwartetes Ergebnis Der Ablauf wurde erfolgreich abgeschlossen. Es tritt ein eindeutiger Fehler auf, das System bleibt aber stabil.
Fehlerbehandlung Nicht der Fokus Der gesamte Fokus
Abdeckung Schmal, entspricht der Spezifikation Broad, untersucht alles auรŸerhalb der Spezifikation
Typisches Risiko bei Auslassung Kernmerkmale: Schiffbruch Abstรผrze und Sicherheitslรผcken erreichen die Produktion

Ein fehlgeschlagener positiver Test signalisiert eine Funktionsstรถrung. Ein fehlgeschlagener negativer Test signalisiert eine fehlende Schutzvorrichtung, deren Reparatur nach Entdeckung durch die Benutzer deutlich teurer ist.

Testverfahren fรผr positive und negative Tests

In der Praxis erzeugen zwei klassische Input-Design-Techniken sowohl positive als auch negative Fรคlle aus derselben Anforderung:

  • Grenzwertanalyse
  • ร„quivalenzpartitionierung

Grenzwertanalyse

Hierbei handelt es sich um eine Softwaretesttechnik, bei der die Testfรคlle so gestaltet sind, dass sie Werte an der Grenze einschlieรŸen. Wenn die Eingabedaten innerhalb der Grenzwertgrenzen verwendet werden, spricht man von einem positiven Test. Wenn die Eingabedaten auรŸerhalb der Grenzwertgrenzen ausgewรคhlt werden, spricht man von einem negativen Test.

Schauen Sie sich beispielsweise den unten dargestellten zulรคssigen Bereich an.

Positive vs. negative Tests

Ein System akzeptiert Zahlen von 0 bis 10. Alle anderen Zahlen sind ungรผltige Werte. Bei dieser Technik werden die Grenzwerte -1,0,1 und 9,10,11 getestet.

ร„quivalenzpartitionierung

This is a Softwaretest Technik, die die Eingabedaten in viele Partitionen unterteilt. Die Werte jeder Partition mรผssen mindestens einmal getestet werden. Fรผr positive Tests werden Partitionen mit gรผltigen Werten verwendet. Wรคhrend Partitionen mit ungรผltigen Werten fรผr negative Tests verwendet werden.

Betrachten Sie beispielsweise die beiden unten dargestellten Partitionen.

ร„quivalenzpartitionierung

Die numerischen Werte von Null bis Zehn lassen sich in zwei (oder drei) Bereiche unterteilen. In unserem Fall haben wir zwei Bereiche: -10 bis -1 und 0 bis 10. Aus jedem Bereich kรถnnen Beispielwerte (5 und -5) entnommen werden, um die Szenarien zu testen. Siehe โ€ฆ ร„quivalenzzerlegung und Randwertanalyse Lektion fรผr weitere durchgerechnete Beispiele.

Wie man positive und negative Tests durchfรผhrt

Die folgende Sequenz wandelt eine Anforderung in eine ausgewogene Menge positiver und negativer Fรคlle um.

  1. Lesen Sie die Anforderungen bezรผglich der Grenzwerte. Notieren Sie jedes zulรคssige Format, jeden Wertebereich und jedes Pflichtfeld. Alles, was die Spezifikation erlaubt, wird als positiver Fall, alles, was sie ausschlieรŸt, als negativer Fall behandelt.
  2. Schreiben Sie zuerst den positiven Fall. Geben Sie gรผltige Daten an, fรผhren Sie die Aktion durch und notieren Sie das erwartete Erfolgsergebnis als Ausgangswert.
  3. Aus denselben Grenzwerten lassen sich auch negative Fรคlle ableiten. Verwenden Sie Grenzwertanalyse und ร„quivalenzzerlegung, um leere Felder, falsche Datentypen und Zahlen auรŸerhalb des zulรคssigen Bereichs zu erzeugen.
  4. Fรผge feindselige Eingaben hinzu. Umfassen SQL-Injection Zeichenketten, abgelaufene Token und fehlerhafte API-Nutzdaten, so dass Sicherheitstests Lรผcken treten frรผhzeitig zutage.
  5. Ausweiten auf nicht-funktionale Prรผfungen. A lade Test bei einer positiven Anzahl unterstรผtzter Benutzer, wรคhrend Stresstest Jenseits dieser Grenze befindet sich der entsprechende negative Fall.
  6. Wรคhlen Sie aus, wo jeder Fall ausgefรผhrt wird. Negative Fรคlle fernhalten Rauch- und Geisteszustandsprรผfung, die schnelle positive Gatter sind, und fรผhren Sie sie im funktionalen und Regressionstests Fahrrรคder.

Eine Geldabhebung am Geldautomaten zeigt die Kopplung an. Im positiven Fall wird die korrekte PIN und ein gรผltiger Betrag eingegeben, woraufhin Bargeld und ein Beleg ausgezahlt werden. Im negativen Fall wird die falsche PIN eingegeben, was zu einer Ablehnungsmeldung und anschlieรŸend zur Kartensperrung fรผhrt.

Bewรคhrte Methoden, um das richtige Gleichgewicht zu wahren

  • Schreiben Sie vor Beginn der Entwicklung mindestens zwei Fรคlle pro Anforderung, einen positiven und einen negativen.
  • Priorisieren Sie negative Fรคlle nach ihrer Auswirkung, sodass Injektions- und Zahlungsfehler vor kosmetischen Eingabefehlern behandelt werden.
  • Geben Sie die Fehlermeldung selbst an, nicht nur, dass die Aktion fehlgeschlagen ist, denn vage Meldungen sind ebenfalls Mรคngel.
  • Platz lassen fรผr exploratives Testenund protokollieren Sie Ihre Ergebnisse รผber Ihr Fehlermanagementprozess.

โš ๏ธ Warnung: Fรผhren Sie niemals Negativtests in einer laufenden Produktionsumgebung durch. Negativtests dienen dazu, Fehler zu erzwingen, und ein absichtlicher Absturz beeintrรคchtigt echte Benutzer und echte Daten.

Hรคufig gestellte Fragen

Negativtest Es wird geprรผft, ob eine Anwendung ungรผltige Eingaben ordnungsgemรครŸ zurรผckweist. Destruktive Tests gehen noch weiter und treiben das System absichtlich in Richtung Ausfall, beispielsweise durch das Abbrechen einer Datenbankverbindung mitten in einer Transaktion, um das Wiederherstellungsverhalten und die Stabilitรคt unter extremen Bedingungen zu messen.

Nein. Rauch- und Geisteszustandsprรผfung Verwenden Sie ausschlieรŸlich positive Prรผfungen, da diese als schnelle Qualitรคtskontrollmechanismen fรผr neue Builds dienen. Negative Prรผfungen erzeugen absichtlich Fehler, daher werden sie von den Teams in tiefergehenden Funktionszyklen durchgefรผhrt.

Ja. KI-Generatoren lesen Anforderungen oder User Stories und schlagen gรผltige und ungรผltige Eingabemengen inklusive Grenzwerten vor. Diese werden dennoch von einem Tester รผberprรผft, da die generierten negativen Fรคlle hรคufig Domรคnengrenzen wie regulatorische Schwellenwerte oder Rundungsregeln fรผr Wรคhrungen nicht berรผcksichtigen.

Ja. KI-Funktionen benรถtigen Negativfรคlle fรผr die Eingabeaufforderung, fehlerhafte Modellantworten, Timeouts und Fragen auรŸerhalb des Geltungsbereichs. Da die Ausgaben zwischen den Durchlรคufen variieren, sollten Assertions das Antwortformat, Sicherheitsfilter und das Fallback-Verhalten รผberprรผfen, anstatt eine feste erwartete Zeichenkette zu verwenden.

Selenium Treiber fรผr die Browser-Feldvalidierung Postman umfasst ungรผltige API-Nutzdaten und Statuscodes, und JMeter Die Last รผberschreitet die zulรคssige Grenze fรผr Belastungsszenarien. Wรคhlen Sie das Werkzeug, das der zu prรผfenden Schicht entspricht.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: