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

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

Föreläsning 4. Programvaruutveckling för Stora System. Det var en gång en nallebjörn... Felkostnader. Christin Lindholm.

Christin Lindholm. Programvaruutveckling av Stora Projekt, PUSP ETSF20. Välkomna! Vad händer idag?

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

Christin Lindholm. Programvaruutveckling av Stora Projekt, PUSP ETSF20. Välkomna! Vad händer idag?

Programvaruutveckling för Stora System. Projekthandledning

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Fel och risker. Christin Lindholm

Föreläsning 3. Programvaruutveckling för Stora System. Målsättning i programvaruprojekt. Veckan. Christin Lindholm.

Kursprogram, ETSF20 Programvaruutveckling för stora projekt (PUSP), 7,5 hp

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

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

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

Några grundläggande begrepp

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Föreläsning 3 Verifiering och Validering

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

Kursprogram, ETS032 Programvaruutveckling för stora system (PUSS), 7,5 hp

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

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

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

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

men borde vi inte också testa kraven?

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

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

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

men borde vi inte också testa kraven? Robert Bornelind

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

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

Dokumenthantering. Tieto PPS AH016, 5.1.0, Sida 1

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

Teststrategier och Testcertifiering. Per Strandberg, Maj 2013

Kursprogram: ETSN05 Programvaruutveckling för stora system, 2014 (7,5 hp)

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

Projekthandledning (PH) Grundsystemet (GS) Utvecklingsmiljön (UM)

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

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

Steget efter CAD Data Management. Per Ekholm

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

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. April 2008 Effektivare projektarbete med Visual Studio 2008

Kurser och seminarier från AddQ Consulting

Övningstenta (Kursplan 2011) Ver 2015,

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

Regressionstestning teori och praktik

Exercise 1b: Requirements evaluation

Ramverk för projekt och uppdrag

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

REGELVERK & HANDBÖCKER

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

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

Kursöversikt Certifierad Mjukvarutestare

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

Sammanfattningar Essentials of Software Engineering

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

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

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

Agil testning i SCRUM

Testplanering, test-first, testverktyg

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

Exercise 1b: Requirements evaluation

ISTQB Testarens ledstjärna

Processbeskrivning Test

Konsultbolag1. Testplan för Europa version 2. Testplan Projekt Europa Sid 1 (av 9) Europa-projektet. Dokumenthistorik

Verifiering & validering -

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

Metoder och verktyg för funktionssäkerhet

Copyright Prolore All Rights Reserved.

Programvara i säkerhetskritiska tillämpningar

RUP - Rational Unified Process

SCRUM och mycket mer

Test av livsuppehållande system på Maquet Critical Care

PL_Rutin_Ändringshantering Version 0.2. Ladok3-projektet Lars Jackalin Sida: 1 (8) Ändringshantering

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

Exempel på verklig projektplan

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

Alla rättigheter till materialet reserverade Easec

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

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

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

Vår resa till bra Acceptanstestning. Ingela Hagman Thomas Cook Northern Europe

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

Arbeta i projekt. Anders Hessel ITP-projekt Uppsala Universitet

Testplan Cykelgarage

Laboration: Whitebox- och blackboxtesting

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

Design och konstruktion av grafiska gränssnitt

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

SF Bio App. Repport. Test summary. 1- Syfte. 2. Produktöversikt. Författare: Zina Alhilfi Datum: Version: v1,0

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

Symptom på problemen vid programvaruutveckling

Föreläsning 5 Processer Vidare utveckling

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

Konstruktion av datorspråk

LTH Ingenjörshögskolan

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

Transkript:

Föreläsning 4 Programvaruutveckling för Stora System Christin Lindholm Granskningar Test, Konfigurationshantering Övrigt 2 Vad ska ni göra? Tidrapporteringssystem Administration Tidrapportering Projektledning Projektledare (PG) Systemansvariga (SG) Valfri funktionalitet Utvecklare (UG) Testare (TG) 3 Fas 1 1. Bilda projektgrupper 2. Tillsätta roller 3. Läsa in er på uppgiften och övrigt material 4. Arbeta efter utvecklingsmodellen 5. Skriva en kravspecifikation (SRS) 6. Skriva en projektplan (SDP) 7. Skriva en testspecifikation (SVVS) 8. Boka granskning (Granskningen veckan 6) 9. Lämna in SDP, SRS och SVVS till granskning 10.Gå på granskningsmöte 11. Åtgärda kommentarer (ev omgranskning) 4 12. Baseline

