Föreläsning 3 Verifiering och Validering

Relevanta dokument
Föreläsning 3 Verifiering och Validering

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

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

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

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.

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

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

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

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

Verifiering & validering -

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

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

Föreläsning 5 Processer, vidare utveckling

Föreläsning 5 Processer, vidare utveckling

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

Några grundläggande begrepp

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

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

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

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

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

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

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

Exercise 1b: Requirements evaluation

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

Exercise 1b: Requirements evaluation

Projektplan, Cykelgarage

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

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

Föreläsning 4 Arkitektur, design, kodning

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

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

Föreläsning 5 Processer Vidare utveckling

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

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

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

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

Föreläsning 4 Arkitektur, design, kodning

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

konfiguration och version och variant?

Diskutera medan vi väntar

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

Kursöversikt Certifierad Mjukvarutestare

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

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

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

Testplan Cykelgarage

Streamade föreläsningar på webben

men borde vi inte också testa kraven? Robert Bornelind

Testplanering, test-first, testverktyg

Processbeskrivning Test

produkters egenskaper och innehåll

Diskutera medan vi väntar. Detta har hänt... Agenda. Föreläsning 5: Processer och vidareutveckling. Kan man utveckla programvara

Sammanfattningar Essentials of Software Engineering

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

men borde vi inte också testa kraven?

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

Regressionstestning teori och praktik

Hemtentamen: ETSA02 Programvaruutveckling Metodik

Metoder och verktyg för funktionssäkerhet

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

Christin Lindholm. Programvaruutveckling av Stora System, PUSS ETS032. Välkomna! Vad är ett projekt?

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

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

Konstruktion av datorspråk

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

Testbara krav. SAST Syd Ställ gärna frågor under presentationen eller efteråt Åhörarkopior distribueras efteråt

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

Innehåll (3) Innehåll (2) Innehåll (5) Innehåll (4) Innehåll (6) Innehåll (7) Dokumenthistorik. beställare, Översiktlig beskrivning av projektet

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

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

Idag. EDAA35: Utvärdering av programvarusystem. Mål. Innehåll. Kursmoment. Lärare

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

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

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

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

Programdesign. Dokumentera. Dokumentera

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

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

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

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

Medan vi väntar: Diskutera

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

Övningstenta (Kursplan 2011) Ver 2015,

ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik

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

Mer om språk och Ruby

Föreläsning 4. Programvaruutveckling för Stora System

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

Sänk kostnaderna genom a/ ställa rä/ krav och testa effektivt

Transkript:

ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 3 Verifiering och Validering Jonas Wisbrant 2 Detta har hänt... Pratat och skapat krav och plan Några har kommit i kontakt med IP3-projekt Övning 2 Riskhantering, intressenter och kravgranskning. Genomfört granskningar inför 2 x 0.99? 3

Är instruktionerna oklara, projektet rörigt och allmänt frustrerande? Agenda Kursinformation: Kursmål Verifiering och validering Vad är testning? Testprocessen Testtekniker Konfigurationshantering - intro: står inte så tydligt i boken regler för projektet finns i projektmaterialet på kurswebben 5

Kursinformation V 3: Nu kl 13 F: Testning, versioner Idag kl 24 deadline: PP0.99 + SRS0.99 + föregående granskningar wiki-ice: SMS --> 0730-24 96 75 ange: Grupp + problem To 12.30: Kursombudsmöte - tankar och idéer till: Mikael Bergquist & Bjarni Birgersson (C) Per Ahlbom & Alexander Pieta Theofanous (D) Carolin Sundvik (I) To (eller ÖK): Återkoppling på 2 x 0.99 inför MS1 Övning 3: Test Om testfall: T.1-8 (i förväg) Skapa testplan: T.15-16 V 4: 0.x Individual inspection Inspection meeting Inspection protocoll Supervisor feedback 1.0 6 Hög tid att kolla på koden Downloads på: http://cs.lth.se/kurs/ etsa01/projekt2011/ haardvarugraenssnitt_oc h_drivrutiner/ 0.99 Supervisor review Må kl 13 F: Arkitektur, design, kodning, versioner Ti kl 24: MS 1 eller 0.991... To Ö: Mer om test Good version 7 Better version 0.0991

