Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

Relevanta dokument
Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

Några grundläggande begrepp

Sammanfattningar Essentials of Software Engineering

Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Agil testning i SCRUM

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar

Föreläsning 3 Verifiering och Validering

Testplanering, test-first, testverktyg

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Verifikation, validering och testning

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Filip Strömbäck. Verifikation, validering och testning

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7)

Testning av program. Verklig modell för programutveckling

Övningstenta (Kursplan 2011) Ver 2015,

REGELVERK & HANDBÖCKER

Föreläsning 3 Verifiering och Validering

Är instruktionerna oklara, projektet rörigt och allmänt frustrerande?

Processbeskrivning Test

Verifiering & validering -

STUM. Övergripande Testplan. Sammanfattning. Redaktör: Thomas Janowski Version: Syntetiskt tal utan modulering

Processinformation. Förvaltningsmöte Elvis och SURF Kerstin Lyngfelt Processledare VGR IT

men borde vi inte också testa kraven?

Regressionstestning teori och praktik

V!cto. Att tjäna pengar genom bättre testning med

Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp. Föreläsning 5: V&V II + Design II Efterläsning Kodning

Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt

RUP - Rational Unified Process

Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Detta har hänt... Kursinformation. Utse kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

Metoder och verktyg för funktionssäkerhet

Agenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation

Föreläsning 3: Test, Konfigurationer. Övning 2 Riskhantering, intressenter och kravgranskning.

Enhetstester på.netplattformen

Vad är RTCA DO-178C? och: Hur arbetar Saab med dessa krav? Lars Ljungberg, Saab AB, Avionics Systems

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Kurser och seminarier från AddQ Consulting

Visuell GUI Testning

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Agenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning

Erfarenheter av automatiserad testning

Konstruktion av datorspråk

Användning av testautomation inom Extendas utvecklingsorganisation

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT. Övning 2 Riskhantering, intressenter och kravgranskning.

Agenda. Kursinformation. Manual för systemstart. Föreläsning 6: Summering och om tentamen. Målgrupp:

Agenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation

RUP Rational Unified Process. 17 november 2004

Agil programutveckling

Exercise 1b: Requirements evaluation

Programdesign. Dokumentera. Dokumentera

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

Verifiering & Validering. Integrationstest. Enhetstest. Verifiering och & validering rep. -

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

Övningstenta, examinationsfrågor

Testplan Cykelgarage

Kursöversikt Certifierad Mjukvarutestare

Version Testteam 4 Testledare: Patrik Bäck

Programdesign. minnesutrymme storlek på indata. DA2001 (Föreläsning 15) Datalogi 1 Hösten / 20

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15

Detta har hänt... Jonas Wisbrant - kort CV. Kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Symptom på problemen vid programvaruutveckling

Detta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur?

Testverktyg för programvara skriven i Ada. Hanna Lindh

Vad ska ni göra? Programvaruutveckling för Stora System. Felkostnader. Föreläsning 4. Christin Lindholm. Granskningar. Test, Konfigurationshantering

Exercise 1b: Requirements evaluation

Jonas Hermansson

Vi gjorde allting rätt

men borde vi inte också testa kraven? Robert Bornelind

PH Bicycle Storage 8000 Testplan

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Felsökning. Översikt. Felsökning (debugging) Kodstandard. Kommentarer. Kommentarer. Praktiska råd

Examinationsfrågor

Examinationsfrågor

Exempel på verklig projektplan

Laboration: Whitebox- och blackboxtesting

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

ALM Live. April 2008 Effektivare projektarbete med Visual Studio 2008

Mer om språk och Ruby

Platina och kvalité. Rasmus Staberg, Teknisk direktör,

Agenda. Föreläsning 6: Summering och om tentamen Kursinformation

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Från vaga testuppdrag till förankrad teststrategi

Min frånvaro. Agenda. Föreläsning 4: Design och praktisk testning

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

Specifikationer i kompendiet Övningar på moodle.cs.lth.se Support Onsdag kl i E: (84?) Frågestund: F3

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH

Diskutera medan vi väntar. Agenda. Föreläsning 4: Design och praktisk testning. Arkitektur & Design

Kurser och seminarier från AddQ Consulting

Mer om språk och Ruby

på ett stort spelföretag Andreas Ström

Innehåll. Kravhantering. Kravhantering TDDD06 Introduktion till kravhantering. Vad är kravhantering?

Transkript:

Testning 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer

UP Faser

