4.3 White-Box-testtekniker Flashcards
Vad är kodsatstestning?
Syftet är att designa testfall som exekverar kodsatser tills en acceptabel täckningsgrad uppnås. Vid kodsatstestning är täckningsobjekten exekverbara kodsatser.
Vad är 100% täckning i kodsatstäckning?
När 100 % kodsatstäckning uppnås säkerställer det att alla exekverbara kodsatser i koden har testats minst en gång.
Täckning mäts som antalet kodsatser
som exekverats av testfallen dividerat med det totala antalet exekverbara kodsatserna och uttrycks i procent.
Hur hittar man en defekt med kodsatstestning?
Att man kör en specifik del av koden och ser om det fungerar eller inte, som när man programmerar
Vilka defekter kommer inte kodsatstestning upptäcka?
Defekter som är databeroende (t.ex. en
division med noll som bara misslyckas när en nämnare är noll) kanske inte upptäcks.
Dessutom säkerställer inte 100 % kodsatstäckning att all beslutslogik har testats eftersom den kanske inte har exekverat alla grenar (se kapitel 4.3.2) i koden.
Vad är kodgrenstestning?
En kodgren är en överföring av kontrollen mellan två noder i ett kontrollflödesdiagram, som visar de möjliga sekvenserna i vilka källkodssatserna exekveras i testobjektet.
Varje kontrollöverföring kan vara antingen ovillkorad (dvs. linjär kod) eller villkorad (d.v.s. ett beslutsutfall)
Ofta if-satser men kan också vara typ switch
Hur uppnår man 100 % täckning med kodgrenstestning?
Alla kodgrenar, både villkorade och ovillkorade har körts av testfall.
Är kodgrenstäckning och kodsatstäckning detsamma?
Nej men om man uppnår 100% kodgrenstäckning så uppnår man också 100% kodsatstäckning. Men inte vice versa.
Vad motsvarar exempelvis villkorade kodgrenar i kodgrenstestning?
-Sant eller falskt utifrån ett if … then
-Resultat från switch case
-Beslut att avsluta eller fortsätta i en loop
Hur många kodgrenar är det i en if-sats?
2
Hur många kodgrenar är det i en switch statement?
En för alla cases.
När är det svårt med black box testing?
När specifikationen är vag eller ofärdig
I vilka situationer kan det vara bra att använda white box testing?
När specifikationen är vag så det blir svårt att göra black box testing, då kan man hitta några av de tänka funktionerna genom att förstå logiken som användes för att uppnå dem
Eller i statisk testning
Eller för att lägga till testfall för att öka täckningen
Vad är en nackdel med white box testing?
Om mjukvaran är dåligt skriven eller ofärdig så testar vi fel ska. Man kanske inte hittar saker på grund av uråldtig eller dålig mjukvara.
Om det inte finns specifikation så hjälper det inte med mjukvaran om den implementerat fel sak.
Kan man använda white box tekniker i statisk testning?
Ja. Tex kod som inte ännu är redo att exekvieras. Även pseudocode eller top-down logiker.
De kan bli modelerade med ett kontrollflödesdiagram
Kan black box testninng på riktigt ge ett mått på kodtäckning?
Nej white box täckningsmätning ger ett objektivt mått på täckningen och nödvändig information för att skapa ytterligare tester för att öka täckningen