Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
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
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.