Varför utför man test?
För att :
Identifiera fel
Säkerställa kvalitet
Försäkra ett användbart system
Vad handlar testning om? (Definition)
Med testning menas:
Processen att exekvera eller evaluera ett system genom att använda manuella eller automatiska metoder för att verifiera, att systemet uppfyller specificerade krav eller att identifiera skillnader mellan förväntade och verkliga resultat.
Vad innebär att verifiera?
Att kontrollera det färdiga resultatet med avseende på kravspecifikationen.
Vad innebär att validera?
Att granska hur resultatet förhåller sig till verkligheten, och kontrollera att det funkar i praktiken.
Vilka konsekvenser finns p.g.a. bristande test?
Stora utvecklingskostnader
Högra förvaltningskostnader
Missnöjda kunder
Missnöjda användare
m.m.
Det finns 7 principer om test, vilka?
Test påvisar att ett fel finns
Fullständiga test är omöjliga
Testa tidigt
Fel hopar sig ofta
Anpassa/variera test
Test är kontextberoende
“Absence of errors“ - fallacy (Man antar att systemet är felfritt)
Vilka orsaker kan buggar komma ifrån?
Tidspress
Komplex kod
Komplex infrastruktur
m.m.
Hur ser testprocessen ut?
Testplanering och styrning →
Testanalys och design →
Realiserande och exekvering av testet →
Utvärdering och avslutkriterier och rapportering →
Testavslutsaktiviteter
Vad gör man i planeringsfasen?
Granskar krav
Skapar testfall
Prioriterar testfall
Skapa testrapporter
m.m.
Vilket syfte har en testspecifikation?
Att “hålla ihop“ testfallen.
Vilka delar innefattar en testspecifikation?
Inledning
Testdata
Förberedelser
Testfall
Återställning
Vilka fördelar finns det med testfall?
Strukturerat
Bra grund för felrapporter och automatisering
Lätt att byta testare
Vilka nackdelar finns det med testfall?
Blir snabbt omfattande
Kan bli svårt med en överblick om testfallen är för många
Testfallen täcker inte allt - falsk säkerhet
Vilka steg innefattas på genomförandet av ett test?
Följer testplanen
Använder underlagen för planeringen
Rapporterar
Testar igen och igen
Hur ser uppföljningen ut?
Man sammanfattar
Utvärderar och samlar erfarenhet
Vilka problem finns med ostrukturerade test?
Viktiga fel upptäcks sent
Trots tester upptäcks få fel
Test blir hinder för “att bli klar“
Svårt att övervaka och kontrollera test
Lite användarmedverkan
m.m.
Vad innefattar V-modellen?
Se bild.
Det finns fyra grundläggande testnivåer, vilka?
Enhetstest
Integrationstest
Systemtest
Acceptanstest
Vilka olika roller inom test finns det?
Testare
Testledare
Testroller
Testdata
Testfall
Prestanda
m.m.
Vad handlar test om?
Att lära sig systemet, lära sig av tidigare projekt, kollegor och andra projektmedlemmar.
Handlar om lärande och erfarenhet.
Vilka framgångsfaktorer finns det inom testning?
Påbörja test tidigt
Testa under hela utvecklingsprocessen (hitta fel tidigt, begränsa kostnader för fel)
Skapa struktur i testarbetet
Arbeta metodiskt (för att kvalitetssäkra systemet)
Det finns olika “standardiserade“ utvecklingsmetoder, vilka?
Vattenfall (sekventiell)
RUP (Rational Unified Process) en iterativ-inkrementiell process
XP (Extreme programmering) en agil process
m.m.
Vad är det som är typiskt med vattenfallsmodellen?
Den är sekventiell, och man kan inte gå tillbaka i processen. Kravbilden blir aldrig komplett.
Vad är testdisciplinen för RUP?
Det är en iterativ process, skalbar och går att skräddarsy, skapt för flexibilitet och är en riskbaserad process.
Vad är extreme programming?
Medvetet och disciplinerat utvecklingsätt.
Understrycker kundnöjdhet (Leverera vid behov, svara på ändrade krav).
Betonar teamarbete (kommunikation, enkelhet, feedback och respekt).
Hålla saker enkelt.
Hur bidrar extreme programming till att förbättra programutvecklingsprojektet?
Den förbättrar 4 väsentliga dimensioner:
Kommunikation
Enkelhet
Feedback
Respekt/mod
Vad är manuell testning?
Testning av programvaran som utförs av en QA-analytiker, det utförs för att upptäcka buggar i programvaran under utveckling.
Vad är automatiseringstest?
Testare skriver kod, för att automatisera testutförandet.
I automatiserad mjukvarjutestning skriver kod/textskript för att automatisera testutförandet. Testarna använder lämpliga automatiseringsverktyg för att utveckla textskript och validera programvara.
Målet är att slutföra testutförandet på mindre tid.
Vad är User Stories?
Små meningar som beskriver krav.
Vad menas med agilt test?
Testa tidigt
Hantera ändrade krav
Hantera “tunna“ krav
Test ofta
Testa snabbt
Bugg-kvalitet
Engagera hela teamet
Enhetstest
Vad illustrerar V-modellen?
Hur kravhantering och test hänger ihop med systemutveckling.
Går att tillämpa på både små och stora projekt
Går att tillämpa på både nyutveckling och i förvaltning
Hanteras normalt som både sekventiell och iterativ samtidigt
Vad är de två största problemområderna inom kravhanteringsprocessen?
Kravspecificieringen och hanteringen av kundkrav.
Var kommer felen ifrån inom systemutveckling?
Kravrelaterade på 56%.
Designrelaterande 27%
Övriga fel 10%
Kodrelaterande 7%
Vilka olika typer av krav finns det?
Funktionella krav
Icke-funktionella krav
Normala krav
Förväntande krav
Sensationella krav (oväntade)
Vad är funktionella krav?
Kan vara tex att skriva ut en meny
Vad är icke-funktionella krav?
Tex prestanda
Vilka tekniker kan man använda för att samla in krav?
Intervjuer
Kravworkshop
Prototypbyggande
Brainstorming
Storyboards/Scenarier
Användningsfallsmodellering
Verksamhetsmodellering
SRS för gammalt system
m.m.
Vad innebär att strukturera krav?
Att skapa struktur som är lätt att överblicka och förvalta. Pågår kontinuerligt.
Vad är nyttan med att prioritera krav?
Fokusera på det viktiga
Hitta höga och låga prioriterade krav
Rätt krav i rätt ordning
Spara tid och pengar
Vad bör dokumentationen av krav innehålla?
Funktionella och icke-funktionella krav
Gränssnitt mot andra system
Krav på användargränssnitt
Designrestriktioner
Vad är problemet med för lite dokumentation?
Finns osäkerhet om vad som ska levereras.
Vad är problemet med för mycket dokumentation?
Svårt att förvalta och svårt att upptäcka luckor.
Vilka tre områden finns om att förvalta krav?
Konfigurationshantering
Förändringshantering
Påverkansanalys vid förändringar
Vad är spårbarhet?
En teknik som ger ett samband mellan olika nivåer av krav i ett IT-system.
Tekniken hjälper till att fastställa ursprunget för varje krav.
Kontrollera att IT-systemet bara gör det som begärdes.
Hur går tidig testdesign till?
Testarna deltar i krav diskussioner
Testarna deltar när kraven skrivs
Testare deltar vid granskning av kraven
Testare planerar och skriver testerna tidigt, helst parallellt med kraven
Krav och test i samma verktyg
Vilka tre områden bör man dokumentera?
Kravspecifiktaionen
Användningsfallet
Användarberättelser
Vad används ett spårbarhetsmatris till?
För att kunna se konsekvenser vid förändring och visa om det finns testfall för samtliga krav.
Kan visa om det finns testfall för samtliga krav
Vilka steg följer en övergripande testprocess?
Planering, Genomförande, Uppföljning
Vad är syftet med en testprocess?
Processer används som stöd och riktlinjer
Perocesser kan ge ett enhetligt arbetsätt
En bra testprocess är “tillförlig“ och “sparar“ tid/arbete när de, väl är etablerade.
Vilka framgångsfaktorer finns för att lyckas med gransking och granskningsmöten?
Grundläggande kontroller av dokument
Rätt information till deltagarna i god tid inför mötet
Välj rätt granskare
Använd checklistor
Undvik långa diskussioner
Håll start- och slutdatum
Ledning behöver ge stöd för granskning
Vilja att förbättra granskningsprocessen
Vad är det som skiljer en inspektion från en genomgång?
Start- och slutkriterier används
Formella mötesroller används
Mätetal används
Mötet leds av en utbildad moderator som inte är samma person som författaren
Deltagarna genomför noggranna förberedelser inför granskningsmötet
Mötet protokollförs med en lista över funna avvikelser
När skall man använda informell respektive formell granskning?
Informell granskning (billigast):
Används vid tidsbrist
Om dokumentet är mindre viktigt
Kan användas som förgranskning till en mer formell granskning
Formell granskning:
Följer en dokumenterad granskningsprocess
Beskriver att det ska finnas möte, formella roller krav på förberedelser samt mål
Hur genomförs granskning?
Dela upp stora dokument i mindre delar.
Exempel på formell granskning är?
Genomgång (Walkthrough)
Teknisk granskning
Inspektion
Varför genomförs granskning?
Kostnadseffektivt
Problemförebyggande
Effektiv inlärning
Involverar projektmedlemmarna tidigt
Vad är målet & syftet med granskning?
Verifiering
Validering
Konsensus (nå samsyn)
Förbättringar (hitta förbättringsförslag)
Felsökning (hitta fel)
Vad betyder och när sker statisk testning?
Hitta fel utan att exekvera programmet.
Sker under hela projektet
Förebygga buggar
Billig
Vad betyder och när sker dynamisk testning?
Exekvera programmet för att hitta fel
Sker i sista delen av projektet
Hitta och fixa buggar
dyr
Hur går ett agilt arbetssätt till?
Ett krav granskas och analyseras
Testfall skrivs
Testfallet granskas för att se om det ger upphov till nytt testdata
Nytt eller befintligt testdata läggs in i testsystemet
Testfallet utförs
Eventuella fel rapporteras
Nästa krav
Vad ska man tänka på när man skriver en tidig testdesign?
När är kravinsamling färdig?
En kravinsamling blir aldrig färdig.
Det finns alltid flera åsikter
Nya möjliga funktioner
Det går aldrig att fullständigt specialisera en produkt
Hur hanterar man förändringar?
Konfigurationshantering
Alla inblandade måste veta vilka krav som är aktuella.
Förändringshantering
Rutiner för då kraven ändras.
Påverkansanalys vid förändringar
Spårbarhetsmatris.
Sker under hela utvecklingsprocessen
Vad innebär med kvalitetssäkra krav?
En ständigt fortlöpande aktivitet som syftar till att säkerställa att de dokumenterade kraven dels beskriver rätt egenskaper och dels beskriver dem på rätt sätt.
Ge exempel på kravdokumentation och vad dem bör innehålla.
Kravspecifikation, Användningsfall & Användarberättelser
Bör innehålla:
Funktionella & icke-funktionella krav
Gränssnitt mot andra system
Krav på användargränssnitt
Designrestriktioner
Vad är viktigt att tänka på med kravhantering?
Krav är centrala
Nästan rätt är oxå fel
Vad innebär med att varje “bygge“ är en testlivscykel kandidat?
Att bygga koden är helt enkelt att kompilera ett program och där minsta ändring i källkoden innebär att komplieringen ger ett annat bygge.
Vilka testningar sker under sekventiell utvecklingsmodell?
Komponent- (enhets)- testning
Integrationstestning
Systemtestning
Acceptanstestning
Vad innebär interativ-inkrementell utvecklingsmodell?
Process, med upprättande av krav, konstruktion, byggande och testning av ett system, som sker i många små utvecklingssteg.
Vad går agila utvecklingsmodellen ut på?
Bygger på att göra kunden nöjd med det som utvecklas genom ett mycket nära samarbete under hela utvecklingstiden med täta och regelbundna möten mellan utvecklare och beställare.
Vad mer kan trattas in i en programvara förutom den faktiska koden?
Kundkrav
Specifiktaitioner
Tidsplaner
Designdokument
Testdokument
Vad är testplanen?
Plan för testarna som ska genomföras
Där testledaren är ansvarig
Fokus i planen är “vad“
Man tänker igenom vad som ska göras och hur.
Är ett kommunikationshjälpmedel för alla intressanter
Planering och skapande av testplan genomförs bäst med ett iterativt arbetssätt!!!
Vad innehåller ett testdokument?
Teststrategi
Testplan
Testspecifiktaion
Testschema
testlogg/avikelselogg
Felrapporter
Testrapport
Vad är en teststrategi?
Generell och övergripande beskrivning om hur ett system vanligtvis testas
Testnivåer, roller och hur arbete brukar läggas upp
Vilka olika start och stopp finns det för test?
Start kriterier:
Kriterier som ska vara uppfyllda för att inleda testerna (beroenden)
Stopp kriterier:
Kriterier som ska vara uppfyllda av avsluta test
Avbrytande kriterier:
Kriterier för att avsluta tester på ett onormalt sätt
Återupptagande kriterier:
Kriterier som ska vara uppfyllda för att återuppta testerna
Olika sätt att estimera på?
Estimera tid
Räkna och/eller bygg på erfarenhet
Enpunkts- tvåpunkts, eller trepunktsskattning
Ev “uppsökningsfaktorer“ baserat på erfarenhet
Schablontid - relaterat till uppskattad utvecklingstid
Star5t & slutkritereier
Vad är estimering av tid?
= uppskattning
Små aktiviteter är lättare att estimera än stora aktiviteter. Enkla aktiviteter är lättare att estimera än komplexa aktiviteter.
Bryt ner till enkla och korta aktiviteter
Utnyttja erfarenheter
Vilka olika typer av risk finns det?
Tekniska
Projektorganisatoriska
Linjeorganisatoriska
Marknadsrelaterade
Kundrelaterande
Externa
Projektrisker
produktrisker
Humanrisker
Vad innebär riskutvärdering?
Att svara på frågor av typen…
Vilken sannolikhet är det att risken inträffar?
Vad får det för konsekvenser om risken inträffar?
Vad kan vi göra för att undvika , möta, reducera eller acceptera risken?
Vad innebär begreppet risk?
Sannolikheten att något negativt påverkar verksamhetens eller projektets möjlighet att nå sina mål.
Kan identifieras och hanteras.
Vad innebär begreppet osäkerhet?
Man vet för lite om projektet för att kunna se riskerna.
Vilka aktiviteter finns under testplaneringen?
Identifiera avgränsning, risker & mål för test
Planera roller, ansvar & resurssäkring
Schemalägg
Fastställ mätetal, start/stop kriterier, testnivåer
Integrera testaktiviteter i utvecklingslivcykeln
Varför planerar man?
För att skapa förståelse för uppgifter
För att skapa överblick över arbetet
För att skapa underlag för att:
Avsätta resurser
Fördela roller & ansvar i arbetet
Kunna följa upp och ta konsekvenserna av förändrade förutsättningr
Vad gör man när man planerar?
Identifierar uppgifter
Identifierar kritiska aktiviteter
Estimera tid och kostnad
Definera bemanning
Tillsätta nyckelroller
Identifiera risker & reservplaner
Fastlägg uppföljningsmetodik
Vad påverkas planering av?
Verksamhetens testpolicy
Testningens omfattning
Målsättning
Risker
Begränsningar
Hur kritisk produkten är
Testbarhet
Tillgång till resurser
Vad är syftet med testplanering?
Syftet är att få en plan som vi kan följa under genomförandet.
Indata = kravspecifikation m.m.
Utdata = testplaner
Planen kan beroende på omfattning delas upp i flera delar.
Vad är bra att tänka på vid användning av en testmiljö?
Det är oftast bra/nödvändigt att ha en separat testmiljö.
Testmiljön måste spegla produktionsmiljön för att vara tillförlitlig.
Deploy från utveckling till test, från test till produktion.
Vad används testdata till, och vad är viktigt att tänka på?
Används för integrationstest, systemtest, acceptanstest och komponenttest.
Forma en process och hantering för testdata, som är möjlig att använda och återställa.
Behöver ha tillräckligt med testdata.
Urval av testdata för aktuella tester.
Testdata bör vara “produktionslik“.
Vad gör man under förberedelser/planerings fasen?
Definerar syftet med testet
Identifierar testområden
Granskar kravdokument
Bedömer risker
Skapar testunderlag
Säkra resurser
Vad gör man under uppföljning och utvärdering?
Sammanfattar
Utvärderar
Samlar erfarenheter
(Testrapport + lesson learned)
Vilka delar utöver test, är viktiga inom kvalitetssäkring?
Kravhantering
Projektledning
Systemutveckling
Driftsättning
Användarhjälp & utbildning
Vad behöver testare göra?
Lära sig systemet
Lära sig av tidigare projekt
Lära sig av kollegor
Lära sig av andra projektmedlemmar
Vilka dimensioner finns i V-modellen?
Arbetsflödet
Detaljeringsgraden
Tiden
Vilka två underlag används för att övergå från testanalys och designfasen till genomförande fasen?
Testplan
Testspecifikation
Vad behövs göras under testprocessen?
Granska krav
Skapa testfall
Prioritera testfall
Genomföra tester
Logga resultat i testlogg
Skriva avvikelserapport/felrapport
Kommunicera löpande med leverantören
Sammansätta testlogg
Skriva testrapport
Projektlivscykel
Ett projekt samtliga faser, även kallt projektförlopp.
Vilka är de grundläggande testnivåerna, och av vem utförs dem av?
Enhetstest eller komponenttest
Utförs av utvecklarna
Integrationstest (inom system)
Utförs av utvecklarna
Systemtest (mellan system och helheten)
Utförs av testare eller systemtestare
Acceptanstest
Utförs av användare på uppdrag av beställare
Beskriv processens tre faser, vad som händer…
Planering
Övergripande planering - skriver en testplan eller teststrategi.
Skriver ; testtfall, checklistor, skapar testmiljö
Genomförande
De planerade testerna genomförs utifrån testunderlag. Tester som misslyckas rättas och genomförs igen.
Uppföljning
När alla test är godkända avslutas testen.
Samla erfarenheter.
Skriv testrapport.
SDLC innehåller?
Systemutveckling livcykel
Förändringsanalys
Analys
Design(utformning)
Realisering
Implementering
Förvaltning & drift
Avveckling
Vad står CMM för?
Capability Maturity Model
Vilka fem olika nivåer har CMM?
Initial
Repeterbar
Definierad
Styrd
Optimerande