Ich möchte lernen, wie man "robuste" Software baut, die sich selbst testen soll. Mit anderen Worten, wie implementiere ich automatisierte Tests in meiner Software (mit Java oder Groovy oder C ++).
Ich möchte also wissen, wo ich das lernen kann (Bücher oder Websites) und welche Tools und Bibliotheken ich dafür brauche?
Zusätzlich zu der oben genannten Test-Driven Development (TDD) -Technik können Sie sich design by contract , eine andere Technik, bei der im Prinzip eine Aussage im Produktionscode hinzugefügt wird, um zur Laufzeit zu validieren, dass die Vertragsklauseln (Eingaben, Ausgaben und Invarianten) zwischen den Komponenten eingehalten werden. Diese Behauptungen können entfernt oder beibehalten werden, wenn die Software geliefert wird.
Ich möchte meine Antwort erweitern, um klarzustellen, dass TDD nicht zu "Software, die sich selbst testen soll" führt, sondern zu einer Software, - der Unit Testsuite, die zusammen mit dem Produktionscode entwickelt wurde und eine andere testet Stück Software.
JUnit, das automatisierte Test-Harness für Java, ist das Werkzeug, mit dem man wirklich loslegen kann. Die JUnit Website ist ein ausgezeichneter Startpunkt. Es umfasst viele Artikel und Links zu Test-Tools.
Ich weiß nicht über den "sich selbst testen" -Teil, aber mein erster Gedanke wäre, über testgetriebene Entwicklung zu lesen ( Ссылка ) und check out JUnit.
Sehen Sie sich die xUnit-Test-Frameworks an ( cppUnit für C ++, JUnit für Java) und sehen Sie sich das wunderbare Buch xUnit an Testmuster: Refactoring-Testcode .
Und wenn Sie wirklich darauf eingehen wollen, sehen Sie sich testgetriebene Entwicklung an. Eine gute Einführung ist Onkel Bobs Die drei Gesetze von TDD und die Bowling-Spiel Kata (siehe auch Bowling-Spiel Folge ). Ein großartiges Buch zu diesem Thema ist Test Driven Development: Example .
Ich fand The Art of Unit Testing von Roy Osherove , um sehr hilfreich beim Verständnis der Grundlagen von Komponententests zu sein , Integrationstest, TDD und so weiter. Es ist ein bisschen auf .Net-Sprachen zugeschnitten, aber es liefert auch sehr gute Informationen über die Ideen hinter automatisierten Tests.
Tags und Links unit-testing xunit testing tdd