Agil-model versus V-model set i lyset af en testers dilemmaer 1
Præsentation Foredragsholder Ane Clausen: Cand.Scient i Datalogi Københavns Universitet, Danmark Gift, 3 børn 25 års erfaring med IT: 12 år som dba er, planlægger, udvikler & metode 8 år som Test Manager, Leverancestyring & Outsourcing 2 år med Automatisk Test 3 år som Projektleder 2
Indholdsfortegnelse 1) Indblik i den Agile model og V-model Agil model og V-model Agil test matrice og V-model test faser Det agile manifest i forhold til v-modellen 2) Hvad kræves af en tester i en verden i forandring 10 principper som kvalificerer en agil tester 9 Agile test principper 3) At opnå succes som tester gennem teori og praktisk erfaring Testers Dilemmaer 3
Agil og V-model: begge fra starten af 90 erne Eksempel: Iterativt i sprints projekt med 2 sprint, hvor der sættes idrift ved sprint 2 sprint1------------- Sprint2----------------------------------- Release Udvikling+Test Udvikling+Test+Reg.test(projekt) Reg.test Eksempel: Verification and validation model i faseforløb Hver fase skal være afsluttet før næste begynder tid Forløb: krav, analyse, design, kode, test i faser 4
Agil test matrice og V-model test faser V-model Brugerkrav Produktdesign Systemkrav Systemintegrationstest Regressionstest Systemtest Brugertest Accepttest IT Nyt system + IT Omverden/ ab.systemer Overordnet design Komponentintegrationstest Detaljeret design Komponenttest kode Sprint og tester i testtyper Q1 + Q2: kravene testes, mens der udvikles Q3 + Q4: kritisk vurdering af produktet, ris og ros (forbedre) Kvadranterne skal ikke testes sekventielt, og man skal huske at have test med fra alle kvadranter. 5 testfaser: (statisk og dynamisk test) Test planlægges parallelt med tilsvarende fase Komponenttest Komponentintegrationstest Systemtest Systemintegrationstest Brugeraccepttest 5
Agile manifest vs. V-model Agile principper (venstre side) over V-model (højre side) Individer og samarbejde over Processer og værktøjer (Kommunikation & Selvkørende teams) (Styring) Velfungerende software over Omfattende dokumentation (Sprint & Demo kun nødvendig dokumentation) (Omfattende dokumentation) Samarbejde med kunden over Kontraktforhandling (Brugernes krav - mest værdi Product Owner) (Specifikation tilgang) Håndtering af forandringer over Fastholdelse af en plan (Planlæg 1 sprint af gangen fleksibilitet til krav) (Planlæg trinvis - faser) Afvejning: er det noget som giver værdi Højre side skal man stadig have det med, men det er i mindre grad i agile projekter 6
10 principper som kvalificerer en agil tester (Lisa Crispin and Janet Gregory) Agil model V-model Power of 3 (udvikler, tester, bruger/kunde favner projektet som helhed i samarbejde) 1. Giv løbende feedback 2. Levere værdi til kunden 3. Aktiv kommunikation 4. Have modet 5. Hold det simpelt 6. Sikre løbende forbedringer 7. Reagere på forandringer 8. Selvorganiserende 9. Fokus på mennesker 10. Engageret skal være drivkraft Test roller er klare og tydelige (isoleret med opgaven) hver rolle har fokus i testen: test manager systemtester forretningstester teknisk tester brugeraccept tester test designer og tester kommunikerer typisk via et værktøj og benytter skabeloner 7
9 Agile test principper (Elisabeth Hendrickson, QA engineer) 1. Test er ikke en fase men integreret i projektet fra start 2. Fokus skift til samarbejde Tæt samarbejde og fællesskab 3. Alle tester, ikke kun testerne 4. Test stiller spørgsmål til løsningen og følger ikke bare en test specifikation 5. Fejl rettes hurtigt i sprintet og ligger ikke længe med overdragelse 6. Reducerer test dokumentation 7. Opgave er færdig når det er testet og ikke færdig når det er udviklet 8. Test tidligt og ofte (iterativ udvikling og mere exploratory testing) 9. Fra Test lab til test driven (testen driver også udviklingen) 8
Test Dilemma: test integration test er integreret i projektet & ikke en fase Agil test er kendetegnet ved: V-model er kendetegnet ved: Iterativ udvikling (velafgrænsede Timeboxes i sprints) Jan Pries-Heje, Professor Roskilde Universitet, søstjerne model: Kompleksitet Størrelse Team Ændringer Kvalitet/Kritisk Kan alle projektet køre agilt? Testeren laver testgrundlaget og eksekverer, så det er ikke detaljeret. Følger én lang faseplan og stram styring Fordele: Enkel og nem at bruge. Test aktiviteter som planlægning og test design sker før kodning. Test planlægges parallelt med fasen Ulemper: Testcases designes længe førend de eksekveres, og ofte bliver de ikke opdateres med ændringer. Medfører meget tilbageløb. 9
Test Dilemma: samarbejde fokusskift til samarbejde & væk fra styring Agil test er kendetegnet ved: V-model er kendetegnet ved: Power of 3 (udvikler, tester, bruger). Fokus på mennesker og tæt samarbejde, med tillid og ejerskab. Folk hører og modtager budskaber forskelligt. Testeren skal kunne kommunikere til alle i teamet (og omvendt). Kan han det? Vil udvikleren lytte til testeren? Faseopdeling af test, med statisk og dynamisk test Specifikationerne bliver kastet over muren og review kastes tilbage igen. Hvordan bliver muren nedbrudt? Testeren er reviewer, hvor hans rolle er at undersøge om det er testbart og forståeligt. Giver det den rigtige værdi for kunden? 10
Test Dilemma: roller alle tester & ingen roller Agil test er kendetegnet ved: Både udvikler, tester og bruger gennemfører test Tester skal være udadvendt og kunne håndtere mange roller og opgaver og koordinerer testen. Får testeren stress? Vælges en tester som scrum-master fordi han har systemoverblikket? V-model er kendetegnet ved: Test gennemføres efter faser og rollemønstre i udviklingsforløbet. Test roller er klare og tydelige, med hver deres fokus i testen fx: test manager, systemtester, forretningstester, teknisk tester De er uddannede i deres roller - Er de for fastlåste? Går de i stå? 11
Test Dilemma: tester tester stiller spørgsmål til løsningen & ikke kun review Agil test er kendetegnet ved: V-model er kendetegnet ved: Tester skal sikre løbende forbedringer i sprintet og tester skal stille spørgsmål til løsningen. Kræver det at testeren har en mere analytisk tilgang? Hvad gør testeren hvis kunden er usikker på kravene? Følger en lang struktureret proces: analyse-design-kode-test. Testen har fokus på at specifikationerne overholdes. Risiko for at der ofte kan ske tilbageløb (ifm. kravsændringer og overdragelse fra fase til fase.) Hvordan undgår man det? Testen er ofte flaskehalsen? 12
Test Dilemma: fejl håndtering fejl rettes i sprintet & ligger ikke med overdragelse Agil test er kendetegnet ved: V-model er kendetegnet ved: Fejl kan rettes så snart de kendes. Rettes fejl i sprintet eller flyttes den over i back-loggen? Fejl registreres, og den følger en lang kommunikationsvej. Synlighed (Defect management). Hvordan håndteres fejl? Og Defect Management? Hvad måles der på og hvornår? Er processen for tung - skal alle defects registreres? Er der risiko for at defects beskrivelser misforstås? Bliver alle målene anvendt i praksis? 13
Test Dilemma: test specifikation reducer test dokumentation & ikke omfattende dok. Agil test er kendetegnet ved: V-model er kendetegnet ved: Test følger en task og ikke en specifikation. Der er ikke lange test cases. Hvordan viser testeren at der er styr på testen og gentesten? Testeren skal have modet til at sige til og fra. Har han det? Test tænkes ind fra start - Statisk / Dymamisk. Det er specifikationen der bliver reviewet og ikke produktet, så derfor vil der ske ændringer. Ændringer kræver at testdokumenter og kravsdokumenter ajourføres. Er det for tidskrævende? 14
Test Dilemma: begrebet færdig/done færdig når det er testet & ikke når det er kodet Agil test er kendetegnet ved: V-model er kendetegnet ved: En opgave er færdig når den er testet OK Done. En opgave er først helt færdig når der er regresisonstestet OK er det Done Done? I V-modellen anvendes faser. Når udviklingen er kodet færdig er fasen afsluttet dvs done. Fasen er done i stedet for produktet. Done på flere niveauer? Fx sprint done, opgave done, osv Som sidste fase i udviklingsforløbet afsluttes med en UserAcceptTest. Er det for sent? Løber tiden fra projektet? 15
Test Dilemma: test eksekvering Test tidlig og ofte & ikke vente på en testfase Agil test er kendetegnet ved: Brugernes krav er i fokus med en Værdibaseret tilgang og risici er i fokus i de enkelte task/stories. Vil der i selve sprintet blive testet risiko baseret? Test-tilgangen? Testen går så tidligt i gang at det bare er en skal, der kigges på. Hvilke udfordringer giver det testeren? V-model er kendetegnet ved: Tester efter specifikationerne. Jo senere en ændring sker i udviklingsforløbet des dyrere er den at håndtere. Derfor får kunden ikke altid det, der er mest værdifuldt og ej heller har han haft muligheden. Er der råd til at lave ændringer så sent i forløbet? 16
Test Dilemma: Test afvikling test som drivkraft & væk fra test lab Agil test er kendetegnet ved: V-model er kendetegnet ved: Testen er med til at drive udviklingen Kan testeren være drivkraften i Teamet? Testen foregår i Testlab efter faser og specifikationer. Det er sent at brugeren/kunden ser det færdige produkt. Kan tester sikre team-ånden, hvis han er introvært og stille? Kompetancer - kan tester lave automatisk test og gennemføre TDD? Ingen tidlige prototyper. Kan verifikation og validering benyttes som garanti for at specifikationen opfylder kundens behov? Hvad er et review værd i forhold til Demo? 17
Tak for i dag 18