Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Relevanta dokument
Föreläsning 3 Verifiering och Validering

Föreläsning 3 Verifiering och Validering

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

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

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

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

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

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

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

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

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Exercise 1b: Requirements evaluation

Exercise 1b: Requirements evaluation

Verifiering & validering -

Några grundläggande begrepp

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

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

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

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

Projektplan, Cykelgarage

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Föreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg

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

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

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

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning

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

Detta har hänt... Agenda. Kursinformation. Kursinformation

Föreläsning 5 Processer, vidare utveckling

Föreläsning 5 Processer, vidare utveckling

Testplan Cykelgarage

Detta har hänt... Kursinformation. Agenda. Kursinformation

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

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

Detta har hänt... Sammanfattning - Krav. Agenda F2. Föreläsning 2: Projektplanering & granskning

Hemtentamen: ETSA02 Programvaruutveckling Metodik

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

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

Processbeskrivning Test

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant

Föreläsning 6. Utvärdering, om tenta, avrundning

Föreläsning 6. Utvärdering, om tenta, avrundning. Agenda. Kursinformation. Schemalagda kursmoment. Jonas Wisbrant. Kursinformation

Utmaning. Föreläsning 1: Kursen & Projektuppgift Utvecklingsprojekt & Kravhantering. Agenda F1. Jonas Wisbrant - kort CV

Streamade föreläsningar på webben

Streamade föreläsningar på webben. Föreläsning 1: Kursen & Projektuppgift. Utvecklingsprojekt & Kravhantering. Utmaning. Jonas Wisbrant - kort CV

Kursöversikt Certifierad Mjukvarutestare

Testplanering, test-first, testverktyg

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

ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik

Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15. Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1

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

men borde vi inte också testa kraven? Robert Bornelind

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

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

Konstruktion av datorspråk

Introduktion Vi har som uppgift att göra ett systemutvecklingsprojekt åt en kund. Målet är att tillfredställa alla behov denne kund har.

Streamade föreläsningar på webben

ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik. Föreläsning 1 Markus Borg. Flickr: carlcollins.

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

men borde vi inte också testa kraven?

Programdesign. Dokumentera. Dokumentera

Föreläsning 5 Processer Vidare utveckling

Mer om språk och Ruby

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

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

Mer om språk och Ruby

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

produkters egenskaper och innehåll

Föreläsning 4 Arkitektur, design, kodning

Sammanfattningar Essentials of Software Engineering

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

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

Regressionstestning teori och praktik

Mer om kodkvalitet. Mer om kodkvalitet. Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité?

Var är vi? Föreläsning 4 Arkitektur, design, kodning. Agenda. Kursinformation. Produktlinjer. Konfigurationshantering - forts. Detta har hänt...

Föreläsning 4 Arkitektur, design, kodning

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

ETSA02 Programvaruutveckling Metodik Föreläsning 1 Jonas Wisbrant

Diskutera medan vi väntar

Övningstenta (Kursplan 2011) Ver 2015,

PH Bicycle Storage 8000 Testplan

Rutinbeskrivning Mallar för test

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

Agil testning i SCRUM

Exempel på verklig projektplan

konfiguration och version och variant?

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

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

Streamade föreläsningar på webben. Medan vi väntar: Diskutera. Utmaning. Föreläsning 1: Projektuppgift & kravhantering. Om man utvecklar ett system...

Medan vi väntar: Diskutera

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

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande:

PlantPuppy Räddaren för den som inte kan hålla växterna vid liv

Kurser och seminarier från AddQ Consulting

Funktioner. TDDD73 Funktionell och imperativ programmering i Python Föreläsning 8. Peter Dalenius Institutionen för datavetenskap

Metoder och verktyg för funktionssäkerhet

Kurs-PM fo r HI1028, Projektkurs inom programvaruutveckling, VT16

Transkript:

Föreläsning 3: Test och efterläsning om kodning Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Kursinformation Detta har hänt: Pratat och skapat krav (och plan) Övning 2 Riskhantering, intressenter och kravgranskning. På gång: Nu: Föreläsning 3 Testning Kod, specifikationer, Bitbucket mm Onsdag kl 13-17: Kod- och projektjour i E:2182-84 Onsdag kl 23.59: L3 =Projektplan + krav 0.99 + föregående granskning Driven Rätt filnamn på rätt plats så att vi hittar ICE: Projekthandledare Fortsätt gärna arbeta med annat... Torsdag kl 8 12: Ö3: Test - Ö3 U1-8 (i förväg) Måndag nästa vecka: F4 + Fb3

