8 Stimmen

Verwendung von Zufälligkeiten und/oder Iterationen in Unit-Tests?

Bei Unit-Tests habe ich mir angewöhnt, Methoden zu testen, die einige reguläre Werte, einige Werte, die gegen den Methodenvertrag verstoßen, und alle Grenzfälle, die mir einfallen, anwenden.

Aber ist es eine schlechte Praxis, wenn

  • Wenn Sie einen Test mit zufälligen Werten durchführen, ist dies ein Wert innerhalb eines Bereichs, von dem Sie glauben, dass er keine Probleme verursachen sollte, so dass jedes Mal, wenn der Test läuft, ein anderer Wert eingegeben wird? Als eine Art ausführlicher Test für regelmäßige Werte?
  • Prüfung ganzer Bereiche durch Iteration ?

Ich habe das Gefühl, dass diese beiden Ansätze nicht gut sind. Bei Reichweitentests kann ich mir vorstellen, dass es einfach nicht praktikabel ist, das zu tun, weil es so viel Zeit in Anspruch nimmt, aber bei Zufälligkeit?

UPDATE :

Ich wende diese Technik selbst nicht an, ich habe mich nur darüber gewundert. Ich weiß jetzt, dass der Zufall ein gutes Werkzeug sein kann, wenn man ihn bei Bedarf reproduzierbar machen kann.
Die interessanteste Antwort war der "Fuzzing"-Tipp von Lieven:

http://en.wikipedia.org/wiki/Fuzz_testing

tx

0voto

Der wichtigste Punkt ist hier der Einheitstest. Eine Reihe zufälliger Werte im erwarteten Bereich sowie an den Rändern für den guten Fall und außerhalb des Bereichs/der Grenze für den schlechten Fall sind in einem Regressionstest wertvoll, vorausgesetzt der Seed ist konstant.

ein Einheitstest kann Zufallswerte im erwarteten Bereich verwenden, wenn es möglich ist, die Ein-/Ausgaben (falls vorhanden) immer vorher und nachher zu speichern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X