Workshop FitNesse & Selenium Waardevolle spelers bij Agile Ontwikkeling 1

  • View
    223

  • Download
    3

Embed Size (px)

Text of Workshop FitNesse & Selenium Waardevolle spelers bij Agile Ontwikkeling 1

  • Dia 1
  • Workshop FitNesse & Selenium Waardevolle spelers bij Agile Ontwikkeling 1
  • Dia 2
  • Wie ben ik? Wat doe ik? Gijs Sijpesteijn Consultant ICT In dienst bij Ordina sinds 2006 Sinds 2007 bezig met Agile Ontwikkeling Agile projecten bij Microbais, SNS en Rabobank Cursus: Agile testen voor Java Ontwikkelaars 2
  • Dia 3
  • Onderwerpen Introductie van FitNesse Oefenen met FitNesse Introductie van Selenium Oefenen met Selenium (ism FitNesse) 3
  • Dia 4
  • FitNesse Stukje achtergrond FitNesse is ontwikkeld onder aanvoering van Robert C. Martin FitNesse was gebouwd als uitbreiding op FIT FIT zorgt voor een gemeenschappelijke taal en maakt de testcases voor alle disciplines makkelijk begrijpbaar FIT interpreteert HTML paginas als testcases FitNesse genereert HTML paginas aan de hand van WIKI paginas 4
  • Dia 5
  • 5 FitNesse Architectuur
  • Dia 6
  • Fixture naamUitleg Decision TableNoteer de input -en output waarden voor de test. Output waarden kolommen worden aangegeven met een '?' achter variabele naam Query TableAlle kolommen worden als output gezien. Alle rijen worden gecontroleerd tegen de uitkomst van de query. VB een lijst van klanten. Subset Query TableZelfde als een Query table, maar nu kan je aangeven welke subset je verwacht in de query. VB een of meer klanten uit een lijst van klanten Ordered Query TableZelfde als een Query table, maar nu wil je de volgorde van de verschillende elementen ook controleren Script TableElke rij vormt een script. ImportVergelijkbaar met java import, namespace. Table Kan alles zijn wat je wilt. Fixture heeft een method: doTable. CommentVoeg commentaar toe. Scenario TableKan worden aangeroepen vanuit een Decision en een Script tabel Library TableDefinieer een fixture die voor alle onderliggende paginas beschikbaar is. Generieke delen kan je hier in kwijt. Vb schonen database. FitNesse Fixture Library
  • Dia 7
  • FitNesse Wat is het? FitNesse is a software development collaboration tool FitNesse is een software testing tool. FitNesse bestaat uit: Webserver(tje) Wiki (om testpaginas op te stellen) 7
  • Dia 8
  • FitNesse Oefening 1 FitNesse test schrijven 8 Opdrachten: FitNesse opstarten. Werken met FitNesse interface. FitNesse test opstellen in Wiki notatie. Business methode testen mbv FitNesse test.
  • Dia 9
  • Download: http://www.fitnesse.org (nu te vinden in C:\WorkshopFitNesse\ ) Huidige versie: 20110104 Start commando: java -jar fitnesse.jar Belangrijkste opties: Voor de workshop, gebruik de link op het bureaublad: start_fitnesse.bat om FitNesse te starten. (NOTE: Dosbox niet afsluiten. Dan stopt FitNesse) 9 FitNesse Opstarten.-d /path/to/fitNesse/root 80-p DefaultOptie
  • Dia 10
  • 10 FitNesse Opstart process Na het opstarten van start_fitnesse.bat opent er een dosbox met de hiernaast getoonde output. We zien hier o.a. poort nummer (9090) waarop FitNesse bereikbaar is.
  • Dia 11
  • 11 FitNesse Interface FitNesse is gestart en we kunnen de webserver (=FitNesse) benaderen op url: http://localhost:9090/ en zien dan de homepage zoals hiernaast afgebeeld. Gebruik de 'FitNesse' link op het bureaublad.
  • Dia 12
  • FitNesse Onze eerste FitNesse test. Wat gaan we testen? 12 Een requirement voor ons SUT (System under Test), is het optellen van twee getallen en het resultaat retourneren. We willen deze functionaliteit gaan testen m.b.v. een FitNesse test. Aanwezig Deze wiki-pagina gaan wij nu schrijven. De business methode en fixture zijn reeds aanwezig. Wij schrijven voor deze oefening enkel de wiki-pagina.
  • Dia 13
  • FitNesse OptellenTest 13 De test voor de business methode zien we hiernaast afgebeeld. Naam van fixture In- en output definitie Test gevallen
  • Dia 14
  • FitNesse OptellenTest het verwachte testresultaat 14 Na het uitvoeren van de test door FitNesse, ver- wachten we het volgende test resultaat.
  • Dia 15
  • Gebruik de 'add child' link naast de wiki pagina naam. Voorwaarde: Namen van FitNesse test paginas moeten wikiwords zijn. 15 FitNesse Testpaginas toevoegen aan FitNesse
  • Dia 16
  • Wiki-words zijn woorden die voldoen aan volgende regels: Begint met n of meerdere hoofdletter. Gevolgd door n of meerdere kleine letters of getallen. Gevolgd door n of meerdere hoofdletter. 16 FitNesse Wiki Woord Voorbeelden: BobMartin is een wiki woord. SalesReport1972 is een wiki woord. USAforEver niet, omdat er drie kapitalen elkaar opvolgen. Usa1776 niet, omdat het woord maar een kapitaal heeft. ItDoesNotMatterHowManyCapitalsThereAreYouCanHave1000IfYouLike
  • Dia 17
  • 17 FitNesse OptellenTest pagina toevoegen. Toevoegen van de OptellenTest pagina. Klik op de 'add child' link naast FrontPage. Kies voor 'Test' als type pagina. Name = OptellenTest Klik op 'Add'
  • Dia 18
  • 18 FitNesse De OptellenTest pagina toevoegen De pagina is aangemaakt, maar nog niet zichtbaar op de homepage. Op de homepage, klik 'Edit' in het menu rechts. Voeg onderaan de pagina toe: !contents Klik op de 'Save' button.
  • Dia 19
  • 19 FitNesse De OptellenTest pagina opstellen Door op de link 'OptellenTest' te klikken, komen we op de nieuwe wiki-pagina. Klik op 'Edit' in het menu rechts en we komen wederom in de edit mode. We kunnen nu de test in wiki notatie opstellen. Verwijder '!contents' en voeg de test toe. Klik op de 'Save' button.
  • Dia 20
  • 20 FitNesse De OptellenTest pagina opstellen Je pagina moet er nu zo uit zien. Onze pagina is nog niet volledig. We hebben enkel de requirements van de test ingevoerd. We moeten FitNesse nu extra informatie geven om de test te kunnen uitvoeren tegen onze SUT.
  • Dia 21
  • 21 FitNesse Testpagina van extra informatie voorzien. We moeten FitNesse vertellen welk test systeem we gebruiken. We moeten FitNesse vertellen waar onze fixture code classes staan. FIT Slim
  • Dia 22
  • 22 FitNesse Testpagina van extra informatie voorzien. Klik op 'Edit' in het menu. Voeg toe: !define TEST_SYSTEM {slim} Voeg toe: !path C:/WorkshopFitNesse/target/classes/ Voeg het java package toe aan de Optellen fixture, wijzig | Optellen | in | nl.ordina.workshopfitnesse.fixtures.Optellen | Klik op de 'Save' button
  • Dia 23
  • 23 FitNesse De volledige testpagina. Je 'OptellenTest' pagina ziet er nu zo uit en is volledig voor FitNesse om de test uit te voeren. Klik nu op 'Test' in het menu.
  • Dia 24
  • FitNesse OptellenTest - resultaat 24 Na het uitvoeren van de test door FitNesse, ver- wachten we het volgende test resultaat.
  • Dia 25
  • 25 FitNesse Gebruik van import fixture Het is extra werk om telkens het java package op te nemen. We kunnen hiervoor de build-in fixture Import' gebruiken.
  • Dia 26
  • 26 FitNesse Gebruik van import fixture Klik op 'Edit' in het menu en wijzig de wiki tekst in het volgende: Java package is verdwenen en verplaatst naar de import fixture. Klik na de aanpassingen op de 'Save' button.
  • Dia 27
  • 27 FitNesse Gebruik van import fixture Het resultaat zal eruit zien zoals de afbeelding hiernaast.
  • Dia 28
  • FitNesse Special pages O.a.: SetUp & TearDown Subwikis die respectievelijk voor en na de test worden uitgevoerd. SuiteSetUp & SuiteTearDown Subwikis die respectievelijk voor en na de suite worden uitgevoerd. root Wiki pagina waarin globale variabelen kunnen worden gezet. 28
  • Dia 29
  • 29 FitNesse Optimalizeren van FitNesse. Opdrachten: !define TEST_SYSTEM {slim} verplaatsen naar 'root' wikipagina. !path c:/workshopfitnesse/target/classes verplaatsen naar 'root' wikipagina. Toevoegen van 'SetUp' wiki-pagina. Verplaatsen van Import fixture uit OptellenTest naar 'SetUp' wiki-pagina.
  • Dia 30
  • 30 FitNesse Optimalizeren van FitNesse - root pagina. Link onderaan pagina opent de 'root' wiki pagina. Klik op de link.
  • Dia 31
  • 31 FitNesse Optimalizeren van FitNesse - root pagina. Klik op 'Edit' in het menu. Voeg de twee onderstaande regels toe. Klik op de 'Save' button.
  • Dia 32
  • 32 FitNesse Optimalizeren van FitNesse - root pagina. De 'root' wiki pagina ziet er nu zo uit. De informatie geldt nu voor elke wiki test pagina.
  • Dia 33
  • 33 FitNesse Optimalizeren van FitNesse Toevoegen 'SetUp'. Klik op het logo om naar de homepagina te navigeren. Klik op de 'add child' link naast FrontPage. Kies voor 'Normal' als type pagina. Name = SetUp Klik op 'Add'
  • Dia 34
  • 34 FitNesse Optimalizeren van FitNesse 'SetUp' bewerken. Klik op de 'SetUp' link op de homepagina. Klik 'Edit' in het menu. Voeg de onderstaande regels toe. Klik op de 'Save' button
  • Dia 35
  • 35 FitNesse Optimalizeren van FitNesse 'SetUp' resultaat. De 'SetUp' wiki pagina ziet er nu zo uit. Deze wiki pagina wordt voor iedere FitNesse test uitgevoerd. We kunnen nu de inmiddels overbodige informatie uit de 'OptellenTest' FitNesse test verwijderen.
  • Dia 36
  • 36 FitNesse Optimalizeren van FitNesse Opschonen OptellenTest. Navigeer naar de homepagina door op het logo te klikken. Klik op de link 'OptellenTest' Klik 'Edit' in het menu. Verwijder alle code, behalve de fixture tabel. Klik op de 'Save' button.
  • Dia 37
  • 37 F