Kort om projektbetygen 60 poäng totalt, fördelade på 9 kategorier Några riktlinjer Generellt: +välskrivet +struktur +förtroendeingivande Projektplan: +tydlig +realistiska risker avsnitt saknas Kravspecifikation: + krav med kvalitet +matchar målen Designdokument: -matchar inte slutprodukten Test: +heltäckande +enkla att utföra överlappande tester Slutprodukt: +bra UI krav ej uppfyllda går att krascha Instruktion: +tydlig Granskningar: +olika typer av brister protokoll saknas Versionshantering: +referenser stämmer +ändringshantering korrekt Teamwork: +feedback +kommunikation deadlines

Agenda Verifiering & Validering Vad är testning? Testprocessen Testtekniker Programmering Bitbucket (och Github) för att samarbeta kring källkod) Fråga om specifikationerna - hw interface - hw testdrivers Fråga om färdig programkod - interface hårdvara - programkod för testdrivrutiner Varför trillade den första Ariane V-raketen ned? Vad kan gå fel? Vad brukar gå fel? Varför då? Vad kan man göra åt det? Ariane 5 Flight 501 Failure A Case Study of Errors Ken Robinson School of Computer Science and Engineering University of New South Wales, 16th December 1996 Revised: 22rd March 2011 http://www.di.unito.it/~damiani/ariane5rep.html

Verifiering & validering Programvaruutveckling - Metodik 2016 Jonas Wisbrant 7 Verifiering & Validering Verifiering Bygger vi produkten rätt? Följer vi kravspecifikationen? Validering Bygger vi rätt produkt? Kommer beställaren att bli nöjd? Når beställaren sina affärsmål?

Verifiering & Validering Lund University Computer Science Markus Jonas Wisbrant Borg ETSA01 ETSA02 Ingenjörsprocessen Programvaruutveckling - Metodik - Metodik Varför testar man? Man vill hitta fel för att man vill förbättra produkten Man vill visa att produkten är bra Man vill ta reda på hur många fel som finns i produkten för att man vill veta hur bra produkten är. men oavsett vilket så kan man aldrig visa att det inte finns fel, bara att det finns fel Lund University Computer Science Markus Jonas Wisbrant Borg ETSA01 ETSA02 Ingenjörsprocessen Programvaruutveckling - Metodik - Metodik

Fel, fel, och fel Fel (error) Fel (fault) Fel (failure) Fel felrättning felidentifiering Testprocessen vs V-modellen observation av fel

Testprocessen vs. Design och Integration acceptanstest system pp n tte r -u Bo systemtest To pp en ne integrationstest enhetstest komponenter = består av Dynamisk vs statisk testning Statisk testning (Granskning): Hitta fel utan att exekvera programmet Verktyg? Ja tack! Dynamisk testning: Exekvera programmet för att hitta fel

Enhetstest - testfall för procedurer/metoder För att testa procedur F(x1,...xn), gör följande: Sätt tillstånd till rätt värde Definiera värden för parametrar x1, xn Anropa Svar = F(x1,...xn) Jämför Svar <=> Förväntat resultat Registrera om resultatet var korrekt eller inte Kan stödjas med verktyg, t ex CuTest, CUnit, Med objektorientering kan t ex JUnit användas Integrationstest / Systemtest Testfall bestäms t ex baserat på specifikationer av gränssnitt i design Test utförs i samband med integration av olika delar av systemet Testfall måste utföras för varje del som integreras automatisering önskvärd Regressionstest = upprepad testning vid ändring av programvara Kan utföras under utveckling och under underhåll

Testplanering - steg ett i processen Indata Projektplan Kravspec... Design Manual Prototyper... Testplan Testprocess (t ex stat / dyn, miljö) Kravspårning Testobjekt Tidplan (test) Dokumentation av resultat HW & SW requirements Begränsningar Testfall (= testspecifikation) Testplanering Testfall, två exempel Test case: Buy cola Test case: Press more than one button Pre-condition: Machine in start state. Pre-condition: Machine in start state. Post-condition: Machine in start state. A cola can received. Post-condition: Machine in start state. A water can is received. 1. 2. 3. 4. 1. 2. 3. 4. Press the cola selection button. Insert a 10kr coin. Insert a 5kr coin. Receive a cola can. Press the water selection button. Press the beer selection button. Insert a 5kr coin. Receive a water can.

