Automatische Generierung von Unit-Testfällen für die .NET und Java
Ist es ein gutes Werkzeug zur Generierung von unit-Testfällen gegeben, sagen die einen .NET-oder Java-Projekt erzeugt Testfälle, wäre ein fast 100% code-coverage. Die Anzahl der Testfälle könnte direkt proportional zu der zyklomatische Komplexität der code (je höher die Verschachtelung von Schleifen und Bedingungen, desto höher ist die zyklomatische Komplexität), wo je höher die zyklomatische Komplexität, desto größer ist die Menge der Testfälle generiert werden. Ich bin mir nicht erwartet, dass es voll funktionsfähig zu sein (sagen wir ich werde bauen Sie die unit-tests und führen Sie es nach seinem generiert war), aber ich würde sagen, dass es eine Vorlage Stil in der test-Fall, wo Sie sind zu ändern, der Fall, die für Ihren beabsichtigten muss. Aber es sollte auch eine richtige setup-und teardown-Methode ist gut genug, um zu erkennen, ob die mock-Objekte für unit-Tests sollte verwendet werden, sollte es keine Abhängigkeiten. Also, gibt es so ein tool existiert?
InformationsquelleAutor yoitsfrancis | 2009-03-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für .NET, Microsoft hat Pex, die hoffentlich zum mainstream gehen .NET 4.0, zusammen mit Code-Verträge. Ich empfehle, beobachtete Sie die Channel 9-video.
Fällt mir auf, dass diese Art der Sache ist sehr gut für sehr data-driven-Klassen - Parser usw. Ich kann nicht sehen, dass ich sehr oft beginnen, aber ein nützliches Werkzeug, um in Ihrem Arsenal trotzdem.
Was kann ich sagen, Marc? Entweder Sie haben es oder Sie haben noch nicht... 😉
Auf "Start": Pex-tests sind mehr wie ausführbare Spezifikationen. Denken beispielsweise der Eingang ist wirklich ein langweiliger job, die ist besser verarbeitet von software...kennt alle die Ecke Fällen, dass die devloper versucht, Sie zu ignorieren 😉
Ich denke, das macht Sinn für denjenigen edge/Ausfall Fällen sicherlich. Ich glaube, ich würde in der Regel beginnen, mit der hand geschrieben "Erfolg" Fälle obwohl. Vielleicht brauche ich nur zu verwenden, Pex in Wut, obwohl, um voll zu schätzen.
InformationsquelleAutor Jon Skeet
Für C# (bzw. .NET im Allgemeinen), PEX könnte sein, dass tool. Es funktioniert auf IL-Ebene, und versuche, Sie zu zwingen, seinen Weg in jeder Filiale. Es hat erfolgreich entdeckt eine Vielzahl von bugs (BCL etc.).
InformationsquelleAutor Marc Gravell
Obwohl es scheint, counter-intuitive, Sie könnten auch interessiert sein in random-test-generation-frameworks. Forschung hat bewiesen, dass es kann genauso wirksam bei der Suche nach bugs als systematische Ansätze basierend auf Berichterstattung, wie Sie Sie vorschlagen.
Check-out Randoop sowohl für .NET und Java. Es funktioniert durch die Erzeugung einer mehr oder weniger zufälligen Reihenfolge der Methodenaufrufe und prüft Verträge, Abstürze etc. Es ist voll automatisch.
Auch Sie können prüfen wollen, einige andere zufällige Test-tools basierend auf QuickCheck, z.B. für Java, Scala, F#. die sind mehr ähnlich Pex, d.h. Sie geben eine Spezifikation, oder parametrisierten unit-test, und das tool prüft es für die Anzahl der generierten input-Argumente.
Habe ich festgestellt, dass diese "Parametrierung" Art und Weise des Schreibens von unit tests ist eigentlich viel natürlicher, die in mindestens 60% der Fälle, und findet viel mehr Fehler.
InformationsquelleAutor Kurt Schelfthout
Für Java können Sie überprüfen,EvoSuite, das ist open source und derzeit aktiven (disclaimer, ich bin einer der Mitwirkenden). Auch Verwandte Frage für eine Liste der Werkzeuge.
InformationsquelleAutor arcuri82
Für Java, versuchen JUnit-Tools. Es hat eine eigene eclipse-plugin zusammen mit der guten Dokumentation.
InformationsquelleAutor saurabheights