Testplan Cykelgarage Stefan Johansson D08 (dt08sj7@student.lth.se) Johan Anderholm D08 (dt08ja5@student.lth.se) Angelica Gabasio D08 (dt08ag8@student.lth.se) Marcus Carlberg D08 (dt08mc4@student.lth.se) Jon Andersen D08 (dt08ja8@student.lth.se) Simon Ekvy D08 (dt08se2@student.lth.se) Grupp 15 Projekthandledare: Richard Berntsson Svensson Version 1.1 19 maj 2009
Innehåll 1 Ändringshistorik 2 2 Introduktion 2 2.1 Testat System............................. 2 3 Test process 2 3.1 Process översikt............................ 2 3.2 Enhetstest............................... 2 3.3 Intergrationstest........................... 3 3.4 Systemtest............................... 3 3.5 Acceptanstest............................. 3 4 Testade komponenter 3 5 Testdagbok 3 5.1 Enhetstest............................... 3 5.2 Intergrationstest........................... 4 5.3 Systemtest............................... 4 5.4 Acceptanstest............................. 4 6 Testfall för systemtestning 4 6.1 Testfall................................ 4 6.2 Kravtäckning och spårbarhet.................... 4 7 Appendix: Testfall 4 1
1 Ändringshistorik Ver Datum Förf. Förklaring 0.1 090502 JA Första utdrag 1.0 090505 SE Korrigeringar med avseende på kravspecifikationen. 1.1 090519 MC Korrigeringar med avseende på den uppdaterade kravspecifikationen. Referenser [1] Project and Exercises in the Software Engineering Process, Software Engineering Research Group Department of Computer Science Lund University [2] Projektplanen för grupp 15. [3] Kravspecifikation för grupp 15. 2 Introduktion 2.1 Testat System Systemet som ska testats är en kontrollenhet till ett cykelgarage som bla sköter läs och användarhantering. Syftet med det här dokumentet är att beskriva hur testet av kontrollenheten ska gå till. Testprocessen består av följande faser: Enhetstest, integrationstest, acceptanstest och systemtest. 3 Test process 3.1 Process översikt Testen är utförda enligt enligt beskrivning i [2]. 3.2 Enhetstest För enhetstest används huvudsakligen strukturerad testning. All kod testats av utvecklarna innan den skickas in. All kod ska minst ha blivit körd en gång innan den lämnas in för intergration. Utförs av: Utvecklare. Typ av testning: Struktuell Kriterie: Fullständig kodradsgenomgång. Stop regel: Inga fel funna. 2
3.3 Intergrationstest Integrationstestning genomförs av utvecklarna, testen utförs inte nödvändigtsvis av de utvecklarna som gjorde enhetestesten. Alla metoder ska testas. Utförs av: Utvecklare. Typ av testning: Struktuell Kriterie: Fullständig genomgång av API (Application programming interface). Stop regel: Inga fel funna. 3.4 Systemtest Systemtestet testar alla krav som blivit definierade för systemet. Utförs av: Utvecklare. Typ av testning: Funktionell. Kriterie: Alla krav testas. Stop regel: Inga kritiska fel funna. Test fallen som används vid systemtestning finns i Appendix. Alla krav [3] ska bli verifierade minst en gång. Alla test ska verifera minst ett krav. 3.5 Acceptanstest Acceptanstest utförs utav kunden och är inte beskrivet här. 4 Testade komponenter Enhetstesten utförs huvudsakligen genom användning av källkoden. Kraven används huvudsakligen för att avgöra om ett testfall utfördes korrekt, när detta inte kan bestämmas av koden. Integrationstest använder källkoden och designen för att härleda vilka testfall som uppfyller kriterierna ovan. Systemtestestning använder huvudsakligen kraven för att härleda testfall och för att godkänna systemet. I acceptanstesten används bara slutprodukten. Enhetstest och integrationstest utförs i den utvecklade miljön, dvs en simulerad miljö. 5 Testdagbok 5.1 Enhetstest Varje utvecklare testar sin egna kod. Resultatet av testen behöver inte sparas. 3
5.2 Intergrationstest För varje test ska utgången av de olika testen bokföras i ett separat dokument unikt för varje test. Detta dokument sparas av projektledaren tills dess att projektet är slutfört. 5.3 Systemtest För varje test ska utgången av de olika testen bokföras i ett separat dokument unikt för varje test. Detta dokument sparas av projektledaren tills dess att projektet är slutfört. För varje fel som hittas meddelas utvecklarna via mail. 5.4 Acceptanstest Acceptanstest utförs utav kunden och är inte beskrivet här. 6 Testfall för systemtestning 6.1 Testfall Endast systemtestfall beskrivs här. Enhetstest och testfall baseras på koden, och acceptanstestet utförs av kunden. Testfallen finns Appendix. 6.2 Kravtäckning och spårbarhet Alla funktionella krav ska bli testatade minst en gång, för att försäkra att funktionallitet är testad, se bild. 7 Appendix: Testfall Testfall 1. Inlämning av cyckel Pre-condition: Systemet är igång, dörren är låst, användaren är registred med cykeln. Post-condition: Systemet är igång, dörren är låst, cykeln är registreras som inlämnad. 1. streckkod registreras av streckkodsläsaren. 2. Cykeln registeras som inlämnad 3. Dörren öppnas. Testfall 2. Inlämning av cyckel till fullt garage Pre-condition: Systemet är igång, dörren är låst, garaget är fullt, användaren är registred med cykeln. Post-condition: Systemet är igång, dörren är låst, garaget är fullt. 1. streckkod registreras av streckkodsläsaren. 4
Testfall Krav 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 x x x 3 x 4 x x 5 x x 6 x x x x 7 8 x 9 x 10 x 11 x 12 x 13 x 14 x 15 x 16 x 17 x 18 19 20 22 23 24 25 x 26 x 27 x 28 x x x x 29 x 30 31 x 32 x x 33 x 34 x x x x 35 x 36 x 38 x 39 x 40 41 42 43 44 x Figur 1: Kravtäckning (vitt utrymme representerar ickefunktionella krav som ej kan testas) 2. Dörren öppnas inte. Testfall 3. streckkoden finns inte med i systemet Pre-condition: Systemet är igång, dörren är låst, streckkoden finns inte registrerad. Post-condition: Systemet är igång, dörren är låst. 1. streckkod registreras av streckkodsläsaren. 2. Dörren öppnas inte. Testfall 4. Uthämtning av cykel. Pre-condition: Systemet är igång, dörren är låst, en registrerad användaren har en cykel inlämnad, cykel har streckkod. 5
Post-condition: Systemet är igång, dörren är låst, cykel är inte registrerad som inlämnad. 1. Användaren knappar in sin pinkod. 2. Den gröna lampan lyser i 5 sekunder. 3. Dörren öppnas 4. Användaren läser in streckkoden vid utgångsterminalen inom tidsintervallet. 5. Utgångsdörren öppnas. Testfall 5. Uthämtning av cykel, ej inom tidsintervallet Pre-condition: Systemet är igång, dörren är låst, en registrerad användaren har en cykel inlämnad, cykel har streckkod. Post-condition: Systemet är igång, dörren är låst. 1. Användaren knappar in sin pinkod. 2. Dörren öppnas 3. Den gröna lampan lyser i 5 sekunder. 4. Användaren läser in streckkoden vid utgångsterminalen, ej inom tidsintervallet. 5. Utgångsdörren öppnas inte. Testfall 6. Uthämtning av cykel, ej inlämningsregistrerad. Pre-condition: Systemet är igång, dörren är låst, en registrerad användaren har en cykel, cykel har streckkod, cykel är inte inlämningsregistrerad. Post-condition: Systemet är igång, dörren är låst. 1. Användaren knappar in sin pinkod. 2. Dörren öppnas 3. Den gröna lampan lyser i 5 sekunder. 4. Användaren läser in streckkoden vid utgångsterminalen, inom tidsintervallet. 5. Utgångsdörren öppnas. Testfall 7. Registrering av användare. Pre-condition: Systemet är igång, användaren är oregistrerad. Post-condition: Systemet är igång, användaren är registrerad. 6
1. Operatören registrerar användaren genom kontrollsystemet. 2. Pinkod och streckkod skrivs ut. Testfall 8. Avregistrering av användare. Pre-condition: Systemet är igång, användaren är registrerad. Post-condition: Systemet är igång, användaren är oregistrerad. 1. Operatören avregistrerar användaren genom kontrollsystemet. Testfall 9. Avregistrering av användare med cyklar kvar i garaget. Pre-condition: Systemet är igång, användaren är registrerad, användaren har cyklar kvar i garaget. Post-condition: Systemet är igång, användaren är registrerad. 1. Operatören f örsöker avregistrera användaren genom kontrollsystemet. 2. Kontrollsystemet meddelar operatören om att det finns cyklar kvar i garget. Testfall 10. Uppdatering av användarinformation. Pre-condition: Systemet är igång, användaren är registrerad. Post-condition: Systemet är igång, användaren är registrerad med nya personuppgifter. 1. Operatören söker på personnummer i kontrollsystemet. 2. Operatören uppdaterar informationen. Testfall 11. Bortagning av cyklar som inte ska vara där. Post-condition: Systemet är igång. 1. Underhålls pinkoden knappas in. 2. Den gröna lampan lyser i 5 sekunder. 3. Dörren öppnas. 4. Underhålls streckkoden dras i utgångstreckkodsläsaren. 5. Utgångsdörren öppnas. Testfall 12. Tidsgränsen för uthämtning av cykeln uppdateras. 7
Post-condition: Systemet är igång, tidsgränsen är uppdaterad. 1. Operatören uppdatera tidsgränsen. Testfall 13. Databasen sparas vid strömförlust. Pre-condition: Systemet är igång, databasen är intakt. Post-condition: Systemet är igång, databasen är intakt. 1. Strömmen bryts. Testfall 14. 5 sekunder mellan pinkodsknapptryckningar. Post-condition: Systemet är igång, pinkoden är nollställd. 1. En siffra knappas in. 2. 5 sekunder fortlöper mellan knapptryckningarna. Testfall 15. Fel kod. Post-condition: Systemet är igång, pinkoden är nollställd. 1. Fel pinkod knappas in. 2. Dörren öppnas inte. 3. Röd lampar blinkar 5 gånger i snabb följd. Testfall 16. Kontroll av cykel. Post-condition: Systemet är igång. 1. Operatören matar in en streckkod. 2. System förser operatören med personuppgifter. Testfall 17. Kontroll av antal cyklar. Post-condition: Systemet är igång. 1. Operatören frågar kontrollsystemet hur många cyklar som finns i garaget. 8
2. System förser operatören med uppgiften. Testfall 18. Kontroll av inlämningstid för en cykel. Pre-condition: Systemet är igång, cykeln är registrerad. Post-condition: Systemet är igång, cykeln är registrerad. 1. Operatören frågar kontrollsystemet efter inlämningstiden för cykeln. 2. Kontrollsystemet förser operatören med uppgiften. Testfall 19. Uthämtning av cykel, ej någon inlämnad. Pre-condition: Systemet är igång, en registrerad användare har inte en cykel inlämnad. Post-condition: Systemet är igång. 1. Användaren knappar in sin pinkod. 2. Dörren öppnas inte. Testfall 20. Avregistrering av cykel. Pre-condition: Systemet är igång, en registrerad användare har en cykel registrerad. Post-condition: Systemet är igång, cykeln är avregistrerad. 1. Operatören avregistrerar cykeln från systemet. Testfall 21. Registrering av cykel. Pre-condition: Systemet är igång, en registrerad användare har en oregistrerad cykel, maxgräns för cyklarna är ej överstigen. Post-condition: Systemet är igång, cykeln är registrerad. 1. Operatören registrerar cykeln från systemet. Testfall 22. Ny pinkod Pre-condition: Systemet är igång, användare existerar, det finns lediga pinkoder. Post-condition: Systemet är igång, användaren har fått en ny pinkod. 1. Operatören frågar systemet efter en ny pinkod. 2. Systemet förser operatören med en pinkod. 9
Testfall 23. Lista för inlämnade cyklar Post-condition: Systemet är igång. 1. Operatören frågar systemet efter en lista på inlämnade cyklar. 2. Systemet förser operatören med en lista sorterad efter inlämningstid. Testfall 24. Ny streckkod Pre-condition: Systemet är igång, en registrerad användare har en registrerad cykel. Post-condition: Systemet är igång, cykelns streckkod har skrivits ut. 1. Operatören frågar systemet efter cykelns streckkod. 2. Systemet förser operatören med cykelns streckkod. Testfall 25. Operatören öppnar dörr. Pre-condition: Systemet är igång, dörren är låst. Post-condition: Systemet är igång, dörren är öppen 1. Operatören öppnar dörren genom GUI. 2. Systemet öppnar dörren. Testfall 26. Ändring av dörrtidsintervall. Pre-condition: Systemet är igång, dörrtidsintervallet är x. Post-condition: Systemet är igång, dörrtidsintervallet är y. 1. Operatören ändrar dörrtidsintervallet till y. Testfall 27. Spara databas genom GUI. Post-condition: Systemet är igång, datbasen finns lagrad i en fil. 1. Operatören spara databasen via kontrollsystemet. Testfall 28. Inlämnad cykel kommer in. Pre-condition: Systemet är igång, cykeln är inlämnad Post-condition: Systemet är igång, cykeln är inlämnad. 10
1. streckkoden dras i streckkodsläsaren vid ingången 2. Dörren öppnas. Testfall 29. Fullt garage. Pre-condition: Systemet är igång, garaget är fullt. Post-condition: Systemet är igång, garaget är fullt. 1. Det går inte att lämna in en cykel. Testfall 30. streckkoderna tar slut. Pre-condition: Systemet är igång, en streckkod finns ledig. Post-condition: Systemet är igång, alla streckkoder är upptagna. 1. Ny användare blir registrerad. 2. Operatören får reda på att det var den sista streckkoden. Testfall 31. Pinkoderna tar slut. Pre-condition: Systemet är igång, en pinkod finns ledig. Post-condition: Systemet är igång, alla pinkoder är upptagna. 1. Ny användare blir registrerad. 2. Operatören får reda på att det var den sista pinkoden. 11