Frage

Ich schreibe einen einfachen Web-App Linq verwenden, wie mein Datalayer SQL als ich Linq2Sql sehr gerne. Ich habe in letzter Zeit ein wenig über DDD und TDD zu lesen und wollte ihm einen Schuss geben.

In erster Linie kommt es mir, dass Linq2Sql und DDD nicht zu groß mitgehen. Mein anderes Problem Tests findet, ich habe es tatsächlich finden es sehr schwer, gute Tests zu definieren, so wollte ich fragen, Was ist Ihre besten Techniken für die Entdeckung gute Testfälle.

War es hilfreich?

Lösung

Test Case Entdeckung ist eher eine Kunst als eine Wissenschaft. Allerdings einfache Richtlinien beinhalten:

  • Code, den Sie kennen gebrechlichen / schwach / wahrscheinlich brechen
  • sein
  • Folgen Sie dem Benutzerszenario (was Ihre Benutzer tun wird) und sehen, wie es Ihren Code berühren (oft bedeutet dies, es Debuggen, ein anderes Mal Profilierung und anderen Zeiten ist es einfach bedeutet, über das Szenario denken) - was auch immer Punkte in Ihrem Code vom Benutzer berührt erhalten, das ist die höchste Priorität Tests gegen schreiben zu können.
  • Während Ihrer eigenen Entwicklung die Tests, dass Sie gefunden in Bugs geführt lief -. Tests schreiben, den Code zu vermeiden regredieren wieder mit dem gleichen Verhalten

Es gibt mehrere Bücher darüber, wie aus Testfälle dort zu schreiben, aber es sei denn, Sie in einer großen Organisation arbeiten, die dokumentierten Testfälle erfordert, ist die beste Wahl aller Teile in Ihrem Code zu denken, die Sie nicht mögen, (die nicht „rein“) und stellen Sie sicher, dass Sie gründlich diese Module testen können.

Andere Tipps

Nun, durch die Standardinterpretation von TDD geht ist, dass die Tests Laufwerk Ihre Entwicklung. Also, im Grunde beginnen Sie mit dem Test. Es wird fehlschlagen, und Sie werden Code schreiben, bis dieser Test bestanden wird. So ist es eine Art von Ihren Anforderungen getrieben, aber gehen Sie über diejenigen zu sammeln. Sie entscheiden, was Ihre app / Funktion tun muss, schreiben Sie den Test, dann Code, bis es passiert. Natürlich gibt es viele andere Techniken, aber das ist nur eine kurze Erklärung über das, was typischerweise in der TDD-Welt gedacht wird.

Denken . Lesen Sie den Code. Frage selbst: z kann dieser Zeiger nie hier NULL sein? Was passiert, wenn dieses Verfahren vor der Initialisierung genannt wird?

Nehmen Sie keine Annahmen wie " Diese Datei wird immer da sein ". Prüfung.

Denken Sie über Grenzfälle, Grenzen, negative Werte, sprudeln ...

Bug werden häufig durch Cluster gruppiert. Schauen Sie sich um, wenn Sie einen finden. Suchen Sie auch nach der gleichen Art von Fehlern an anderen Orten.

Stellen Sie Ihren Geist auf das eigentliche Ziel der Prüfung:. Die Suche nach Bugs

Seien Sie kreativ bei vorzustellen, was Ihr Programm nicht machen könnte.

Ihre Tests müssen Fehler finden, nicht bestätigen, dass das Programm in Ordnung ist.

Ich schreibe regelmäßig Tests für Drittanbieter-APIs. Auf diese Weise, wenn das API-Updates, ich weiß, ob ich brechen oder nicht werde.

Ich denke, dies ist eine nützliche Technik:

Verträge und boolean Abfragen Mit Qualität der automatischen Testgenerierung verbessern


Referenz: Lisa (Ling) Liu, Bertrand Meyer und Bernd Schoeller, Verträge und boolean Abfragen zur Verbesserung von der Qualität der automatischen Testerzeugung in einem Verfahren von TAP: Tests Und Proofs , ETH Zürich, 5-06 Februar 2007 eds. Yuri Gurevich und Bertrand Meyer, Lecture Notes in Computer Science, Springer- Verlag, 2007.

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