Elaboration ü Syfte: Fastställa och validera en basarkitektur för systemet vilket ger en stabil grund för den största delen av utvecklingsarbetet i nästa fas. ü Krav Få en mer detaljerad förståelse av kraven. Få en fördjupad förståelse för de kritiska krav som valideras av arkitekturen è T. ex. förstå hur de samverkar ü Design Designa, implementera, och validera è fastställa basarkitekturen. Basarkitektur: Ett skelettsystem, med kritisk funktionalitet ü Riskhantering Mildra de mest kritiska riskerna Följd av tester av arkitekturen.

Testning ü Testningens huvudsakliga syfte är att reducera risker. ü Osäkerhetsfaktorer inom utvecklingen av ny programvara kan få ett projekt att spåra ur. ü Även mindre risker kan orsaka förseningar ü Genom att kontinuerligt testa och lösa påkomna problem kan man Identifiera risknivåer. Fatta väl underbyggda beslut Därmed reducera osäkerhet och risker och få bort fel.

Verifiering & Validering ü Testning kan delas in i Validering och Verifiering ü Validering Validering är en extern Kvalitetssäkringsprocess Fråga till kunden: Bygger vi rätt system? ü Verifiering Verifiering är en intern Kvalitetskontroll Fråga: Bygger vi systemet rätt? Exempel: Verifiering kontrollerar att något är internt korrekt, exempelvis verifierar testning att mjukvaran är korrekt enligt kravspecifikationen, men inte att kraven i sig är de rätta!

UP Testning

Testprocesser ISO29119 (jmf. med UP) Organisationens testprocess Testhanteringsprocesser Statiska tester Dynamiska tester Integritet!!!

Testhanteringsprocessen Organisational Test Process Organisational Test Documentation Feedback on Organisational Test Documentation Test Management Processes Test Planning Test Plan Updates Test Plan Test Monitoring & Control Test Completion Test Completion Report Test Plan, Control Directives Test Measures Test Plan, Control Directives Test Plan, Test Completion Report, Test Measures Test Plan, Control Directives Test Measures Static Test Processes Test Management Processes Dynamic Test Processes

Dynamiska tester (Phase) Test Management Process (Phase) Test Plan Control Directives Dynamic Test Processes Test Measures Test Design & Implementation Test Specification Test Execution Test Results [No Issues Noticed] [Issue Noticed or Retest Result] Test Environment Requirements Test Environment Set-up Test Environment Readiness Report Test Incident Reporting Incident Report

Statiska tester (Phase) Test Management Process (Phase) Test Plan Control Directives Static Test Processes Test Measures Preparation Review Follow-Up

Testning ü Testning utförs i alla faser ü Testning kan ses som destruktiv aktivitet syftet är att generera fel ü Testning kan ses som en konstruktiv aktivitet påvisa att något är korrekt ü Testning av system è Systemintegritet Testning måste ske systematiskt. Måste planeras Måste genomföras på ett strukturerat och kontrollerat sätt

Testhanteringsprocessen Organisational Test Process Organisational Test Documentation Feedback on Organisational Test Documentation Test Management Processes Test Planning Test Plan Updates Test Plan Test Monitoring & Control Test Completion Test Completion Report Test Plan, Control Directives Test Measures Test Plan, Control Directives Test Plan, Test Completion Report, Test Measures Test Plan, Control Directives Test Measures Static Test Processes Test Management Processes Dynamic Test Processes

Test nivåer V-Modellen Krav Acceptanstester Arkitektur Systemtester Detaljerad Design Integrationstester Implementation Unit Tests Vattenfallsliknande modell. Måste överföras till en iterativ, inkrementell, modell!

UP - Testning ü Testdisciplinen fungerar som en tjänst till flera andra discipliner. ü Nyckelaktiviteter: Identifiera och dokumentera kvalitetsdefekter i mjukvaran. Ge rekommendationer avseende den mjukvarans kvalité. Validera de antaganden som görs i krav, analys och design-faserna med hjälp av demonstrationer. Validera mjukvarans funktioner. Verifiera att kraven implementerats korrekt.

Planera testprocessen ü En planering måste besvara följande frågor Varför testar vi? Vad behöver testas? Vem skall testa Hur skall vi testa? Hur skall vi dokumentera? ü Planeringen kan påbörjas direkt i projektet ü Utgångspunkten är kravspecifikationen

Testplanering ü Plan Identifiera testkraven Riskbedömning Arbeta fram en teststrategi Identifiera resurser Ta fram en tidsplan Dokumentera i testplanen

