TechEd 2008 sai külastatud ka Roy Osherove‘i ettekannet teemal “Understanding Why You Need Test Driven Development and More“, mis oli “TDD by Example“. Selle juures mu jaoks kõige huvitavam oli, mida on võimalik TDD all silmas pidada. Ilmselgelt tuleb endale see kõigepealt selgeks teha, sest ilma selleta on kuidagi väär öelda, et teen TDD.
Test Driven Development
Esimine neist võiks koosneda sellest, et kirjutame testid enne toote koodi ja jälgime TDD rütmi (punane > roheline > ümberstruktureerimine). Varajasemas postituses mainisin, et TDD ja TFD (Test First Development) ei ole päris sama ning see tekkis sellest, et mu jaoks ei ole TDD ainult see mida siin defineeritud.
Test Oriented Development
Paljud mainivad, et kui neil on olemas komponenditestid või integratsioonitestid, et nad teevad TDD. Siiski on see narr arvamus ja õigem oleks öelda, et kirjutatakse teste (peamiselt pärast tootekoodi kirjutamist). Ka see on väärtuslik lähenemine, vähemalt alguses.
Test Driven Design
See on siis see, mida paljud suuremad fanaatikud TDD-st arvavad. Nende jaoks on testide kirjutamine enne koodi täiesti loomulik nähtus ning nendega määratakse nõuded toote koodile. Selle puhul kujuneb disain testide loomise käigus ja eelnevalt sellega oluliselt ei tegelda. Nii mõnedki arvavad, et see on halb lähenemine, kuid mulle tundub see rohkem oskamatus korralikku struktuuri luua. Selle puhul on oluline tunda objekt-orienteeritud printsiipe (lisaks testimise raamistikkudele on ka võltsitud objektide raamistikud arvamusega – RhinoMocks‘i puhul tuleb printsiipe teada, et paremini testida, TypeMock‘i abiga on ka võimalik Sharepoint‘i testida ehk disain pole oluline) ja disaini mustreid. Ilma nendeta kaob mõistlikus kiiresti.
Test Driven Development & Design
Selle all võiks mõelda põimumist esimese ja kolmanda vahel ning võib-olla rohkem ettevalmistatud disainiga. Kui eelmises oli disaini eelnevalt tegemata ja testidega loodi seda, siis siin võiks olla disain varem vabamalt välja joonistatud olla (siiski testid võivad seda disaini ümber kujundada). See võiks olla neist ilmselt kõige praktilisem lähenemisnurk.
TDD tähendus oleneb küllaltki palju, mida testidega soovitakse saavutada (omada teste projektis, muuta testid nõueteks, testide abil kujundada tarkvara disaini vms).
Loe veel sarnastel teemadel:
- Kõike, mida sa omad, ei ole sul vaja, 2. aprill
- Testid on ilusad, 13. märts
- xUnit Test Patterns, 14. jaanuar
- Iluvõtted testidele, 17. mai
- Testide haldamine, 18. august
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
