testdriven development
DESCRIPTION
Ein Einstieg zur testgetriebenen Software-Entwicklung.TRANSCRIPT
TESTDRIVENDEVELOPMENTWas ist das? Wie geht das? Warum? Woher kommt das? Wer macht das?
15‘ Minuten
September 2014, Patrick Koglin
Motivation
Das Erstellen von Tests nach der Entwicklung erweist sich häufig als nachteilig.
• Es wird vergessen
• Es gibt keine Zeit für Tests
• Es mangelt an Disziplin zum Schreiben von Tests
• Das Software-Design bietet keine Möglichkeit mehr für Tests
• Es gibt keine Einsicht für die Notwendigkeit von Tests
„Test first“ bzw. Testdriven Development stellt hierfür einen Lösungsansatz dar
Ein Design lässt sich in diesen Fällen nicht vorab planen, sondern kann sich erst mit wachsendem Verständnis der Anforderungen entwickeln. http://www.frankwestphal.de/TestgetriebeneEntwicklung.html
HerkunftKent Beck
2000
eXtreme Programming
http://www.agiledata.org/essays/tdd.html
Test-driven development can produce applications of high quality in less time than is possible with older methods.http://searchsoftwarequality.techtarget.com/definition/test-driven-development
Pair ProgrammingTest firstRefactoringFortlaufende IntegrationAkzeptierte VerantwortungInformation durch MetrikenAusdauerndes TempoGemeinsame Verantwortung
http://www.frankwestphal.de/ExtremeProgramming.html
Testpyramide
http://martinfowler.com/bliki/TestPyramid.html
Wie?
Vorteile und Nachteile
Abfrage in der Runde
TDD und MVP VM
Beginne bei der Geschäftslogik (ggf. Services)
Lege den Presenter an und erstelle die Verbindung von
Geschäftslogik und Presenter
Entwickle parallel Unit-Tests
Befülle bei Bedarf das ViewModel
Erstelle die View mit den einzelnen Aktionen und
rufe die Presenter-Methoden auf
Unit Tests
UI Tests
Literatur
https://leanpub.com/tdd-entschluesselt Deutsches Buch, aktuell in Entwicklung und bereitsverfügbar
TDD Guidelines: http://msdn.microsoft.com/en-us/library/aa730844%28v=vs.80%29.aspx#guidelinesfortdd_topic3
http://www.it-agile.de/wissen/praktiken/agiles-testen/testgetriebene-entwicklung-tdd/