En mall för testplaner ü Introduktion och Bakgrund ü Produktöversikt ü Testmål (objectives) Funktionstestning Kvalitetskrav ü Testomgivning ü Modultester ü Integrationstester ü Systemtester specialfall: Acceptanstest ü Resurser ü Planering ü Rapportmallar

Planering i olika nivåer ü Detta sker I flera steg, på flera nivåer. ü Jämför med projekt planering ü Testplanen è Långsiktig Varför testar vi, funktion & kvalitet (test objectives) Vad skall testas, artefakter (test objects) Testomgivning ü I varje iteration è Kortsiktig Planering utifrån iterationens innehåll och mål Testdesign Revidering av test

Testning kräver också utvecklingsresurser! ü Viktigt att tänka på i planeringen! ü Uppsättning av testomgivningen Testhanteringsverktyg Hantera testfall, specifikation & dokumentation Rapporthantering Drivers - Stubs Emulatorer/simulatorer/hårdvara i test-loopen Kontinuerlig drift och underhåll. ü Develop test-scripts Test-data and expected output

Exempel. Den stora sökmotorn Continuous integration (CI), en strategi inom mjukvaruteknik där man för samman alla utvecklares arbetskopior i en delad mainline flera gånger om dagen.

Forts. Visar antalet testfall som exekveras per dag (genomsnitt). Blå kurva

Testning i en iteration ü I varje iteration behöver man planera för Förberedelser Utförande Analys ü Varning! Dessa aktiviteter är tidsödande!!!

Testförberedelser ü Information från Testgruppen Arkitekter Utvecklare/integratörer ü Vad skall göras Design och implementation av testskript För exekvering av testfallen i iterationen. Kopplat till de releaser som planerats för iterationen Glöm inte Testdata!!!

Testexekvering ü Exekvera testskripten ü Verifiera testresultaten ü Eventuellt genomföra en första felanalys för att Identifiera orsak Lokalisera ü Skriva felrapport Feltyp Var inträffade det. Hur yttrade det sig Koppla till Testfall Testskript Release

Testanalys ü Syftet är att förbättra testningen ü Analysera testdata! ü Kan testerna, testdata och testskript förbättras? ü Statisktestning, exempelvis för att se täckningsgrad av tester på kod. ü Förbättra testerna

Varför? Vad? Hur?

Test Object, Objectives & Techniques 1. Identifiera - Test Object è Vad! 2. Definera - Test Objective è Varför! 3. Välj - Test Technique è Hur! Test Suite Organisational Test Documentation Organisational Test Process Feedback on Organisational Test Documentation Test Management Processes Test Planning Test Plan Updates Test Plan Test Monitoring & Control Test Completion Test Completion Report Test Plan, Control Directives Test Measures Test Plan, Control Directives Test Plan, Test Completion Report, Test Measures Test Plan, Control Directives Test Measures Static Test Processes Test Management Processes Dynamic Test Processes

Test Suite Testsvit ü En samling av testfall för att testa ett mjukvarusystem ü En testsvit innehåller Testfall för olika objekt, mål och tekniker. Information om hur man skall konfigurera SUT (System Under Test) ü Dessutom beskrivs hur systemomgivningen skall sättas upp Organisational Test Process Organisational Test Documentation Feedback on Organisational Test Documentation Test Management Processes Test Plan Updates Test Completion Report Test Planning Test Plan Test Monitoring & Control Test Completion Test Plan, Control Directives Test Plan, Control Directives Test Plan, Test Completion Report, Test Measures Test Plan, Control Directives Test Measures Test Measures Static Test Processes Test Management Processes Dynamic Test Processes

Test Management Processes Organisational Test Process Organisational Test Documentation Feedback on Organisational Test Documentation Test Management Processes Test Planning Test Plan Updates Test Plan Test Monitoring & Control Test Completion Test Completion Report Test Plan, Control Directives Test Measures Test Plan, Control Directives Test Plan, Test Completion Report, Test Measures Test Plan, Control Directives Test Measures Static Test Processes Test Management Processes Dynamic Test Processes

Test nivåer kopplat till faser ü I varje iteration kan vi testa på olika nivåer ü Unit-test kopplas oftast direkt till utvecklare ü Funktions/Integrationstester ü Systemtester ü Acceptanstest, sent i transition-fasen Kravspec. Arkitekturdesign Detaljerad design Implementation Acceptanstest Systemtest Integrationstest Unit-test