Felkostnader [Alan Davies, 1992] Det var en gång en nallebjörn som trivdes bra med sitt liv tillsammans med pojken som han var nallebjörn åt. Det vill säga, sånär som på en sak: han tyckte inte om när pojken bar honom uppför trappan till sovrummet när de skulle gå och lägga sig. Pojken brukade hålla i nallens ena fot medan han bar honom. I den ställningen kom nallens huvud att hänga ner och slå mot trappstegen - duns, duns, duns, duns, duns...nallen undrade ofta om detta var det enda sättet att bära en björn upp för en trappa. Ibland kände han på sig att det måste finnas ett annat, bättre sätt. Det var bara det att han aldrig kom ihåg att han skulle tänka ut ett bättre sätt, förrän han hängde där med huvudet nedåt igen och det började dunsa; och så länge det dunsade var det svårt att tänka överhuvudtaget, och när det slutat dunsa var ju nallen redan uppe i sovrummet och då fick han annat att tänka på och glömde återigen bort vad det var han skulle komma på ett bättre sätt att göra. Därför blev det hellre aldrig annorlunda Likadant är det med många av dem som utvecklar produkter och tjänster åt industrin. De vet att de inte räcker till för att möta den ständiga efterfrågan på nya produkter och tjänster eller ändra och rätta de gamla och just därför har de inte tid att analysera orsakerna ordentligt. Man slår sitt huvud mot trappstegen. Medan trapporna blir högre och högre. Duns, duns, duns, duns,duns,duns... 5 6 Granskningar Grundläggande tanken enkel: läs granskningsobjektet systematiskt Dvs en manuell teknik med målen att: Hitta fel Sprida kunskap Få beslutsunderlag Dessa mål kan vara olika mycket betonade i olika granskningsformer. Granskningar Viktig teknik för att hitta fel tidigt, istället för att spara dem till testfasen. kan användas i alla steg i utvecklingen, kan ligga till grund för formulering av ingångs- och utgångskriterier ( entry and exit criteria ), kan utgöra värdefulla kontrollpunkter i utvecklingen, ger oss en chans att kvantifiera kvaliteten. 7 8

Om granskningar Olika undersökningar har visat på vinsten med granskningar. Omarbete efter granskning måste läggas in i tidplaner. Positiva bieffekter: spridning av kunskap, gruppkänsla och gemensamt ansvar. En granskning är ingen rättegång! Skilj på sak och person! Granskningars egenskaper Effektiv, Ekonomisk, Formell. Granskningar är en process: det finns faser och roller i samband med en granskning. 9 10 Granskningsprocess Resultat av granskningsmötet Planering - rätt personer, lokal etc. Översikt - genomgång och distribution av material Förberedelser - stöds med checklistor från tidigare erfarenheter Granskningsmöte Sammanställa felen - inte lösa problemen på mötet. Granskningsprotokoll olika typer av fel granskningsbeslut (godkänd, godkänd efter ändringar, omgranskning) Omarbete - identifierade fel skall åtgärdas Uppföljning 11 Fyra resultat: Godkänt Godkänt med komplettering Omgranskning Mötet skjuts upp 12

Granskningsroller Koordinator - ordförande, medlare Sekreterare - skriver protokoll Författare - svarar på frågor Granskare - har före mötet granskat (del av) dokument Designer, Programmerare, Testare, Kund, Kvalitetsutvärderare, Underhållspersonal. 13 Granskningstekniker Checklistor Användningsfall 14 Användning av data Kortsikt: Processtyrning (jmf projektstyrning) exempel: estimering av kvarvarande fel Långsikt: Processförbättring Feltyper Feltyper för varje dokument (se PH:8): SRS SVVP & SVVR STLDD & SDDD Generella feltyper om ej ovanstående passar Felgradering: A, B, C Felklassificering är svårt - kom gärna med förslag på förbättringar. 15 16

