Frage

Gibt es eine gute Werkzeugeinheit Testfälle zu erzeugen, ein .NET oder Java-Projekt gegeben sagen, es Einheit Testfälle erzeugt, die eine fast 100% Codeabdeckung abdecken würde. Die Anzahl der Testfälle könnte direkt an die zyklomatischen Komplexität des Codes (je höher die Verschachtelung von Schleifen und Bedingungen je höher die Komplexität zyklomatischen), wobei je höher die Komplexität zyklomatischen, desto größer ist die Menge der Testfälle erzeugen proportional. Ich erwarte, dass es nicht sein, voll funktionsfähig (sagen, ich werde die Unit-Tests bauen und führen Sie es nach seinem erzeugt worden ist), aber ich würde sagen, dass es eine Vorlage Stil im Testfall haben kann, wo Sie sind zu ändern der Fall, dass Ihre beabsichtigten Bedürfnissen entspricht. Aber es soll auch ein richtige Setup und Teardown-Verfahren hat und ist gut genug, um zu erkennen, ob Mock-Objekte für Unit-Tests verwendet werden sollen, soll es Abhängigkeiten sein. So gibt es ein solches Tool, das vorhanden ist?

War es hilfreich?

Lösung

Für .NET hat Microsoft Pex die hoffentlich Mainstream gehen für .NET 4.0, zusammen mit -Code Contracts . Ich empfehle, den Channel 9 Video.

Es scheint mir, dass diese Art der Sache für sehr datengesteuerte Klassen sehr gut - Parser usw. Ich kann nicht sehen, dass ich sehr oft würde beginnen mit ihm, aber einem nützlichen Werkzeug dennoch in Ihrem Arsenal haben.

Andere Tipps

Für C # (.NET oder im Allgemeinen), PEX könnte sein, das Werkzeug. Es arbeitet auf der IL-Ebene und versucht, seinen Weg in jeden Zweig zu erzwingen. Es hat erfolgreich eine breite Palette von Fehlern (in dem BCL usw.).

aufgedeckt

Auch wenn es Gegen intuituve scheint, dass Sie auch in zufälliger Testgenerierung Frameworks interessiert. Die Forschung hat bewiesen, dass es bei der Suche nach Fehlern als systematische Ansätze basierend auf Berichterstattung ebenso effektiv sein kann, wie Sie vorschlagen.

Schauen Sie sich Randoop sowohl für .NET und Java. Es funktioniert durch eine mehr oder weniger zufällige Folge von Methodenaufrufen zu erzeugen, und überprüft, Verträge, Abstürze etc. Es ist vollautomatisch.

Auch möchten Sie vielleicht einige andere zufällige Test-Tools auf Quick Check , z.B. für Java, Scala, F #. die sind ähnlich wie Pex, das heißt Sie eine Spezifikation geben, oder parametrisierte Unit-Test, und das Werkzeug überprüft es für eine Reihe von erzeugten Eingabeargumente.

Ich habe festgestellt, dass diese „parametrisierte“ Art und Weise des Schreibens Unit-Tests ist eigentlich viel natürlichere in mindestens 60% der Fälle und findet viel mehr Fehler.

Für Java, können Sie überprüfen, EvoSuite , die Open-Source ist und derzeit aktiv (Disclaimer, bin ich ein ihre Mitarbeiter). Siehe auch ähnliche Frage für eine Liste von mehr Tools .

Für Java versuchen JUnit-Werkzeuge . Es verfügt über eigene Eclipse-Plugin zusammen mit einem guten Dokumentation.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top