Unittester (UT) ü UT, verifiera de minsta testbara enheterna i ett system. ü Test Object är unit (typiskt en klass eller metod) ü Test Objective är att identifiera fel/defekter i koden. ü Dynamisktestning UT använder ofta s.k. stukturtestning ( white box testing ). Utförs därför oftast av utvecklare med direkt tillgång till koden Man mäter kodtäckning (code coverage) ü Statisktestning Granskningar Kodstandard

En process för dynamiska tester. (Phase) Test Management Process (Phase) Test Plan Control Directives Dynamic Test Processes Test Measures Test Design & Implementation Test Specification Test Execution Test Results [No Issues Noticed] [Issue Noticed or Retest Result] Test Environment Requirements Test Environment Set-up Test Environment Readiness Report Test Incident Reporting Incident Report

Enhetstester (Unit Test) ü För enhetstester kan man använda olika typer av verktyg för att effektivisera. Exempelvis Testfallsgeneratorer och Exekveringsstöd Kodtäckningsverktyg Emulatorer. ü Testspecifikationerna baseras på den detaljerade designen för en enhet! Kravspec. Arkitekturdesign Detaljerad design Implementation Acceptanstest Systemtest Integrationstest Unit-test

Enhetstestning, Olika strategier ü Mål (objective) Identifiera defekter ü Utmaning Testa så mycket som möjligt av koden Med ett så litet antal testfall som möjligt Optimeringsproblem!! ü Strategier Black-box, enheten ses som en funktion. White-box, strukturtestning med kodtäckning.

Strategi Black-box Testning Testdata Funktion Testresultat Indata mappas till förväntat resultat

Black-box testning Category Partitioning ü Delar upp indatadomänen i kategorier som sedan delas upp i val ü Analysera enheten som skall testas (endast signatur och specifikation) ü Identifiera partitioner (uppdelningar)av ekvivalenta indata och utdata. ü Tar bort redundans och minimerar storleken på testsviten ü Tittar på gränsvärden! ü Testaren känner inte till hur enheten ser ut internt. ü Tekniken är en systematisering av hur erfarna testare arbetar.

Category Partitioning, steg ü Bryt ned den funktionella specifikationen i enheter. ü Identifiera parametrar och omgivningsvillkor ü Identifiera kategorier i informationen. ü Partitionera vare kategori i val. ü Skriv testspecifikationer för varje enhet

Sortering exempel ü Kategorier: Array s size ü Val: Elementtyp Maxvärde Minvärde Position för max och minvärden Längd: { 0, 1, 2.. 100, 100.. INF } Typ: { Integer, Character, Array, Record, } Max:... Exempel: Sortering Specifikation: Input: array av varierande längd och av godtycklig typ Output: Permutation av indata, sorterad Minimumvärde Maximumvärde Parameterar: Array

White-box testning (strukturtestning) ü Analysera enhetens Signatur, Specifikation, Implementation ü Testfallen arbetas fram efter implementationens struktur (call-graph) ü Generera test-data så att så mycket som möjligt av koden täcks ü Hur många testfall behövs? ü Coverage criteria

White-box testning Process 1. Välj coverage criteria 2. Generera Control flow grafer 3. Instrumentera koden för att mäta täckning 4. Arbeta fram testfall 5. Exekvera testerna 6. Analysera täckning 1. Upprepa 4 2. Avsluta (Phase) Test Plan Test Design & Implementation (Phase) Test Management Process Test Specification Control Directives Dynamic Test Processes Test Execution Test Results Test Measures [No Issues Noticed] [Issue Noticed or Retest Result] Test Environment Requirements Test Environment Set-up Test Environment Readiness Report Test Incident Reporting Incident Report

Inför exekvering, förberedelser ü Vad kan behövas ü Stubs, simulerar funktionalitet som ännu inte finns ü Driver, ersätter anropande metod som inte heller implementerats ü Sequencing, metoder som sätter upp och tar ned testomgivningen Exempelvis, initierar en databas innan testerna Återställer den efter testet är avslutat

Iterativutveckling - regressionstester ü I varje iteration sker ett inkrement, d.v.s. ett tillägg ü Tyvärr räcker det inte att bara testa tillägget. ü Alla beroenden måste också testas. ü Att testa sådant som inte borde ha förändrats i innevarande iteration kallas regressionstestning. ü Exempel Beroenden Regressionstester Ändrat Om-test

Nästa vecka ü Testning i praktiken ü Test driven design ü SCRUM