Exempel på ingångskriteria för granskning ( entry criteria ) Tidigare dokument skall vara granskade, t.ex. design ska ej granskas förrän specifikationen är granskad. Eventuella standards har följts. Automatiska kontroller skall ha gjorts och vara godkända (t.ex. stavningskontroll) Erfarenheter Effektiviteten i granskningar kan mätas t.ex. m.h.a.: medelantalet nedlagda timmar per hittat fel antalet fel hittade per granskningsenhet (t.ex. per sida design) En del siffror: Effektivitet: granskning är 2-10 gånger mer effektivt än test. Granskning tar tid: 4-15% av ett projekts tid Kan vi motivera detta? Granskningar förbättrar kvaliteten. Granskningar förbättrar produktiviteten. Exempel: fel i drift $10.000, vilket kan bekosta många granskningstimmar. Kan granskningar ersätta test? 17 18 Granskningar i projektet Informella granskningar - kund ej representerad, görs före varje formell granskning. Formella granskningar: Software Specification Review SDP, SRS, SVVS Preliminary Design Review STLDD, SVVI Product Review SVVR, SSD, PFR Acceptanstest Ju bättre informell granskning desto bättre formell granskning 19 Informell granskning Bestäm hur er informella gransknings process ska se ut Vad ska granskas När ska det granskas Av vem (specifika namn) Vem är ansvarig, sammankallande Granska enskilt ->diskutera sedan problemen Vem åtgärdar? Vem kollar? 20

Success factors Ägandeskap över processen Stöd av ledningen Träning 21 22 Nackdel Kostar mycket initialt Slarv - slöseri med tid och pengar Dock blir ett dokuments kvalitet alltid lite bättre även vid dåligt genomförd granskning 23 Begrepp Validering Är det rätt system? Uppfyller vi kundens behov och förväntningar. Verifiering Är systemet rätt? Har vi gjort det vi sa vi skulle göra? Granskning Uppfyller ett objekt sin specifikation Testning Uppfyller ett exekverbart objekt sin specifikation. 24

Test Målet för test är att hitta fel i programvaran att åstadkomma förtroende för produkten inte att bevisa frånvaron av fel. En stor programvaruprodukt bör testas av utvecklaren och en oberoende testgrupp; Testgruppen skall vara oberoende från implementationen och utgå från kravspecifikationen. Testmetoder (PH:7) Två utgångspunkter: Whitebox -> utgår från interna strukturen Blackbox -> utgår från externt observerbar funktionalitet ABS system ABS system 25 26 Två angreppssätt Olika testtekniker Statiskt -> manuell granskning Dynamiskt-> exekvering av testfall Requirements Design Code White-box Coverage Decision Statement Branch Ad Hoc ABS system Black-box Equivalence Partitioning Boundary Value Random Testing Error Guessing Ad Hoc ABS system 27 28

ABS system Decision/Branch coverage McCabe cyclomatic The number of independent paths needed to cover all paths at least once in a program Count number of conditional expressions. If compound conditional expressions, add one per compound item. Visualize by drawing a flow graph Alternative way: CC = #(edges) - #(nodes) +1 while-loop if-then-else case-of -1-10 Equivalence partitioning Systematic way to choose test cases and data values Input or output data with common properties Choose one test case per partition 0 99 50 100 125 Component -10-20 -9 499 50 500 525 ABS system 29 30 ABS system Boundary value analysis A systematic way to choose test cases and data values Input or output data with common properties Choose one test case on each side of the boundary Enhetstest Funktionstest Integrationstest Systemtest Acceptanstest Installationstest Olika testnivåer -1-1 0 99 0 99 100 100 Component -10-10 -9 499-9 499 500 500 31 32

Regressionstest Omtestning av tidigare testfall i samband med: felrättning ändringar tillägg till ett existerande system Regressionstest är tämligen enkelt: Man har redan testfallen Man har ett tidigare utfall, dvs stämmer det fortfarande? Testprocess 1. Identifiera alla testfall -> testspecifikationer (SVVS). 2. Beskriv varje testfall, steg för steg i naturligt språk -> testinstruktion (SVVI). 3. Testa och notera fel och rapportera 4. Regressionstesta och fortsätt testa med nya testfall 5. När ni är nöjda: kontakta kunden för acceptanstest Varför behövs testspecifikationer? Testinstruktioner? Hur mycket behöver vi regressionstesta? 33 34 Testspecifikation Kort och kärnfull formulering Unik numrering Att tänka på Täcka alla (funktionella) krav Referens till krav Testinstruktion Systemläge vid start Systemläge vid slut Förväntat resultat self contained Konfigurationshantering (Configuration Management - CM) CM = kontrollerat sätt att hantera utveckling och förändring av sammansatta system under hela livscykel Varför behövs CM? Parallellisera arbetet Veta i varje läge av utvecklingen hur olika delar beror av varandra och vilka versioner som gäller Uppdateringsstrategi hur inför vi ändringar/ rättningar? 35 36