Kursmål (beställningen) Kunskap och förståelse kunna definiera grundläggande begrepp inom utveckling av stora programvarusystem. kunna beskriva de vanligaste processerna för utveckling av stora programvarusystem. kunna förklara de viktigaste momenten i kravhanteringsprocessen. kunna förklara hur testning går till. kunna beskriva vad en arkitekturdesign är. kunna beskriva de viktigaste stegen i projektplanering och projektuppföljning. kunna beskriva hur organisationer planerar och genomför en serie av projekt. Färdighet och förmåga kunna utveckla projektplan, kravspecifikation och testplan för ett mindre projekt. kunna granska projektplan, kravspecifikation och testplan för ett mindre projekt. kunna skriftligen formulera text i projektdokumentation. Värderingsförmåga och förhållningssätt förstå komplexiteten i uppgiften att utveckla ett programvarusystem. ha förståelse för ingenjörens yrkesroll. 8 Varför trillade den första Ariane V-raketen ned?

Verifiering och validering 10 Verifiering bygger vi produkten rätt? Dvs följer vi kravspecifikationen? Validering bygger vi rätt produkt? Dvs kommer beställaren att bli nöjd? 11

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 12 Fel, fel, och fel Fault Fel (failure) Fel Fel (error) felrättning felidentifiering observation av fel 13

Testprocessen och integration [Acceptanstest] system systemtest. up m to t Bo p To do n w integrationstest. enhetstest. komponenter = består av 14 Testprocessen, V-modellen Acceptanstest (VoV) Kravhantering Systemtest (Verifiering) Integrations-test Design Implementation Enhetstest 15

Dynamisk vs statisk testning Dynamisk testning: Exekvera programmet för att hitta fel Statisk testning: Hitta fel utan att exekvera programmet projekt statisk dynamisk Verktyg? Ja tack! Statiskt Done! 16 Enhetstest, testfall för procedurer För att testa procedur F(x1,...xn), gör följande: 1. Sätt tillstånd till rätt värde 2. Definiera värden för parametrar x1, xn 3. Anropa Svar = F(x1,...xn) 4. Jämför Svar med rätt resultat 5. Registrera om resultatet var korrekt eller inte Kan stödjas med verktyg, t ex CuTest, CUnit, Med objektorientering kan t ex JUnit användas 17

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 18 Testplanering Indata: Projektplan Kravspec... Design Manual Prototyper... Testplanering Testplan: Testprocess (t ex stat / dyn, miljö) Kravspårning Testobjekt Tidplan (test) Dokumentation av resultat HW & SW requirements Begränsningar Testfall 19

Testfall, två exempel Test case: Buy cola Pre-condition: Machine in start state. Post-condition: Machine in start state. A cola can received. 1.Press the cola selection button. 2.Insert a 10kr coin. 3.Insert a 5kr coin. 4.Receive a cola can. Test case: Press more than one button Pre-condition: Machine in start state. Post-condition: Machine in start state. A water can is received. 1.Press the water selection button. 2.Press the beer selection button. 3.Insert a 5kr coin. 4.Receive a water can. Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F3 20 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 21

Black-box vs. White-box Black-box Programkoden ses som en svart låda och man utnyttjar inte någon kunskap om koden i samband med definition av testfall White-box - Kräver tillgång till koden - Tanken är att testfallen ska täcka all kod Kravspecifikationen används för att ta fram testfall 22 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 23

Ekvivalenspartitionering Hitta värden för in och utdata som behandlas på samma sätt Komponent 24 Gränsvärdestestning 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 25

Parvis testning Antag ett system för att hantera kurser och studenter, med följande parametrar: Kurstyp (G1, G2, A) Institution (CS, EIT, Matematik, ) År (2006, 2007, 2008, 2015) Studentgrupp (C, D, E, ) 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 Eller ännu fler parametrar T ex lägga in viss typ av kurs för viss institution för visst år och viss studentgrupp Lunds universitet / LTH / Datavetenskap / ETSA01 VT 2010 / F3 26 Parvis testning värden parametrar n parametrar med m möjliga värden vardera ger m 2 par av värden för varje par av parametrar Första med resten ger m 2 (n-1) par, andra med resten m 2 (n-2) par, osv Antal par = Varje testfall täcker n # m 2 (n " k) = m 2 #(n " k) = m 2 n k=1! Om varje testfall täcker olika par krävs det alltså m 2 testfall I praktiken omöjligt ha unika par för varje testfall! och olika antal värden för olika parametrar n k=1 n"1 # (n " n) + (n "1) 2 n"1 # (n "1) + (n " 2) +...+1 = i = i = n(n "1) /2 i=1 i= 0 = m 2 n(n "1) /2 par 27

