Software test i Socialstyrelsen af: Jan Kristensen Nov 2013
Agenda Lidt om Socialstyrelsen IT i Socialstyrelsen Software test QA Udviklingsmetode Agurkemetoden Test cases Test automatisering Afslutning
Lidt om Socialstyrelsen Hører under Social-, Børne- og Integrationsministeriet Hovedkontor i Odense Beskæftiger ca. 350 medarbejdere IT-afdelingen består af 25 medarbejdere Al teknisk drift, servere mv er outsourcet 14 systemer driftes, heraf 4 store Næsten al kodning købes ved underleverandører
IT i Socialstyrelsen Metode Drift Dokumentation og Metode IT-Drift Det betyder, at vi er bindeled mellem forretning og ITleverandører QA/vedligehold Projekter Support IT-drift er ansvarlig for system-drift Vi udvikler kun små opgaver selv Vi står for QA/test
IT i socialstyrelsen Forretningen IT-Drift: QA-team IT-leverandør Socialfaglig medarbejder Projektleder Socialfaglig medarbejder Forretningskonsulent QA-ansvarlig Softwaretester, test manager Leverandør af IT-system IT-udvikler af fagsystem IT-udvikler Automatisering af tests
Software test Testarbejder begynder, når projektet begynder Vi stiller krav til test hos udviklerne fra starten af projektet: Fx unittest, samt at koden senere kan testes automatisk Vi står for accepttest Afhængig af forløb og omfang, så kan vi købe hjælp til udvikling af test cases samt test management ved uafhængig leverandør.
Software test - QA Afdækker forretningen og deltager gennem hele projektforløbet Test cases skrives mens koden udvikles (agilt) Tæt samarbejde med projektleder og leverandør for at sikre fodslag mellem test og kode
Software test - Cucumber Vi har valg at benytte Cucumber scripts Cucumber er det værktøj til at teste om softwaren opfører sig som forventet Test cases bliver skrevet i naturligt sprog af dem som kender kravene Derefter bliver de afviklet direkte til kode til automatiserede tests Dette kaldes Behavior Driven Development Cucumber fungerer sammen med Ruby
Software test - Fordele At skrive testscenarier/testcases i naturligt sprog giver bedre forståelse af softwaren til ikke tekniske medarbejdere. De tekniske medarbejdere, som skal afvikle koden får bedre og hurtigere overblik over hvilke krav systemet skal opfylde. Behavior Driven Developement har sin oprindelse i Test Driven Development(TDD) hvor udvikling starter med at skrive testen.
Software test - Udviklingsprocessen Tæt samarbejde med projektleder og leverandør Agile metoder anvendes (typisk scrum-lignende) Vi bruger Statens IT-projektmodel (Prince2) Opbygning af realistiske testmiljøer
Test system setup Automatiseret test setup (VIAS): Brugere: Testhus Front end: Servicelag: Integrationer: Database: Cluster Test 1 Test 2 Database Webform ESB CPR Navision ESDH
Opret år 2 rammer og priser (ikke aktive) Kør job: Åben rammedisponering Luk for disponeringer, år 1 Leverance rekvireres Der logges på leverancen Leveranceaftalen ændres (forslag) Leveranceændring godkendes Leverance færdigmeldes Økonomiskema indsendes Test cases: Økonomiskema Test godkendes historier Årsdeling af leverancen Næste års budget Første års budget Opret sager Opret økonomisk ramme Tilknyt ydelser Opret leverandører 1A 2A 3A 4 A 5A 6B 7B 8B 9B 10A 10B 11A Forberedelse Måned 1 Måned 2 Måned 3 Måned 4 Måned 5 12A 13B 14B 15B 16B 17B 11A 18B 19A År 1 År 2 20B
Ex fra system - budgetskema
Test Cases: Planlægning af data
Test cases cucumber 1 # Egenskabet er udarbejdet i forbindelse med test af VIAS' Økonomi. # Session 1-2 # År 1 # Leverandør A # Beskrivelse: Leveranceforløb, som starter i session 1-2 med en budgetopdatering og godkelnedelse. Leverancen færdigmeldes i session 1-3. Der logges forbrug på det gamle år i session 2-1 hvor leverancen afsluttes. # Fortsætter i TC_10A_S1-3, TC_10A_S2-1 Egenskab 10A_S1-2 Baggrund Givet Leverandør A er blevet oprettet der er oprettet en sag af VISO-konsulent sagen er blevet forberedt til rekvirering af leverance Scenarie Rekvirer leverance Givet jeg logger på som VISO-konsulent jeg opretter en leverance for leverandør A jeg rekvirerer leverancen Så leverancens status ændres til "visitation anmodet" Jeg lukker browseren jeg logger ud
Test cases cucumber 2 Scenarie Ja tak til leverance Givet Så Så jeg logger på som Leverandør A leverancen er blevet rekvireret jeg finder sagen i min forside i listen "Afventer accept" jeg åbner den rekvirerede leverance jeg siger ja tak til sagen Leverancens status ændres til "I gang" # Visitation= 12,0; Udredning= 22,0; Rådgivning= 30,0; Kørsel(timer= 15; km= 800; udgift= 5000,00) Scenarie Opdatering af budgetskema Givet Jeg er logget på som leverandør A Jeg laver ændringer i Budgetskemaet. Når Jeg beder om accept af ændringer Så jeg ser at knappen "Bed om Accept af ændringer" forsvinder jeg logger ud Scenarie Godkendelse af ændringer Givet Jeg er logget på som VISO-konsulent leverancens budgetændringer er blevet sendt til godkendelse Når Jeg finder sagen i min HOTLISTE på Min forside jeg Godkender ændringerne i leverancens budget Så jeg ser at status ændres fra Foreslået til Aftalt jeg logger ud
Erfaringer Test automatisering tager tid Det er en forudsætning, at der er styr på alle andre dele af test management Du skal først automatisere test, når systemet når en vis modenhed. At automatisere test er faktisk at starte et udviklingsforløb: Miljøkendskab Sikkerhed Tester testen rigtigt?
Erfaringer Ledelsen skal brænde fingrene!
Afslutning Hermed to links om Behaviour Driven Developement og Cucumber, samt bogen i PDF format: http://www.sitepoint.com/smelly-cucumbers/ http://cukes.info/