• 1
  • 2
2011-07-23, 12:29
  #13
Medlem
The Barrs avatar
Citat:
Ursprungligen postat av blueCommand
Jag kan rekommendera boken http://www.amazon.com/Test-Driven-De.../dp/0321146530 - den gr igenom bra scenarion och hur TDD bst appliceras.

Tack fr tipset! Blir nog ett kp dr.

Citat:
Ursprungligen postat av vhe
Tyvrr inte. Infrandet av TDD p vr arbetsplats hanterades till stor del av tv personer, vr extremt agile/TDD-entusiastiske projektledare samt en av utvecklarna med rtt gedigen TDD-erfarenhet i ett distribuerat open source-projekt. Inga bcker eller tutorials, bara de tv som styrde upp nr resten av oss flummade ivg.
Och jag fr nog erknna att det inte var ltt. Frsta gngen nn sa till mig "skriv nu ett test frst", s satt jag bara och stirrade p skrmen och undrade "vad fan gr jag nu?" Att skriva bra och relevanta tester r en frdighet som krver trning, precis som allt annat.

Dremot r ju boken blueCommand lnkade r klassad som lite av en auktoritet inom omrdet (ven om jag pinsamt nog d inte lst den), s den r skert en bra start. Men det bsta sttet r nog garanterat om man kan se till att f tillgng till en person med TDD-erfarenhet (grna inom en milj som tminstone pminner om ens egna) som kan lra en via parprogrammering.

Den TDD jag har erfarenhet av fokuserar just p testningen i sig som ett stt att driva utvecklingen (som namnet antyder), inte att kvalitetsskra produkten. Hur r det i ditt fall? Anvnder ni TDD bara som ett stt att gra "test-after" fre och garantera att allt r testat, eller r det en mer central del i hur koden ser ut?

Som jag upplever det s frloras sjlva meningen med TDD om man modellerar sitt system p frhand.

Blogg som tar upp skillnaden mellan TDD och TAD som representerar den syn p systemutveckling som jag inte knner mig attraherad av:
http://stephenwalther.com/blog/archi...velopment.aspx
Kommentarerna r speciellt intressanta.
Citera
2011-07-23, 15:27
  #14
Medlem
Jag skulle sga att TDD i sjlva "skapandeprocessen", inte r ngonting som kommer pverka din arkitektur nmnvrt, men kommer antagligen hja kvaliten p din kod. Fr att enkelt kunna testa och skapa snygga testklasser, s kommer jag bli tvungen att bryta ut allt till sm, enkla metoder som bara gr en sak.

Med 100 snyggt namngivna test, kopplad till min slutgiltiga kod, s kommer det innebra att alla som ngonsin kommer g in i min kod och ndra ngonting, aldrig kommer kunna frstra ngon av den funktionalitet jag skapat utan att det brjar "smlla" i en massa tester. S klpare kommer inte kunna checka in kod som skapar buggar i den funktionalitet jag byggt upp.
Citera
2011-07-23, 20:16
  #15
Medlem
The Barrs avatar
Citat:
Ursprungligen postat av Drubas
Jag skulle sga att TDD i sjlva "skapandeprocessen", inte r ngonting som kommer pverka din arkitektur nmnvrt, men kommer antagligen hja kvaliten p din kod. Fr att enkelt kunna testa och skapa snygga testklasser, s kommer jag bli tvungen att bryta ut allt till sm, enkla metoder som bara gr en sak.

Med 100 snyggt namngivna test, kopplad till min slutgiltiga kod, s kommer det innebra att alla som ngonsin kommer g in i min kod och ndra ngonting, aldrig kommer kunna frstra ngon av den funktionalitet jag skapat utan att det brjar "smlla" i en massa tester. S klpare kommer inte kunna checka in kod som skapar buggar i den funktionalitet jag byggt upp.

Jag ser inte att du argumenterar s mycket fr TDD utan mer testning i allmnhet. Vad r det i TDD, den version som du str fr, som inte inte kan uppns med "test after" eller rent av "test after before"?

