TDD en ATDD

inhoud
  1. Quality Assurance evenwichtige
  2. testautomatisering
  3. TDD en ATDD
  4. conclusie
  5. lees eenzijdig

Met statische code analyse tools zoals FindBugs vaak, FxCop of Checkstyle worden gebruikt om de code tegen applicatie-onafhankelijke fout te controleren. Onbedekte uitzonderingen duidelijk ongeldige wijzer gevonden en ongebruikte codefragmenten kan zodoende bepaald. In het algemeen, echter niet beperkt tot statische code analyse, maar een aanvulling op de statistieken door pair programming. Dit delen van kennis wordt ook lang steunde het team en collectief Code Ownership mogelijk maakt. Als een programmeur in het team is in staat om een ​​andere code te wijzigen, het creëren van een geheel nieuwe manier van werken, omdat niet langer Peters code niet langer in een keer te gaan, maar het is de code van alle teamleden.

Zoals met alle statistieken, echter, om in gedachten te houden dat het niet gaat om de individuele prestaties van de teamleden te meten of te gebruiken, bijvoorbeeld, de dekking metrics als een doelwit voor de software development team. Cem Kaner en Walter P. Bond lood "Software Engineering Metrics - Wat doen ze meten en hoe weten we dat?" [3] dat dergelijk gedrag te knoeien en slim af de statistieken resultaten. Bijvoorbeeld kan unit testen doelgericht zodat de dekkingspercentage wordt bereikt creëren. Ze zijn dan meestal sterk gebonden aan de applicatie logica, dus het is moeilijk achteraf om de code te wijzigen zonder het breken van de test. In plaats daarvan, stellen de auteurs om te investeren in de opleiding van ontwikkelaars en werken met hen direct aan de code.

Genoeg is niet genoeg

Zodra een netwerk van geautomatiseerde tests is gepositioneerd langs de continue integratie, is slechts een kleine stap naar gereden (TDD) ontwikkeling. De ontwikkeling cyclus begint met een kleine, niet-test: Voert een test niet net zo veel productiecode moeten worden geschreven, zodat het met succes te voltooien kan zijn. Vervolgens zijn redundantie in de code verminderen met refactoring (fig. 3). De meeste teams zich niet realiseren is dat dit ook in de test automatisering van softwareontwikkeling, waar de test code is schoon, omdat het anders geconfronteerd met snel het probleem van slecht onderhoudbaar testen.

Met test-driven ontwikkeling op lange termijn onderhoudbaar getest code te creëren (Fig. 3).Met test-driven ontwikkeling op lange termijn onderhoudbaar getest code te creëren (Fig. 3).


Deze aanpak in eerste instantie lijkt dogmatisch, maar om te leren test-driven development, heeft hij bewust op deze manier gekozen. Als beveiliging treedt na enige tijd in bepaalde gebieden kan ook proberen te implementeren in grotere stappen. Het moet echter duidelijk zijn dat een te grote stap brengt het risico te verzanden, en de test zal niet snel terugkomen up and running. Als dit gebeurt, moet het probleem worden opgesplitst in kleinere eenheden en opgelost zo.

Beschrijving voorbeelden

Een nieuwe trend in de ontwikkeling van methoden gaat momenteel richting Acceptancetest-driven development (ATDD) en-Behavior-driven development (BDD). In de kern, BDD is de vereniging van TDD, ATDD, domain-driven design, Outside-In Ontwikkeling en gebruik van een alomtegenwoordige taal als specificatie workshops gecreëerd door instrumenten. In de praktijk ATDD helaas, wordt vaak verward met BDD.

ATDD is ontworpen om de juiste functies te helpen zich te ontwikkelen (Fig. 4).ATDD is ontworpen om de juiste functies te helpen zich te ontwikkelen (Fig. 4).

In ATDD (zie [4]). Het is een maatregel te geven correct mogelijke uitvoering van de code (fig. 4). Het werk begint hier vroeg, zelfs terwijl de werkelijke behoeften worden gedefinieerd. Vertegenwoordigers van de ontwikkeling en het testteam zal samen met de klant te komen en te identificeren acceptatiecriteria voor toekomstige functies (afb. 5). Hier, testers en programmeurs ([5] te zien.) Een gemeenschappelijk inzicht in de behoeften van de klant, met een voldoende grote ruimte voor verschillende ontwerpbeslissingen blijft open. Dus programmeurs en testers kan een oplossing voor het probleem van de klant, waarmee zij tevreden op de lange termijn kan vinden.

Het hele team van de klanten, programmeurs en testers moeten een gemeenschappelijk begrip van de functies als gevolg hebben (Fig. 5) zijn.Het hele team van de klanten, programmeurs en testers moeten een gemeenschappelijk begrip van de functies als gevolg hebben (Fig. 5) zijn.


Op basis van de bovenstaande acceptatiecriteria, de ontwikkeling team in eerste instantie bezig met beschrijvende voorbeelden ze voordat de functie bewegen, blijven echter te verfijnen. Voorbeelden duwen beknopt en nauwkeurig wat wordt bereikt door de functies. Ze bewegen zich op een niveau met de business requirements en mag niets te maken met implementatie details zoals de positie van de GUI-elementen.

Parallel met de uitvoering van de taken van het team werkt dan de voorbeelden te automatiseren. Sommige ontwikkelaars groepen zijn zelfs in staat om de business logica van de business cases op basis van hun domein code te integreren. In de literatuur spreekt over Outside-In ontwikkeling: de ontwikkeling is het gevolg van buiten naar binnen. In dit geval slechts zoveel domein code en applicatie logica is ontworpen en geschreven als absoluut noodzakelijk is. In de praktijk zijn er een paar teams die een dergelijk niveau van volwassenheid hebben bereikt. De voordelen van deze aanpak zijn echter niet uit de hand te worden ontslagen: Kan vóór de ontwikkeling blijkt dat de voorgestelde toepassing zal uitvoeren wat ze willen, dan is de flexibiliteit om veranderingen in de eisen die de lange termijn.

Total TDD en ATDD vormen een symbiose met die een hoge mate kan worden bereikt op testautomatisering. Aldus kan door ATDD een verzoek afdekking bijna 100 procent, terwijl bij TDD 100 procent code coverage mogelijk. Gecombineerde TDD zorgt er dus voor dat de code correct was, maar ATDD ervoor dat het de juiste code.