plugg Flashcards
Anledningen till varför man utför test
Desto högre konsekvenser ett system genererar desto högre blir behovet för att testa.
Varför utför man tester?
- identifiera fel och åtgärda
- säkerställa kvalitet
- få fram ett användbart system
verifiera samt validera
verfiera
- Är systemet rätt byggt? Uppfyller systemet kravspecifikationen?
Validera
- Är det rätt system vi bygger? Uppfyller systemet kravspecifikationen? Kommer beställaren att bli nöjd?
7 stycken principer om test
- Test upptäcker fel
- omöjligt att testa ett system fullständigt
- Testa tidigt - minimera chanserna för fel
- Fel hopar sig ofta - Fel leder till andra fel
- Anpassa/variera test
- Test är kontextberoende
- “absense of error” - fallacy
Olika typer av fel
Aritmetiska fel - beräkningsfel
Interfacing fel - gränsnittsfel
Ge exempel på anledningar till varför det kan uppstå buggar.
- Tidpress
- komplex kod
- komplex infrastruktur
- attityder emot test
- ignorans
Vilka problem kan ett ostrukturerat test innebära?
- Trots test så upptäcks få fel
- Viktiga och avgörande fel upptäcks sent
- Test blir “hinder” för att bli klar i tid
- Svårt att kontrollera och övervaka test
- lite användare medverkan
V-modellen
Innehåller Arbetsflöde, detaljeringsgrad och tid.
- V-modellen är ett sätt för att visa hur kravhantering och systemutveckling hänger ihop.
- Går att tillämpa på små och stora projekt
- Hanteras båda iterativt och sekventiellt
Arbetsflöde inom V-modellen
Arbetsflöde är flödet mellan verksamhetskrav till acceptanstest som finns ligger högst upp av dimensionerna. Fel som hittas här är fel i användarkrav.
Arbetsflödet i v-modellen består av:
- indelade testnivåer, där varje test nivå har ett syfte
- Varje nivå kan ha en testplan, testaktiviteter och testrapport
Detaljeringsgrad inom V-modellen
Detaljeringsgrad är flödet mellan systemkrav och systemtest. Fel i systemspecifiktation hittas här.
Detaljeringsgranden består av:
- Få detaljer på övergripande nivå
- Detaljerat längst ned i modellen
- Varje nivå ska ha en testplan
Tiden inom V-modellen
Tiden är flödet mellan design och integrationstest. Här hittas även design fel.
Tid innebär att:
- test förberedes i den vänstra sidan av modellen
- test genomförs i den högra delen av modellen
Grundläggande testnivåer
Komponenttest - genomförs av utvecklare
Integrationstest (inom systemet) - utförs ofta av utvecklare
Systemtest (helheten) - genomförs av både testare och systemtestare
Acceptanstest - Genomför av användare med uppdrag av beställare
Roller inom test
- Beställare (kund eller utvecklingföretag)
- Testare
- testledare
- utvecklare
Systemutvecklingmetoder
Vattenfall, RUP (rational unified process), Scrum, XP (extreme programming)
Vattenfallsmodellen
- Jobbar sekventiellt
Fördelar: Tydlig struktur för arbetsuppgifter och tid. Bra för stora projekt
Nackdelar: I början på ett stort projekt kan kravspecifikationen vara ofullständig.
Man försöker tidigt gå in på detaljer.
Det går ej att gå tillbaka i processen och göra förändringar.
Hög kostnad!
RUP (rational unified process)
- Bryter upp större system i delsystem som sen testas.
- Har en statisk del som testar ett system utan att exekvera koden sedan så finns det en dynamisk del där man exekverar för att hitta fel.
Testdisciplin inom RUP
- Iterativ process
- Skalbar, går att lägga in och ta bort saker (skräddarsy)
- Flexibilitet
- En riskbaserad process
Disciplin Test
- Fokus på att utvärdera kvalitet genom att:
- Definiera mål
- skapa en generell uppfattning om system
- Visa att antaganden i kravspecifikation håller
- Utvärdera funktionerna
- Säkerställa att kraven att uppnåtts
XP (extreme programmering)
- Bygger på användarberättelser (user stories) som beskriver kravspecifikationen.
- Refaktuering - rensar koden och tar bort dubbleringar och gör koden mer komplex.
- Par programmering (diskutera lösningar)
Vad ingår i ett agilt test?
- test utförs tidigt
- Hantering av förändringar, placerar dom i product backlog
- Hantera tunna “krav”, användarberättelser
- testa ofta
- testa snabbt
Typiska fel gällande kraven och dess konsekvenser
Fel:
- kraven reflekterar ej det riktiga systemet
- krav är inkonsekventa
- missförstånd mellan kund och kravhanterare
- Addering av ej planerade förändringar
Konsekvenser:
- Kunder använder ej programmet
- systemet blir opålitligt
Olika typer av krav
- Funktionella krav
- Icke funktionella krav, har med prestanda att göra
- Normala krav
- Förväntade krav, gamla krav som kunden tror är självklara
- Sensationella krav, leverantören levererar krav som ej efterfrågas.
Vilka delar ingår i kravhanterings processen - Stjärnan?
- Samla in krav
- Strukturera
- Prioritera
- Dokumentera
- Kvalitetssäkra
- Förvalta
Samla in krav - Stjärnan
Utför intervjuer, krav workshopar, prototypbyggande, scenarier, brainstorming – Olika insamlingsmetoder hittar olika sorters krav
strukturera krav - stjärnan
Ska en tydlig struktur som går enkelt att överblicka och förvalta
Prioritera krav - stjärnan
Fokus på de viktigaste kraven så att låg prioriterade krav ej ändrar resultatet i slutändan. ( om man inte skulle hinna med dem)
Dokumentera krav - stjärnan
Dokumentera krav med kravspecifikation. Bör innehålla funktionella och icke-funktionella krav och krav på använda gränssnitt.
För lite dokumentation ledder till osäkerhet.
För mycket dokumentation är svårt att förvalta och hitta luckor.
Kvalitetssäkra krav - Stjänan
Se till att det finns så få fel som möjligt
Förvalta krav - stjärnan
- 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
Spårbarhetsmatris
Gör det möjligt att se konsekvenserna av förändringar. (Ett viktigt krav som ändras kan leda till ändrade testfall och flera nya fel)
- Sambandet kan visa om det finns testfall för samtliga krav och kan illustreras med hjälp av exel.
Två bent inom kravhantering och test
Att vara två bent innebär att man har kompetens inom bägge områden.
Spårbarhet används till att
- kontrollera att systemet uppfyller alla krav
- systemet gör det som ska göras
- Hjälpa till vid förändringshantering
Två typer av statisk testning (testa kod utan att exekvera den)
Statisk analys och Granskning
Statisk analys
Tittar på koden utan att exekverar. Leta efter död kod vilket är kod som aldrig körs. Man letar även efter kompileringsfel.
Granskning
Målet med granskning är att allt ska granskas innan exekvering.
Granskning är:
- Kostnadseffektivt, problemförebyggande
- Involverar projekt medlemmarna tidigt
Målet är: verifiering, validering konsensus (alla får samma förståelse)
Informell granskning
- Snabb
- inga fasta rutiner
- odokumenterat
- billigt
och används vid tidbrist eller vid oviktig dokumentation.
Formel granskning
Används vid stora projekt och innehåller genomgång, teknisk granskning samt inspektion.
Genomgång i Formel granskning
- Författaren förklarar sina tankar om genomgången
- Gå ut på att ge konsensus, gemensam bild om vad man vill göra.
Teknisk granskning i Formel granskning
- Genomförs av experter
- Hittar tekniska lösningar och fel
Inspektion i Formel granskning
- Roller som moderator, författare, granskare, chef (money), inspektionschef
- Man har ett start/slut mål
Falgropar:
- Brist på utbildning — man vet ej vilka rutiner som finns
- Att vara dålig på att dokumentera
- Brist på stöd från ledningen(tid och resurser)
Metoder för att mäta Organisationers testmognad
TPI - Test process improvments
CMM - Capability Maturity Model
Vad ingår i CMM?
- Initial - oförutsägbar, kostar mycket pengar, försenat
• 2. Repeterbar - Väl planerade projekt
• 3. Definierad - Inger rådgivning för projekt
• 4. Styrd - Mättningar görs för att nå kraven
• 5. Optimerad - Ger förutsättningar för att hantera förändringar.