Você está na página 1de 4

IntroductiontoTestDrivenDevelopmentin Java

Atwodaytrainingcourse DaveNicolettedavenicolette@gmail.com Version7

CourseObjective
Gainabasicunderstandingoftestdrivendevelopment(TDD)andpracticeapplyingthetechnique usingtheJavalanguage.

Level
Introductory

Prerequisites
WorkingknowledgeofJava Curiosity

Technologies
Java1.6 Eclipse3.5 JUnit4.5 VariousmockinglibrariesandotherJavapackagesthatsupportunittesting.

Approach
Thepedagogicalapproachisalmostentirelyhandsonandexperiential,supplementedwith demonstrationsandasmallamountoflecture.

Outline
DuetotheexperientialapproachoftheclassandthefactthatTDDisbestlearnedthroughdirect practice,specifictopicsarenotpresentedindiscretemodules.Instead,informationisinterwoven throughoutthehandsonactivitiesoftheclass.Thegeneraloutlineisasfollows: Copyright2011byDavidNicolette

IntroductiontoTestDrivenDevelopmentinJava(2daycourse)

Day1
8:308:45Introductionandlogistics IntroductionWhoareyou,whoamI,whyarewehere? LogisticsClassstart/stoptimes,lunchtime,breaktimes,locationofrestrooms,etc.

8:459:00WhatisTestDrivenDevelopment? HowdoesTDDcomparewithunittesting? WheredidTDDcomefrom? Whatarethebenefits? CanTDDbeappliedtolegacycode? HowhasTDDevolvedsinceitfirstbecamepopular,andwhatarecurrent/futuretrends?

9:0010:30Randorisession1 DescriptionoftheRandoriformat IntroductiontotheTDDcycle DevelopmentofasampleapplicationbasedonasetofUserStories.Experientialdiscoveryof basicelementsofTDD,suchasbuildingupthecodeinsmallincrements,frequentcheckin, understandingtheappropriatescopeofeachtestcase,definingmeaningfultestcases,beginning toidentifycodesmells,andbasicrefactoring. Retrospective

10:3010:45Break 10:4512:00Randorisession2 Continuationofdevelopmentofthesampleapplication,withcontinuingexperientialdiscovery ofbasicelementsandimprovementofskillsthroughguideddirectapplication. Retrospective

12:0013:00Lunch 13:0013:30Testisolation ExplanationanddemonstrationoftestisolationandtechniquestoachieveitinJava. Copyright2011byDavidNicolette

IntroductiontoTestDrivenDevelopmentinJava(2daycourse) 13:3015:00Randorisession3 Continuationofdevelopmentofthesampleapplication,buildingonwhathasbeenlearnedin thefirsttwoRandorisessions. Retrospective

15:0015:15Break 15:1516:30Randorisession4 Continuationofworkonthesampleapplicationasfarastimeallows.

16:3017:00Wrapup Discussionoflessonslearnedinthefirstday

Day2
8:309:00Unittestingstylesandtools ExplanationanddemonstrationofthreeunittestingstylesusingJavabasedtools:Thebasic assertEqualsstyle,theassertThatstyleusingtheHamcrestmatchers,andtheBehavior DrivenDevelopment(BDD)styleusingJBehave.

9:0010:30Randorisession5 UsingTDDtomakechangestoanexistingcodebase(adifferentsampleapplication) Retrospective

10:3010:45Break 10:4512:00Randorisession6 UsingTDDtofixreporteddefectsinanexistingcodebase Retrospective

12:001:00Lunch

Copyright2011byDavidNicolette

IntroductiontoTestDrivenDevelopmentinJava(2daycourse) 13:0014:30Randorisession7 Frameworks,generatedcode,andseparationofconcerns Testdrivingcodethatusesaframework(onethatyouuse)

14:3014:45Break 14:4516:30Randorisession8 ContinuationofRandorisession7.

4:154:45Wrapup Discussionoflessonslearnedonthesecondday. HowtheconceptsofTDDareappliedtoacceptancetestdrivendevelopment(ATDD), executablerequirements,analysisandcustomercollaboration. HowthevalueofTDDisenhancedwhencombinedwithotheragilesoftwaredevelopment practices RetrospectiveDidweachieveourlearninggoals? Courseevaluation Recommendedbooksandwebsitesforfurtherinformation

Copyright2011byDavidNicolette

Você também pode gostar