Olika aktiviteter i CM Identifiering av konfigurationsenheter Benämning av versioner Ändringshantering Statusrapportering Systembyggande sätta samman delar till en helhet Change Control Board (CCB) Förändringskontrollgruppen (FKG) Fattar beslut om ändringar Statusrapport anger historik för varje konfigurationsenhet Problemrapport en slags stafettpinne som dokumenterar besluten och åtgärderna för en specifik ändring/rättning Problemrapport Förändringskontrollgruppen (FKG =PG+SG) Problemrapport Ändringsansvarig 37 Statusrapport 38 Identifikation av konfigurationsenheter Att peka ut och namnge de olika enheter som ska ändringshanteras Regler för namngivning: PUSP124819 Pusp=var producerat, 12=år 2012, 4= producerat av projektgrupp (typ av dokument, 0=kursmaterial), 8=projektgrupp, 19=löpnr Dokument, delar av dokument, systemdelar i arkitekturen, kod Vid inlämning till formell granskning 1 skall en lista på konfigurationsenheter skickas med Konfigurationsenhetslistan är en konfigurationsenhet!!! För varje konfigurationsenhet ska en statusrapport skapas 39 Benämning av versioner Version x.y Vid uppdateringar ökas y med 1 Vid upprättande av baselines ökas x med 1 Första versionen: 0.1 0.9, 0.10, 0.11, Första baselinen: 1.0 Baseline till kund kallas Release (utgåva) 40

Statusrapportering STATUSRAPPORT Dokument: SRS Dokumentansvarig: Kent Larsson Förändringskontrollansvarig: Lars Björklund DEL A: Dokumentstatus Livscykeln för ett problem Upptäckt Utredd Förkastad Created Pr nr. Åtgärdas ja/nej Ansvarig för åtgärd Deadline datum Version Nr. efter ändring Godkänd datum Kommentar 0.1 Första version skapad Accepterad Investigation Rejected 0.2 till. Inform.granskning 0.3 Till formell granskning Åtgärdad Customer PR4 ja MJ 990916 1.0 990917 Baseline PR8 ja MJ 990918 1.1 990918 Kravändring PR9 nej PP 990918 Nytt krav Kontrollerad Fixing Införd Fixed 41 42 Problemrapport Del A: Ursprung (Origin) Var blev det problem? Vad är problemet? Del B: Utredning & Beslut (Investigation) Ska problemet åtgärdas? Hur ska det åtgärdas? Vad påverkas? Hur lång tid uppskattas åtgärden ta? Del C: Åtgärd (Action) Åtgärdsansvarig? Hur lång tid tog åtgärden att göra? Del D: Uppföljning & avslut (Follow up and completion) Vem kontrollerade och godkände åtgärden? När blev det färdigt? 43 Slutsats Storskalig utveckling kräver processer, organisation och verktyg som kan hantera ökad komplexitet Det flesta av er kommer att arbeta i Stora företag Små och medelstora företag som levererar programvara eller system till stora företag Era ingenjörsfärdigheter är beroende av Hur ni kombinerar teknologi och ekonomi Arbetar i team och med stora organisationer 44

Att göra! Boka tid för formell granskning Göra laborationer Informell granskning. Åtgärda fel ni hittar Obligatorisk närvaro vid formella granskningar PG: Se till att allt är i ordning (inkl. mötesprotokoll etc.) PG: Se till att statusrapporter finns för SRS, SVVS, SDP, Konfig.lista Kamratbedömning 2 ggr Granskning 2 Acceptansmöte 45 46 Obligatorisk närvaro! Individuella uppgiften Personligt brev till CV Stöd i skrivandet av den individuella slutrapporten! Föreläsning den 31 jan Inlämning Studieverkstaden den 22/3 kl. 08.00 via mail Seminarium den 28/3 Slutinlämning via mail 9/4 kl. 08.00 47 Workshop Workshop 1 (Ing 2a) 31/1 kl. 13-16 i sal E230 Projekt Individuella uppgiften Workshop 2 (Ing 2b) 18/4 kl. 10-12, 13-15 i sal E230 Fokus på arbetslivet och åk 3 48