TDD og ATDD

innhold
  1. Kvalitetssikring balansert
  2. testautomatisering
  3. TDD og ATDD
  4. Konklusjon
  5. leste på en side

Med statiske verktøy kodeanalyse som FindBugs ofte, FXCop eller CheckStyle benyttes for å kontrollere koden mot applikasjonsuavhengig skyld. Udekket unntak innlysende nullpeker referanser og ubrukt kode fragmenter kan således finne spesiell. Generelt bør imidlertid ikke være begrenset til statisk kodeanalyse, men utfyller beregningene av pair programmering. Denne kunnskapsdeling er også lenge støttet laget og Collective Kode Eierskap tillater. Hvis noen programmerer i teamet er i stand til å endre noen annen kode, og skaper en helt ny måte å jobbe på, fordi ingen lenger Peters klassifiseringen ikke lenger gå på en gang, men det er koden for alle gruppemedlemmene.

Som med alle beregninger, men å huske på at det ikke handler om å måle individuelle prestasjoner av lagets medlemmer eller å bruke, for eksempel dekning beregninger som et mål for programvareutvikling team. Cem Kaner og Walter P. Bond bly "Software Engineering Metrics - Hva gjør de måler og hvordan vi vet?" [3] at en slik oppførsel for manipulering og overliste de beregninger resultater. For eksempel kan enhetstesting skape en målrettet måte slik at prosent dekning oppnås. De er da vanligvis sterkt bundet til søknaden logikk, så det er vanskelig i ettertid å endre koden uten å bryte testen. I stedet forfatterne foreslår å investere i opplæring av utviklere og arbeide med dem direkte til koden.

Nok er nok

Når et nettverk av automatiserte tester er plassert sammen med den kontinuerlige integrasjon, er det bare et lite skritt til test-drevet (TDD) utvikling. Utviklingen syklus starter med en liten, sviktende test: Kjører en test ikke like mye produksjon koden skal være skrevet slik at det kan være vellykket fullført. Deretter er redundans i koden for å redusere med reproduksjon (fig. 3). De fleste lagene ikke innser er at dette er også i testautomatisering til programvareutvikling der test kode er rent, som det er ellers raskt møte problemet med dårlige vedlikeholde tester.

Med testdrevet utvikling på lengre sikt å vedlikeholde, testet kode for å bli opprettet (fig. 3).Med testdrevet utvikling på lengre sikt å vedlikeholde, testet kode for å bli opprettet (fig. 3).


Denne tilnærmingen utgangspunktet vises dogmatisk, men å lære testdrevet utvikling, har han bevisst valgt denne måten. Når sikkerhet oppstår etter en viss tid i visse områder kan også prøve å gjennomføre i større trinn. Imidlertid bør det være klart at for stort et skritt innebærer risiko for å bli overbelastes, og testen vil ikke komme raskt i gang igjen. Hvis dette skjer, bør problemet bli brutt ned i mindre enheter og løses på den måten.

Spesifikasjon med eksempler

En ny trend i utviklingen av metoder for tiden går mot Acceptancetest drevet utvikling (ATDD) og oppførelsdrevet utvikling (BDD). I kjernen, er BDD foreningen av TDD, ATDD, domene-drevet design, Utenfor-utvikling og anvendelse av en allestedsnærværende språk som verksteder spesifikasjons skapt av instrumenter. I praksis ATDD dessverre er ofte forveksles med BDD.

ATDD er utviklet for å hjelpe de riktige funksjonene for å utvikle (Fig. 4).ATDD er utviklet for å hjelpe de riktige funksjonene for å utvikle (Fig. 4).

I ATDD (se [4].) Det er et mål å implementere krav korrekt som mulig i koden (fig. 4). Arbeidet starter her tidlig, selv mens de faktiske kravene er definert. Representanter fra utvikling og test team vil komme sammen med kunden og identifisere akseptkriterier for fremtidige funksjoner (fig. 5). Her testere og programmerere ([5] se.) En felles forståelse av kundens behov, med et tilstrekkelig stort rom for ulike design beslutninger forblir åpent. Så programmerere og testere kan finne en løsning på problemet med kunden, som det kan være fornøyd på lang sikt.

Hele team av kunder, programmerere og testere bør være en felles forståelse av funksjonene som resulterer ha (Fig. 5).Hele team av kunder, programmerere og testere bør være en felles forståelse av funksjonene som resulterer ha (Fig. 5).


Basert på ovennevnte akseptkriterier, utviklingsteamet i utgangspunktet jobber med beskrivende eksempler de før du flytter funksjonen imidlertid fortsette å avgrense. Eksempler skyve den presist og nøyaktig hva som skal oppnås gjennom funksjonene. De beveger seg på nivå med de forretningsmessige krav og bør ha noe å gjøre med implementering detaljer som posisjonen GUI elementer.

Parallelt med gjennomføringen av funksjonene til teamet jobber så å automat eksemplene. Noen utviklere grupper er selv i stand til å integrere forretningslogikk av virksomheten tilfeller basert på deres domene kode. Litteraturen snakker om Outside-In Development: Utviklingen er drevet fra utsiden til innsiden. I dette tilfellet bare så mye domenekode og applikasjonslogikk er utformet og skrevet som er absolutt nødvendig. Praktisk talt, er det noen lag som har nådd et slikt nivå av modenhet. Fordelene med denne tilnærmingen er imidlertid ikke å bli avvist ut av hånden: Kan være før utviklingen viser at den foreslåtte programmet vil kjøre hva de vil, så fleksibilitet til endringer i kravene lang sikt.

Total TDD og ATDD danner et symbiose med hvilken en høy grad kan oppnås på test automatisering. Det er således mulig ved ATDD en anmodning deksel nær 100 prosent, mens med TDD 100 prosent koden dekning er mulig. Kombinert TDD dermed sikrer også at koden er riktig, mens ATDD sørger for at det er den riktige kode.