Och enhetstestning i sig kan nog vara ett bra incitament fr att skriva enkla metoder som bara lser en specifik sak, men det klarar man nog utmrkt nd med lite utbildning och/eller sunt frnuft.
__________________
Senast redigerad av The Barr 2011-07-23 kl. 20:25.
Citera
2011-07-23, 21:14
  #16
Medlem
Weeblies avatar
TDD fungerar enligt min erfarenhet smre ju strre projektet r och ju tajtare schema man har. Fokusen fr TDD ligger alltfr mycket p enhetstesterna, medan de svrfixade buggarna strcker sig ver flera komponenter (d.v.s. r i ngon mening integrationsbuggar).

Fr att maximera effektiviteten i sdana projekt s tycker jag att man ska prioritera:
  • Vlskrivna designspecifikationer med tydligt spikade API:n (design by contract).
  • Defensiv programmering.
  • Dedikerat folk som enbart skriver och underhller komponent- och nde-till-nde tester.

Men det r bara min egen sikt.
Citera
2011-07-24, 01:13
  #17
Medlem
Sane?s avatar
Citat:
Ursprungligen postat av The Barr
Jag ser inte att du argumenterar s mycket fr TDD utan mer testning i allmnhet. Vad r det i TDD, den version som du str fr, som inte inte kan uppns med "test after" eller rent av "test after before"?

Och enhetstestning i sig kan nog vara ett bra incitament fr att skriva enkla metoder som bara lser en specifik sak, men det klarar man nog utmrkt nd med lite utbildning och/eller sunt frnuft.
Vinsten man fr av TAD r aningen robustare kod, till priset av lngre utvecklingstid. TAD tenderar att testa implementationen av kod och inte kodens "kontrakt", vilket gr koden jobbigare att refaktorisera. Genomkasst allts.
TDD tar lngre tid stt koda n att inte testa alls, det tar dock kortare tid n TAD eftersom testerna snabbar upp utvecklingen av produktionskoden. Resultatet blir mer robust kod, testad p korrekt stt (frenklar frstelse och refaktorisering). Den lilla extratid som krvs fr TDD r frsvarbar.
Citera
2011-07-24, 09:09
  #18
Medlem
The Barrs avatar
Citat:
Ursprungligen postat av Sane?
Vinsten man fr av TAD r aningen robustare kod, till priset av lngre utvecklingstid. TAD tenderar att testa implementationen av kod och inte kodens "kontrakt", vilket gr koden jobbigare att refaktorisera. Genomkasst allts.
TDD tar lngre tid stt koda n att inte testa alls, det tar dock kortare tid n TAD eftersom testerna snabbar upp utvecklingen av produktionskoden. Resultatet blir mer robust kod, testad p korrekt stt (frenklar frstelse och refaktorisering). Den lilla extratid som krvs fr TDD r frsvarbar.

Varfr skulle TAD testa koden p ett annat stt n TDD? Man ser vl till att metoderna gr det de ska, misslyckas man med det r man vl bara en kass testare?

Vad r det som gr att TDD snabbar upp utvecklingen?

Fr egen del s r jag speciellt frtjust i modelleringen av systemet jag utvecklar, frutom att jag tycker att det mycket roligare och utvecklande att arbeta med aritekturen n att implementera, s har jag mrkt att ju strre del av systemet som jag modellerar, desto enklare och snabbare gr det att implementera allt och f det att fungera.

Och detta r ju inte alls kompatibelt med TDD, dr man uttryckligen inte skall modellera systemet p frhand, utan dr man iterativt ska hitta p och uppfylla lite tester som man tror representerar en funktionell del i systemet som man behver. D kan man ju tnka sig att systemet blir ett arkitektuellt lapptcke.

Vi kan vl vara verens om att modelleringsdriven utveckling inte r kompatibel med testdriven utveckling? Eller r bloggen jag lnkade till ovanfr helt fel ute?
__________________
Senast redigerad av The Barr 2011-07-24 kl. 09:14.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in