Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Test-Drevet Utvikling Bowling med

Liknende presentasjoner


Presentasjon om: "Test-Drevet Utvikling Bowling med"— Utskrift av presentasjonen:

1 Test-Drevet Utvikling Bowling med http://extremeprogramming.no http://extremeprogramming.no

2 {trond,johannes}@extremeprogramming.no Hvem er vi •Trond Pedersen –Seniorkonsulent, ObjectWare –Medlem av styret i extremeprogramming.no –trond@extremeprogramming.notrond@extremeprogramming.no •Johannes Brodwall –Softwarearkitekt for BBS’s fornyelsesprogram –Medlem av styret extremeprogramming.no –Organisator av http://xp.meetup.comhttp://xp.meetup.com –johannes@extremeprogramming.nojohannes@extremeprogramming.no

3 {trond,johannes}@extremeprogramming.no Extreme Programming & TDD •Foredraget er en introduksjon til TDD •TDD er en teknikk i XP •TDD står også utmerket på egen hånd eller som tillegg til din favorittmetodikk •TDD: –Write a test, make it pass

4 {trond,johannes}@extremeprogramming.no JUnit & Eclipse •JUnit – testrammeverk for Java •NUnit – testrammeverk for.NET •Eclipse har utmerket støtte for JUnit, men det har også for eksempel IntelliJ •TDD: –Write a test, make it pass!

5 {trond,johannes}@extremeprogramming.no PRAKTISK DEMO

6 {trond,johannes}@extremeprogramming.no Agile software development •Effektive teknikker til daglig bruk: –Test-driven development –Pair programming –Continuous Integration –Stand-up meetings

7 {trond,johannes}@extremeprogramming.no DUnit – TDD i Delphi unit Project1TestCases; interface uses TestFrameWork; type TTestCaseFirst = class(TTestCase) published procedure TestFirst; end; implementation procedure TTestCaseFirst.TestFirst; begin Check(1 + 1 = 2, 'Catastrophic arithmetic failure!'); end; initialization TestFramework.RegisterTest(TTestCaseFi rst.Suite); end.

8 {trond,johannes}@extremeprogramming.no Demo: Simpel GUI-test

9 {trond,johannes}@extremeprogramming.no Demo: Simpel GUI-test private JFrameOperator frame; private JLabelOperator resultLabel; public void testNoProducts() { frame = new JFrameOperator( new NameComponentChooser("CheckOutRegister")); resultLabel = new JLabelOperator( frame, new NameComponentChooser("resultLabel")); assertEquals("0.00", resultLabel.getText()); }

10 {trond,johannes}@extremeprogramming.no Advanced: Testing GUI with DAO mocks

11 {trond,johannes}@extremeprogramming.no Å teste GUI med Mock backend public void testAddProducts() { daoMock.getByName("stockings"); daoControl.setReturnValue( new ProductDescription("stockings", 100)); daoControl.replay(); productNameField.enterText("stockings"); enterButton.push(); assertEquals("100.00", resultLabel.getText()); daoControl.verify(); } Kodeeksempel

12 {trond,johannes}@extremeprogramming.no Oppsummering •Hva er utfordringene? –Hva taper du? –Hva er vanskelig med TDD? •Hva vinner du? –Endringer –Innfallsvinkel –Design –Trygghet •Veien videre Skriv testen først!

13 Spørsmål?

14 {trond,johannes}@extremeprogramming.no Mer info •Original Bowling Artikkel: –http://c2.com/cgi/wiki?ObjectMentorBowlingGamehttp://c2.com/cgi/wiki?ObjectMentorBowlingGame –Robert Martins bok ”Agile Software Development” •Ytterligere TDD/Bowling Artikler (i C#): –http://xprogramming.com/xpmag/http://xprogramming.com/xpmag/ •Bøker –Test-Driven Development: By Example (Kent Beck) –Test-Driven Development: A Practical Guide (Dave Astels) •eXtremeProgramming.no har kildekoden til eksempelet, og du kan spørre oss spørsmål på forumet vårteXtremeProgramming.no •http://xp.meetup.com/13/http://xp.meetup.com/13/ •http://dunit.sourceforge.nethttp://dunit.sourceforge.net


Laste ned ppt "Test-Drevet Utvikling Bowling med"

Liknende presentasjoner


Annonser fra Google