Spårbarhet mot krav Alla krav ska testas av minst ett testfall Alla testfall ska testa minst ett krav Detta kan t ex visas i en matris (krav x testfall) i testplanen Spårbarhet Hur kraven uppfylls Test - krav

Black-box vs. White-box Black-box Programet ses som en svart låda och man utnyttjar inte någon kunskap om koden i samband med definition av testfall Kravspecifikationen används för att ta fram testfall Testar utfall/resultat White-box Kräver tillgång till koden Testar utfall och inre funktion - täcker vi koden - täcker vi vägarna Black-box -test Programkoden ses som en svart låda och man utnyttjar inte någon kunskap om koden i samband med definition av testfall Kravspecifikationen används för att ta fram testfall

Ekvivalenspartitionering Hitta värden för in och utdata som behandlas på inbördes enhetligt sätt ekvivalensklasser ekvivalensklasser indata utdata ekvivalensklasser Gränsvärdestestning - exempel med två variabler För n variabler, ett intervall var Vanlig gränsvärden: innanför eller på gränser => 4n+1 testfall (gröna) variabel 1 Robust-test: även utanför gränserna => 6n+1 testfall (röda) Worst-case: även alla kombinationer av gränsfall (men inte robust-test): 5^n testfall (vita) variabel 2

Parvis testning Vissa fel single mode T ex lägga in viss typ av kurs Andra fel uppstår som kombination av två parametrar: T ex lägga in viss typ av kurs för viss institution Parvis testning: täck alla möjliga kombinationer av värden för alla möjliga par av parametrar Antag ett system för att hantera kurser och studenter, med följande parametrar: Kurstyp (G1, G2, A) Institution (CS, EIT, Math, ) År (2012, 2013, 2014, 2015) Studentgrupp (C, D, E, ) Eller ännu fler parametrar T ex lägga in viss typ av kurs för viss institution för visst år och viss studentgrupp Stresstestning Kontrollera vad som händer vid hög belastning, t ex: # telefoner > max # samtidiga samtal > max ERROR: ArrayOutOfBounds?

Genomföra, dokumentera och rapportera test I simulerad miljö endast i utvecklingsmiljön (SW) I mer verklig miljö i testuppsättning (SW/HW) I verklig miljö i äkta (SW/HW) med äkta användare Alla fel rapporteras/registreras Testfall Resultat Feltyp Allvarlighet Ev ytterligare beskrivning (felkod?) Testprotokoll Redogör för resultatet av test t.ex. en tabell med testfall, testresultat datum, etc

Skillnader och likheter mellan en testrapport och ett granskningsprotokoll? Färdigtestat? När vi gjort vad vi lovat i projekt- och testplan: t ex visat att alla kraven på alla abstraktionsnivåer är uppfyllda:...traverserat alla grenar i koden......med alla upptänkliga kombinationer av variabler......på alla plattformar......med max+ belastning

Sammanfattning - Test Testning kan påvisa fel, men inte bevisa att det inte finns fel Testprocessen kopplar samman integration med testning: enhetstest, integrationstest, systemtest, acceptanstest Testmetoder kan vara antingen black box eller white box Dokumentgranskning är en testform där man kritiskt läser ett dokument på ett systematiskt sätt. Verifiering Validering Dynamisk testning Statisk testning Enhetstest Integrationstest Systemtest Acceptanstest Testfall Kravtäckningsmatris Black-box-test White-box-test Ekvivalensklass-partitionering Gränsvärdestestning Parvis testning Stresstest Kodtäckning Bransch coverage Testprotokoll Felrapport Kursinformation Detta har hänt: Pratat och skapat krav (och plan) Övning 2 Riskhantering, intressenter och kravgranskning. På gång: Nu: Föreläsning 3 Testning Kod, specifikationer, Bitbucket mm Onsdag kl 13-17: Kod- och projektjour i E:2182-84 Onsdag kl 23.59: L3 =Projektplan + krav 0.99 + föregående granskning Driven Rätt filnamn på rätt plats så att vi hittar ICE: Projekthandledare Fortsätt gärna arbeta med annat... Torsdag kl 8 12: Ö3: Test - Ö3 U1-8 (i förväg) Måndag nästa vecka: F4 + Fb3

Agenda Verifiering & Validering Vad är testning? Testprocessen Testtekniker Programmering Bitbucket (och Github) för att samarbeta kring källkod) Fråga om specifikationerna - hw interface - hw testdrivers Fråga om färdig programkod - interface hårdvara - programkod för testdrivrutiner