Stresstestning Kontrollera vad som händer vid hög belastning, t ex: Telefonväxel # telefoner > max # samtidiga samtal > max ERROR: ArrayOutOfBounds? 28 White-box testing Kräver tillgång till koden Tanken är att testfallen ska täcka all kod Men vad menas med all kod? 29

Täcka rader Exekvera alla rader minst en gång T ex 2 vägar genom if-then-else, och en väg genom if-then Verktyg användbara 30 Täcka vägar CC = Cyclomatic Complexity Följa alla linjärt oberoende vägar minst en gång. - T ex 2 vägar för if-then-elsestatement precis som för if-then Visualisera eventuellt genom att rita graf Antal linjärt oberoende vägar: CC = #(bågar) - #(noder) +2 31

Enkla exempel If: CC = 3-3+2 = 2 Statement cov: 1 If-else: CC = 4-4+2 = 2 Statement cov: 2 CC = 8-7+2 = 3 Statement cov: 2 32 Ett lite större exempel CC = #bågar - #noder +2 = = 16-14+2 = 4 CC används också som ett mått på komplexitet 33

Andra förslag på white box test Branch coverage täcka alla bågar Simple path coverage (alla vägar, utan att ta hänsyn till om de är linjärt oberoende) [Fenton et al., Software Metrics a Rigorous and Practical Approach ] 34 Genomförande av test och rapportering I simulerad miljö endast i utvecklingsmiljön I mer verklig miljö i testuppsättning Tänk kommunikation: - mellan individer och organisationer - över tiden I verklig miljö Alla fel rapporteras/registreras Testfall Resultat Feltyp Allvarlighet Ev ytterligare beskrivning Tänk dokumentation: - Vad fungerar? - Vad fungerar ännu INTE? 35

Testprotokoll Redogör för resultatet av test T ex en tabell med testfall, testresultat datum, etc 36 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 Tillräckligt bra? 38 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 Ekvivalenspartitionering Gränsvärdestestning Parvis testning Stresstest Code coverage Bransch coverage Testprotokoll Felrapport 39

Konfigurationshantering - intro [mer nästa vecka] 40 Många dokument Testpro tokoll Design Utb.- plan Test Manualer Projektplan Krav Process Kod Binär Olika versioner Olika produktvarianter Olika kunder 41

Tekniska och politiska versioner? Teknisk version varje gång man sparar - Praktiskt men inget man fattar beslut kring Politisk version när man ändrar nummer: - Låser historiken - Underlag för beslut - Beskriver förändringar - Kopplar ihop olika dokument - Möjliggör ordnad förgrening 42 Ändringshantering i ert projekt Baserat på: Efter baseline dvs efter att milstolpe uppnåtts Ansvariga för dokument som bestämmer vem som får ändra vad Uppdatering av versionsnummer Spridande av information inom gruppen Speciella regler för kravspecifikationen (efter baseline får man inte ändra utan att ansöka hos projekthandledaren) Kort version av vår process: 1. Person A finds out that there is something wrong in a document 2. Person A locates the fault in the document (currently in version 1.0) 3. Person A notifies the person responsible for the document (person B) and asks for permission to change it 4. Person B gives person A permission to change the document 5. Person A updates the document, updates the version number to 1.1 and gives it to person B. 6. Person B is now responsible for telling all persons that are working with the document or depend on it, that there is a new version. 43

Versionshistoria i dokument och ändringsformulär Eller implementera detta i wikin i samråd med handledare 44 Dvs, era versionsnummer för kravspecifikation blir t ex 0.0 första version inom projektet 0.x nya versioner efter arbete med dokumentet 0.99 version inlämnad till projekthandledare 1.0 dokument för godkänd milstolpe 1.1 ny version efter att projekthandledare godkänt ändring 1.2 -- -- - Innan 0.99 gör ni mycket som ni själva vill - Från och med 1.0 ska ni följa procedurer för ändringshantering 45

Om Acceptanstest SMIL 50 år Lunds universitet / LTH / Datavetenskap / ETSA01från VT 2011 / F3 46