{"id":308,"date":"2010-09-19T19:50:33","date_gmt":"2010-09-19T18:50:33","guid":{"rendered":"http:\/\/www.webmaid.de\/?p=308"},"modified":"2010-09-22T08:33:58","modified_gmt":"2010-09-22T07:33:58","slug":"testgetriebene-entwicklung-anfangs-mehr-spater-viel-mehr","status":"publish","type":"post","link":"https:\/\/www.webmaid.de\/2010\/09\/testgetriebene-entwicklung-anfangs-mehr-spater-viel-mehr\/","title":{"rendered":"Testgetriebene Entwicklung – anfangs mehr, sp\u00e4ter viel mehr"},"content":{"rendered":"

Bei der testgetriebenen Entwicklung handelt es um eine Methode, die in der agilen Entwicklung von Computerprogrammen angewendet werden kann. Wie bei allen Methoden gibt es auch f\u00fcr die testgetriebene Entwicklung Vor- und Nachteile. Am Anfang des Projektes investiert man mehr in die Entwicklungszeit, erh\u00e4lt daf\u00fcr aber auch mehr Softwarequalit\u00e4t und als Entwickler mehr Freizeit w\u00e4hrend der Testphase.
\n
\nEntscheidet man sich f\u00fcr die testgetriebene Entwicklung, muss man sich vorab Gedanken um das Testframework machen. In der Java-Welt wird hier die Wahl sehr wahrscheinlich auf JUnit<\/a> fallen. Weiterhin muss bei der Projektplanung auch mehr Aufwand f\u00fcr die Entwicklung der Komponenten ber\u00fccksichtigt werden, da man zus\u00e4tzlich noch die Tests schreiben muss, die eine gewisse Testabdeckung erreichen sollten.<\/p>\n

Man kann die testgetriebene Entwicklung jedoch gleich Nutzen um das Know-How f\u00fcr die entsprechende fachliche Funktionalit\u00e4t auf zwei Personen zu \u00fcbertragen und mittels Paarprogrammierung die Aufgaben so aufteilen, dass ein Entwickler die Tests schreibt und der andere Entwickler die eigentliche Umsetzung schreibt; die Rollen sollen jedoch regelm\u00e4\u00dfig wechseln, da Testf\u00e4lle schreiben nicht zu den Favoriten in der Entwicklung geh\u00f6ren. Durch dieses Vier-Augen-Prinzip kann man die Softwarequalit\u00e4t steigern, da die fachlichen Anforderungen von zwei Entwicklern \u00fcberdacht werden und man so evtl. Missverst\u00e4ndnisse fr\u00fchzeitig aufdecken kann. Eine Paarprogrammierung ist jedoch bei der testgetriebenen Entwicklung nicht vorgeschrieben, sondern erh\u00f6ht lediglich weiter die Softwarequalit\u00e4t und „\u00fcberwacht“ die Umsetzung der geforderten Unit-Tests. Die Partner spornen sich gegenseitig an und k\u00f6nnen auch voneinander etwas lernen (Mentoring).<\/p>\n

Der erh\u00f6hte Aufwand bei der Entwicklung wird sich durch die gesteigerte Softwarequalit\u00e4t dann bei den System- und Integrationstest, sowie durch eine geringere Fehlermenge beim Kunden kompensieren, vorausgesetzt man setzt konsequent f\u00fcr die Module die entsprechenden Unit-Tests um. Je sp\u00e4ter ein Fehler gefunden wird, desto teurer wird die Behebung.<\/p>\n

Durch die konsequente Erstellung von Tests f\u00fcr einzelnen Funktionalit\u00e4ten (Units) wird in den meisten F\u00e4llen eine h\u00f6here Modularit\u00e4t der fertigen Software erreicht. In C w\u00fcrde eine Unit einer Funktion entsprechen, in objektorientieren Sprachen eine Klasse mit ihren Methoden.<\/p>\n

Da jeder erstellte Code sofort getestet wird, k\u00f6nnen Fehler fr\u00fchzeitig aufgedeckt und entsprechend schnell und kosteng\u00fcnstig behoben werden. Bei einem sp\u00e4teren Refactoring kann man sofort erkennen, ob die Anwendung noch fehlerfrei funktioniert, da die Tests einen Gro\u00dfteil der Funktionalit\u00e4t sofort automatisiert pr\u00fcfen k\u00f6nnen.<\/p>\n

Um einen messbaren Erfolg mit der testgetriebenen Entwicklung zu erreichen und nicht nur auf den erh\u00f6hten Aufwand sitzen zu bleiben, sollte man eine die Testabdeckung automatisiert pr\u00fcfen lassen. Wenn man JUnit zum Testen genutzt hat, kann man hierf\u00fcr z.B. NoUnit<\/a> nutzen oder sich einen \u00dcberblick auf Java-Source.net<\/a> verschaffen.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bei der testgetriebenen Entwicklung handelt es um eine Methode, die in der agilen Entwicklung von Computerprogrammen angewendet werden kann. Wie bei allen Methoden gibt es auch f\u00fcr die testgetriebene Entwicklung Vor- und Nachteile. Am Anfang des Projektes investiert man mehr in die Entwicklungszeit, erh\u00e4lt daf\u00fcr aber auch mehr Softwarequalit\u00e4t und als Entwickler mehr Freizeit w\u00e4hrend […]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[87,45,24],"_links":{"self":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/308"}],"collection":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/comments?post=308"}],"version-history":[{"count":8,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/308\/revisions"}],"predecessor-version":[{"id":322,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/posts\/308\/revisions\/322"}],"wp:attachment":[{"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/media?parent=308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/categories?post=308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmaid.de\/wp-json\/wp\/v2\/tags?post=308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}