Kursbeskrivning
De flesta utvecklingsteam har numera automatiserad testning för sin kod, det är ett välkänt mönster som forskning visar leder till högre kvalitet och kortare leveranstider. I vissa fall kan du få ännu bättre resultat med Approval testing än traditionell assert-baserad testautomation. Till exempel när:
- Den existerande koden saknar testfall och har dålig struktur som orsakar att det är svårt att skriva enhetstester (även kallad legacy-kod).
- De förväntade resultaten är svåra att beräkna i förhand, men enkla att verifiera i efterhand.
- Du vill testa en hel komponent, subsystem eller ett helt system end-to-end. Alltså i större bitar än enhetstest.
Den här kursen är till för utvecklare och testare som redan förstår grunderna i testautomation och vill lära sig med avancerade testtekniker. Från erfarenhet vet vi att utvecklingsteam får mest ut av testautomation om ni involverar både testare och utvecklare i arbetet, så kursen är anpassad för båda. Om de går tillsammans så finns störst potential för bra resultat.
Den här kursen hålls av Emily Bache som är en erfaren teknisk agil coach hos ProAgile. Hon förespråkar sedan länge Testdriven utveckling (TDD) och är en av pionjärerna bakom det professionella utvecklarläroforumet ”Coder Dojo”.
Användning av Combination Approvals för att testa Gilded Rose KataKursen är väldigt interaktiv och vi strävar efter att hålla engagemanget i topp under hela kursen samt ge kontroll över det egna lärandet till deltagarna. Vi jobbar med många hands-onövningar under de två dagarna som kursen går och lär oss därmed genom att göra saker i praktiken. Kursen är designad för on-siteutbildning men är helt anpassad för att köras virtuellt. För att undvika skärmtrötthet och öka engagemanget så har vi delat upp kursen i fyra halvdagar.
Innehåll
Kursen innehåller fyra moduler som beskrivs nedan.
Introduktion till Approval testing
Vi tittar på de olika byggstenarna i ett Approval test:
- Testfall tittar på den faktiska output ett program ger och jämför detta med tidigare godkända resultat, om skillnader upptäcks så misslyckas testet.
- Normalt sett granskas och godkänns resultatet av en människa när testfallen skapas.
- Rå outputdata kan processas för att bli läsbar innan den används för godkännande eller jämförande.
- Designa en Printer som skriver ut komplexa resultat istället för att använda mängder av Asserts.
- Om faktisk programoutput inte finns tillgänglig när testfallet skrivs, så kan det godkända värdet representeras av ett manuellt utkast till förväntad data.
- Godkänd testdata sparas separat från källkoden för testfall men i samma repository.
- När ett testfall fallerar, kan du använda verktyg för att granska skillnader och enkelt uppdatera dina testfall.
Vi arbetar igenom ett antal övningar som ger erfarenhet av verktygen ”Approvals” och ”TextTest”. Vi arbetar i små grupper och varje grupp väljer själva vilket programmeringsspråk de vill använda. Generellt finns övningarna tillgängliga i Java, C#, Python och C++.
Användning av Coverage och Combinations i Legacykod
När du ärver värdefull men svår kod som kräver förändring, så kan Approval testing användas för att komma igång även om du själv inte helt förstår alla detaljer i koden.
- Använda Coverage för att hitta missade testfall
- Använda Combinations för att öka förtroendet för testerna
Vi arbetar igenom övningar där vi lägger till tester till en Legacykodbas. med hjälp av ”Approvals”. Vi arbetar i små grupper och varje grupp väljer själva vilket programmeringsspråk de vill använda. Generellt finns övningarna tillgängliga i Java, C#, Python och C++.
Använda Approval testing i Behavioural Driven Development (BDD)
Vanligtvis använder utvecklingsteam Gherkin-syntaxverktyg såsom Cucumber för BDD, men här kommer vi istället att utforska hur vi kan använda en Approval testing-variant. Vi går igenom de olika aspekterna av BDD:
- Discovery
- Formulation
- Automation
och hur de påverkas av en Approval testing-variant.
Vi arbetar igenom övningar där vi arbetar med BDD utifrån ett Approval testingsynsätt. Vi arbetar i små grupper och varje grupp väljer själva vilket programmeringsspråk de vill använda. Generellt finns övningarna tillgängliga i Java, C#, Python och C++. Vi kommer att använda oss av ”Approvals”.
Approval testing med microservices
Microservices är ett populärt arkitekturval idag och det öppnar upp för helt nya möjligheter med automattestning. Vi tittar på hur vi kan använda Approval testing för att:
- Testa en microservice via dess API
- Testa en gruppering av Microservices som uppfyller ett scenario utifrån ett användarperspektiv
Vi jobbar i små grupper där vi skriver tester för exempelmicroservicar. Testerna skrivs med ett Domain Specific Language och verktyget TextTest, så det underliggande språket är inte viktigt för deltagarna. Klisterkoden är skriven i Python. De som inte är bekväma med det språket kommer att få gott om hjälp på vägen.
Förkunskaper
Du har tidigare erfarenhet av testautomation, antingen har du skrivit enhetstester eller end-to-endtester med verktyg som Selenium/WebDriver. Du är bekväm med minst ett av språken: Java, C#, C++ eller Python.
Anmälan
Kommande kursstarter
Varför välja ProAgile?
Eftertraktad utbildning
Modern utbildningsform
Kursledare med verklig erfarenhet
Intresseanmälan
Vi hjälper organisationer att bli mer agila!
Vi har snart 20 års praktisk erfarenhet av agila metoder. Över femtio företag har fått hjälp av oss och vi har utbildat flera tusen personer på alla nivåer och i alla roller! Vi hjälper er med en konkret strategi för...