Verifiering & validering -

Storlek: px
Starta visningen från sidan:

Download "Verifiering & validering -"

Transkript

1 Verifiering & validering - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 Verifiering och validering rep. INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 1 1 Från F3 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? 2

2 Från F3 Enhetstest Test av minsta testbara komponent Ofta klass eller metod 3 Från F3 Integrationstest Testfall bestäms t ex baserat på specifikationer av gränssnitt i design Test av subsystem

3 Från F3 Systemtest Testar det fullständiga systemet Är kravspecifikationen uppfylld? 5 Från F3 Acceptanstest Test för att säkerställa att utlovat system har utvecklas Kan utföras av beställaren 6

4 Från F3 Black-box vs. White-box Black-box Programmet 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? 7 Från F3 Ekvivalenspartitionering Hitta värden för in- och utdata som behandlas på inbördes enhetligt sätt ekvivalensklasser ekvivalensklasser indata utdata ekvivalensklasser 8

5 Från F3 Gränsvärdestestning Vanliga gränsvärden Robust-test Kombinationer av gränsfall (vita) (gröna) (röda) variabel 1 variabel 2 9 Från F3 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 Eller ännu fler parametrar T ex lägga in viss typ av kurs för viss institution för visst år och viss studentgrupp Antag ett system för att hantera kurser och studenter, med följande parametrar: Kurstyp (G1, G2, A) Institution (CS, EIT, Math, ) År (2006, 2007, 2008, 2015) Studentgrupp (C, D, E, ) 10

6 Verifiering & validering - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 Verifiering och validering forts. INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT White-box testing Kräver tillgång till koden Tanken är att testfallen ska täcka all kod Men vad menas med all kod? Betrakta kodens kontrollflödesgraf 12

7 Täcka rader (statement coverage) Exekvera alla rader minst en gång Alla noder i kontrollflödesgrafen 13 Täcka grenar (branch coverage) Exekvera alla grenar minst en gång Alla bågar i kontrollflödesgrafen Innefattar även komplett radtäckning 14

8 Täcka vägar (path coverage) Exekvera samtliga vägar från startnod till slutnod Innefattar även komplett grentäckning Antalet testfall exploderar med loopar! 4 vägar Hur många vägar? 15 Täcka enkla vägar (simple path coverage) Exekvera samtliga linjärt oberoende vägar från startnod till slutnod Innefattar komplett grentäckning Hanterar problematiken med loopar Ofta en rimlig kompromiss Vägar: (1,1) (0,0) (1,0) (0,1) Ej linjärt oberoende! 16

9 McCabe s Cyclomatic Complexity (CC) Används för att beräkna antalet enkla vägar i en kontrollflödesgraf Antal linjärt oberoende vägar: CC = #bågar - #noder + 2 Krav En enda komponent i grafen En unik startnod samt en unik slutnod 17 Exempel (CC = #bågar - #noder + 2) 3 linjärt oberoende vägar If: CC = = 2 If-else: CC = = 2 2 linjärt oberoende vägar CC = = 3 18

10 Ett lite större exempel CC = #bågar - #noder +2 = = = 4 19 Praktisk testning: Demo av testverktyg 1. Motivering av parvis testning Systemtestning av en diskmaskin 2. Praktiskt exempel Kvalitetssäkring av personnummerklass 1. Webbtjänst Hexawise: Optimala testfall för parvis testning 2. Optimala testfall! testfall i Junit 3. Kodtäckning med CodeCover i Eclipse

11 Parvis testning för systemtest av diskmaskin Testparametrar: Temperatur (45, 55, 65) Miljöläge (on, off) Nedsmutsningsgrad (lätt, måttlig, grov) Utfall: Diskresultat (rent, smutsigt) Temp Miljö Resultat Smuts Parvis testning för systemtest av diskmaskin 3 x 2 x 3 = 18 möjliga testfall

12 Parvis testning Samtliga kombinationer av parameterpar testas En black box-teknik Färre testfall än vad som krävs för uttömmande testning Men en rimlig nivå för att hitta defekter Generera testdata som uppnår parvis täckning med ett minimalt antal testfall är svårt ett kombinatoriskt optimeringsproblem Systemtest diskmaskin: Möjliga par Temperatur-Miljöläge (3 x 2 komb.) 45-on, 45-off 55-on, 55-off 65-on, 65-off Temperatur-Nedsmutsningsgrad (3 x 3 komb.) Miljöläge-Nedsmutsningsgrad (2 x 3 komb.)

13 Parvis testning för systemtest av diskmaskin! Temp.! Miljö.! Smuts! T1! 45! On! Lätt! T2! 55! Off! Lätt! T3! 65! On! Lätt! T4! 45! Off! Medel! T5! 55! On! Medel! T6! 65! Off! Medel! T7! 45! On! Grov! T8! 55! Off! Grov! T9! 65! On! Grov! 9 testfall räcker för att testa alla parameterpar Demo Verifiering av praktisk & validering testning - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 26 26

14 extern modul för personnummer Nytt krav på cykelgaraget! Beställaren vill att ha stöd för personnummer Del av betalningsmodellen Projektet bestämmer sig för att integrera funktionalitet hittad i öppen källkod Kvalitetssäkring av den externa koden krävs Hur gör man? Verifieringsapproach Skapande av testfall genom black box-tekniker Ekvivalenspartitionering Parvis testning White box-testning för att avgöra testkvalitet Kodtäckningstestning

15 Personnummerkoll för användare Personnummer anges enligt format: XXXXXX-XXXX eller XXXXXX+XXXX (standard: + betyder > 100 år) XXXXXXXX-XXXX (long format) XXXXXXXXXX (short format) Sista siffran är en kontrollsiffra (Luhn-algoritmen) Istället för accepteras även / Personer klassificeras i en ålderskategori <10, 10-18, 18-65, 66-99, >99 Vi identifierar följande ekvivalensklasser: User category (child, teen, adult, senior, golden) ID format (standard, short, long) Separator (-, /) Only digits (true, false) Input date (valid, future date, invalid month, invalid day) Checksum (correct, incorrect) Personnummerkoll för användare ID format Separator Only digits Input date Checksum User category Vi identifierar följande ekvivalensklasser: User category (child, teen, adult, senior, golden) ID format (standard, short, long) Separator (-, /) Only digits (true, false) Input date (valid, future date, invalid month, invalid day) Checksum (correct, incorrect) Vi kan inte testa 5 x 3 x 2 x 2 x 4 x 2 = 480 kombinationer

16 Hexawise Verktyg för att generera testfall för parvis täckning Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT13 Exercise testfall täcker alla exvivalensklasspar Category! Format! Sep! Only digits! Birth date! Checksum! Test 1! child! standard! -! TRUE! correct! correct! Test 2! child! short! /! FALSE! future date! incorrect! Test 3! child! long! /! TRUE! invalid month! correct! Test 4! child! standard! -! FALSE! invalid day! incorrect! Test 5! teen! short! -! TRUE! correct! incorrect! Test 6! teen! standard! /! TRUE! future date! correct! Test 7! teen! standard! -! FALSE! invalid month! correct! Test 8! teen! long! -! TRUE! invalid day! correct! Test 9! adult! long! /! FALSE! correct! incorrect! Test 10! adult! standard! -! TRUE! future date! correct! Test 11! adult! short! /! FALSE! invalid month! correct! Test 12! adult! short! /! FALSE! invalid day! incorrect! Test 13! senior! standard! -! TRUE! correct! correct! Test 14! senior! long! /! FALSE! future date! incorrect! Test 15! senior! short! -! FALSE! invalid month! incorrect! Test Lund 16! University senior! Computer Science short! ETSA01 Ingenjörsprocessen -! TRUE! - Metodik VT13 Exercise invalid 1 day! incorrect! 32

17 Formulera testfallen i JUnit Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT13 Exercise testfall täcker alla exvivalensklasspar Category! Format! Sep! Only digits! Birth date! Checksum! Test 1! child! standard! -! TRUE! correct! correct! Test 2! child! short! /! FALSE! future date! incorrect! Några av förslagen är omöjliga man måste hitta dem själv Test 3! child! long! /! TRUE! invalid month! correct! Test 4! child! standard! -! FALSE! invalid day! incorrect! Test 5! teen! short! -! TRUE! correct! incorrect! Test 6! teen! standard! /! TRUE! future date! correct! Test 7! teen! standard! -! FALSE! invalid month! correct! Test 8! teen! long! -! TRUE! invalid day! correct! Test 9! adult! long! /! FALSE! correct! incorrect! Test 10! adult! standard! -! TRUE! future date! correct! Test 11! adult! short! /! FALSE! invalid month! correct! Test 12! adult! short! /! FALSE! invalid day! incorrect! Test 13! senior! standard! -! TRUE! correct! correct! Test 14 senior! long! /! FALSE! future date! incorrect! Test 15! senior! short! -! FALSE! invalid month! incorrect! Test Lund 16! University senior! Computer Science short! ETSA01 Ingenjörsprocessen -! TRUE! - Metodik VT13 Exercise invalid 1 day! incorrect! 34

18 Mäta kodtäckning med CodeCover Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT13 Exercise 1 35 Summering: Parvis testning och kodtäckning 1. Generera testfall för parvis testning 2. Implementera de möjliga testfallen i JUnit 3. Exekvera testfallen med CodeCover Kodtäckning 83% - vad innebär det? Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT13 Exercise 1 36

19 Testning är dyrt! Testning ofta den enskilt dyraste aktiviteten i ett utvecklingsprojekt $$$ När är testningen färdig? Finns inga garantier att alla defekter är hittade! Man kan alltid testa mer Avbryta för sent Avbryta för tidigt Slösade resurser Försenad release Ökade kostnader Defekter finns kvar Missnöjda användare Dyr support Dyrt underhåll

20 Snabbguide på hemsidan Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT13 Exercise 1 39

21 Föreläsning 4: Design och praktisk testning INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 53 Agenda Ingen kursinformation Läs webben och kursplanen i kompendiet 2. fråga projekthandledarna MS1 på onsdag & MS2 på måndag Kan 6 personer göra flera saker samtidigt? Arkitektur, design, kodning, produktlinjer 54 Test fortsättning: White box Demo - datorstödd testning: Optimala par ==> JUnit testfall i eclips ==>kodtäckning

22 Arkitektur & Design INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 55 Design är både en aktivitet och ett resultat 56

23 Design Resurser Produktmål Tidplan Projektplan Idé Affärsmål Användarfall Risker Krav Design Gränssnitt hårdvara Funktionella krav Kvalitetskrav Granskning Validera Kodgranskning Kravtäckning Utvärdering Underhåll Release Support Releasebeslut Acceptanstest Testdokumentation Felrapport Systemtest Gränsvärde Whitebox Ekvivalensklasser Återanvänd kod Programkod Blackbox Kodtäckning Integrationstest Versioner Applikation Varianter Konfigurationer Enhetstest 57 Modulär nedbrytning Helt system Helt system Helt system M1 M1 M11 M12 M2 M3 M2 M21 M3 M22 58

24 men man kan ju även designa bottom-up M1 M11 M12 Hela systemet M11 M12 M21 M22 M2 M21 M22 M3 M1 M11 M12 M2 M3 M21 M22 59 Alltså Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Top-down Bottom-up Toppom-dup 60

25 Koppling I hur stor utsträckning är enheter i programmet kopplade till varandra? Man vill ha låg koppling 61 Koppling påverkas av Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Antal gränssnitt mellan olika delar Typ av gränssnitt Enkla gränssnitt ger lägre koppling än komplicerade gränssnitt Åtkomst av interna detaljer ger högre koppling än endast anrop av funktioner Kommunikation av endast data ger lägre koppling än kommunikation av kontrollinformation Helt system M1 M2 M11 M12 M3 M21 M22 62 Vid objektorientering komponent-nivå-koppling t ex när en klass har en annan klass som instansvariabel Interaktionskoppling (som gränssnitt ovan) Koppling baserat på ärvning

26 Samhörighet (Cohesion) 63 Hur väl innehållet i en del hänger samman Slumpvis inga meningsfulla beroenden, bara paketerat Logiskt t ex en modul som sköter all utmatning av data Temporal t ex en modul som sköter all uppstart eller avslut Procedurbaserad när procedurer som utförs efter varandra slås ihop, t ex innehållet i en loop Kommunikationsbaserad när delar som behandlar samma data slås ihop Sekvensiell när serier av procedurer som utgör indata till varandra slås samman Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Diskutera i grupper om 2-3 personer Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Varför är det viktigt med låg koppling och hög samhörighet i allmänhet i ert projekt Hur ska man göra för att uppnå detta rent konkret i ett projekt som ert? Helt system M1 M11 M12 M2 M21 M22 M3 64

27 Mål med en arkitekturdesign - dokumentet Förståelse och kommunikation Möjliggöra återanvändning på hög nivå Stöd för konstruktion och utveckling Underlag för analys 65 Arkitekturdesign, olika vyer Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Modul-beskrivning t ex programkod med relationer Klass A är beroende av Klass B Komponenter och konnektorer t ex binärer och kopplingar Object A delar data med objekt B Allokeringsbeskrivningar fysisk allokering av systemets komponenter låsreglerna finns i systemet, låstimern finns i dörrposten 66

28 Arkiterturer - exempel /patterns Delad data gemensam information repository Client-server -modellen Klient 1 Klient 2 Klient n Nätverk Delsystem 1 Delsystem 2 Delsystem n Betj. 1 Betj. 1 Betj. m Abstract-machine modellen / Layered system Pipes and filters Hur ska man välja arkitektur? Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Kvalitetskrav påverkar beslutet, t ex: Prestanda (svarstid, genomströmning) - Inte för mycket kommunikation, Säkerhet mot intrång (Security) - Kritiska funktioner i lägre lager, Säkerhet för användaren (Safety) - Operationer i begränsat antal moduler, Underhållbarhet - Komponenter som är lätta att förstå för sig själva, låg komplexitet, Tillgänglighet - Redundanta komponenter, 68

29 Whitebox Några förslag: Graph impurity Informationsflöde = size * (inflow * outflow)2 Weighted methods per class:... WMC= n i=1 c i Helt system M1 M11 M12 M2 M21 M22 M3 69 Inte uppenbart hur man ska mäta detta! Ett förslag: Graph impurity Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Utvärdering - Mått på design? Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Hur avgör man om en design är bra? Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest GI = n e 1 n = antal noder e = antal bågar GI = 0: perfekt Är detta ett bra mått på en design? - Varför? - Varför inte? 6-5-1= = -8 70

30 Design/arkitektur handlar också om att fördela ansvar Idé Affärsmål Validera Utvärdering Underhåll Produktmål Användarfall Release Funktionella krav Support Tidplan Resurser Kvalitetskrav Releasebeslut Risker Kravtäckning Projektplan Acceptanstest Krav Testdokumentation Granskning Felrapport Design Systemtest Gränsvärde Gränssnitt hårdvara Kodgranskning Whitebox Ekvivalensklasser Återanvänd kod Integrationstest Programkod Blackbox Kodtäckning Versioner Applikation Varianter Konfigurationer Enhetstest Varje modul/klass/etc ska utvecklas av någon Person, avdelning, företag, Även resurser i organisationen kan påverka design/arkitektur Organisation speglar design (och vice versa?) 71 Kort om kodning INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 72

31 Kodning Kombineras med enhetstestning Kodningsstandarder kan finnas Kodgranskningar kan utföras 73 Ett exempel på en kodningsstandard (Java) Basic - File names - File organization - Indention (4 characters) - Comments - Declarations (1/line) - Statements (if always with {}) - White space (2 lines between ) - Naming conventions Additional - Naming (semantic consistency, understandable abbreviations, ) - Constant names instead of raw numbers) - Every class should have a comment - Avoid static variables - File size < 200 LOC 74

32 Varför vill man ha denna typ av standarder? Ökad rörlighet Personer kan gå mellan projekt Erfarenheter best practice Trovärdighet Vilka problem finns att införa standarder? Vad kan man göra för att komma tillrätta med problemen? 75 Plattformar & produktlinjer INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 76

33 Design kursens projekt Ingen mall finns Alla klasser ska beskrivas Namn, konstruktorer, publika metoder, ärvning Ange även ansvarig för klasser/metoder Rita grafiskt (klassdiagram) Följ gränssnitt enligt projektbeskrivningen. 81 Design - sammanfattning och i andra kurser -> ingår inte i denna kurs Design görs på olika nivåer: arkitektur -> design -> kodning Man vill ha låg koppling och hög sammanhållning Exempel på vanliga arkitekturer: delad data, client server, layered system, pipes and filters Kvalitetskravkrav påverkar arkitekturen Plattformsbaserad utveckling ger parallellism och kortare tid till marknad, men också ökad komplexitet 82

34 Förläsning 5 inleds med en tecknad serie 83 Verifiering & validering - forts. INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 84

35 White-box testing Kräver tillgång till koden Tanken är att testfallen ska täcka all kod Men vad menas med all kod? 85 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 finns! 86

36 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) Enkla exempel If: CC = = 2 If-else: CC = = 2 CC = = 3 88

37 Ett lite större exempel CC = #bågar - #noder +2 = = = 4 CC används också som ett mått på komplexitet 89 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) 90 [Fenton et al., Software Metrics a Rigorous and Practical Approach ] CC = = 3

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

Verifiering & Validering. Integrationstest. Enhetstest. Verifiering och & validering rep. - Från F3 Verifiering och & validering rep. - INGENJÖRSPROCESSEN forts. METODIK ETSA01 VT13 INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Verifiering & Validering Verifiering Bygger vi produkten

Läs mer

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

Diskutera medan vi väntar. Agenda. Föreläsning 4: Design och praktisk testning. Arkitektur & Design Diskutera medan vi väntar Ingen kursinformation idag. MS1 på onsdag MS2 på onsdag efter påsk. 1. Läs kurswebben och kursplanen och egen projektplan 2. Fråga projekthandledarna Föreläsning 4: och praktisk

Läs mer

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg

ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg Föreläsning 4: Design och praktisk testning ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg 1 Min frånvaro Spårbarhet för säkerhetskritiska programvarusystem Bilindustri - ISO 26262 Processautomation

Läs mer

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

Min frånvaro. Agenda. Föreläsning 4: Design och praktisk testning Föreläsning 4: Design och praktisk testning ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg Min frånvaro Spårbarhet för säkerhetskritiska programvarusystem Bilindustri - ISO 26262 Processautomation

Läs mer

Föreläsning 4 Arkitektur, design, kodning

Föreläsning 4 Arkitektur, design, kodning ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 4 Arkitektur, design, kodning Jonas Wisbrant 1 Agenda Kursinformation Arkitektur Design Kodning Produktlinjer Konfigurationshantering

Läs mer

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

Var är vi? Föreläsning 4 Arkitektur, design, kodning. Agenda. Kursinformation. Produktlinjer. Konfigurationshantering - forts. Detta har hänt... Agenda Kursinformation ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Arkitektur Design Kodning Föreläsning 4 Arkitektur, design, kodning Produktlinjer Jonas Wisbrant Konfigurationshantering

Läs mer

Exercise 1b: Requirements evaluation

Exercise 1b: Requirements evaluation Resurser Produktmål Tidplan Projektplan Idé Affärsmål Användarfall Risker Krav Design Gränssnitt hårdvara Återanvänd kod Funktionella krav Kvalitetskrav Granskning Programkod Applikation Validera Kodgranskning

Läs mer

konfiguration och version och variant?

konfiguration och version och variant? Att fundera på medan vi väntar: Vad är det för skillnad mellan konfiguration och version och variant? ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik & Föreläsning 4 Arkitektur, design, kodning

Läs mer

Föreläsning 4 Arkitektur, design, kodning

Föreläsning 4 Arkitektur, design, kodning ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 4 Arkitektur, design, kodning Jonas Wisbrant 2 Agenda Kursinformation Arkitektur Design Kodning Produktlinjer Konfigurationshantering

Läs mer

Exercise 1b: Requirements evaluation

Exercise 1b: Requirements evaluation Resurser Produktmål Tidplan Idé Affärsmål Användarfall Risker Krav Gränssnitt hårdvara Återanvänd kod Funktionella krav Kvalitetskrav Granskning Programkod Applikation Validera Kodgranskning Versioner

Läs mer

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

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 Föreläsning 5: V&V II + Design II Efterläsning Kodning Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Vad händer med L3: ΔL3-L4 för Krav följs upp av annan projektgrupp PHL kopierar L3 + PHL-protokoll

Läs mer

Programvaruutveckling - Metodik 2016 Jonas Wisbrant

Programvaruutveckling - Metodik 2016 Jonas Wisbrant 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

Läs mer

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

Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Exercise 1b: Requirements Evaluation ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Lund U niversity Computer Science Jonas W isbrant ETSA01 Ingenjörsp ro cessen metodik V-modellen för programvaruutvecking

Läs mer

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

Agenda. Projektbeskrivning avsnitt 8: Acceptanstest - MS4 i korthet. Kursinformation Föreläsning 6: Utvärdering och om tentamen INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet

Läs mer

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

Agenda. Föreläsning 6: Utvärdering och om tentamen. Kursinformation Föreläsning 6: Utvärdering och om tentamen Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant 288 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter

Läs mer

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

Agenda. Kursinformation. Manual för systemstart... Föreläsning 6: Utvärdering och om tentamen Föreläsning 6: Utvärdering och om tentamen Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet

Läs mer

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Föreläsning 6: Utvärdering och om tentamen INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 2 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet

Läs mer

Föreläsning 3 Verifiering och Validering

Föreläsning 3 Verifiering och Validering 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

Läs mer

Föreläsning 3 Verifiering och Validering

Föreläsning 3 Verifiering och Validering 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 Övning 2 Riskhantering, intressenter

Läs mer

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

Är instruktionerna oklara, projektet rörigt och allmänt frustrerande? Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Genomfört granskningar inför 2 x 0.99 och omarbete? ETSA01 Ingenjörsprocessen för programvaruutveckling

Läs mer

Några grundläggande begrepp

Några grundläggande begrepp Några grundläggande begrepp Validering bygger vi rätt system? Uppfyller kravspecifikationen de verkliga behoven? Verifiering bygger vi systemet rätt? Uppfyller det färdiga systemet kravspecifikationen?

Läs mer

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

Föreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg Föreläsning 4: Test II, Design I Programvaruutveckling - Metodik 2017 Markus Borg 1 Agenda F4 Kursformalia Översikt Kursbetyg Projektet Nästa fas: Construction Burndown charts Programvarutestning - del

Läs mer

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

Föreläsning 3: Test, Konfigurationer. Övning 2 Riskhantering, intressenter och kravgranskning. Föreläsning 3: Test, Konfigurationer Ingenjörsprocessen metodik ETSA01 VT15 Jonas Wisbrant 105 Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning.

Läs mer

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... Kursinformation. Utse kursombud - nytt försök. Föreläsning 3: Test, Konfigurationer. Pratat och skapat krav och plan Föreläsning 3: Test, Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat

Läs mer

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

Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15. Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1 Exercise 4a: Test 2 ETSA01 INGENJÖRSPROCESSEN 1 - METODIK VT15 Lund University Computer Science ETSA01 Ingenjörsprocessen - Metodik VT15 Exercise 1 Agenda L4: Some quick reminders Testing in the projects

Läs mer

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

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT. Övning 2 Riskhantering, intressenter och kravgranskning. Föreläsning 3: Test, & INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 2 Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat

Läs mer

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

Specifikationer i kompendiet Övningar på moodle.cs.lth.se Support Onsdag kl i E: (84?) Frågestund: F3 Börja koda onsdag eftermiddag? Specifikationer i kompendiet Övningar på moodle.cs.lth.se Support Onsdag kl 13-17 i E:2182-83 +(84?) Frågestund: F3 Föreläsning 2: Projektplanering & Granskning ETSA02 Programvaruutveckling

Läs mer

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

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, Ingenjörsprocessen metodik ETSA01 VT15 Jonas Wisbrant Detta har hänt... Pratat och skapat krav och plan Övning 2 Riskhantering, intressenter och kravgranskning. Projektet har granskat

Läs mer

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

Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant Föreläsning 4: Konfigurationer, Plattformar & Design I Programvaruutveckling - Metodik 2016 Jonas Wisbrant 1 Snabbrepris: Test Testning kan påvisa fel, men inte bevisa att det inte finns fel Testprocessen

Läs mer

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

2015-05-14. Agenda. Kursinformation. Manual för systemstart. Föreläsning 6: Summering och om tentamen. Målgrupp: Föreläsning 6: Summering och om tentamen ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet

Läs mer

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

Detta har hänt... Föreläsning 2: Projektplanering & Granskning Bildat projektgrupper. Pratat och provat kravhantering. Skaffat litteratur? Föreläsning 2: Projektplanering & Granskning ETSA01 Ingenjörsprocessen 1 Metodik VT15 Markus Borg 1 Detta har hänt... Bildat projektgrupper Pratat och provat kravhantering Skaffat litteratur? Kommit igång

Läs mer

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

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan

Läs mer

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

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer 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

Läs mer

Testplan Cykelgarage

Testplan Cykelgarage Testplan Cykelgarage Stefan Johansson D08 (dt08sj7@student.lth.se) Johan Anderholm D08 (dt08ja5@student.lth.se) Angelica Gabasio D08 (dt08ag8@student.lth.se) Marcus Carlberg D08 (dt08mc4@student.lth.se)

Läs mer

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

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant 2014-06-02 1 Inledning 1.1 Mål Tentamensformen, dvs hemtentamen, har valts eftersom den möjliggör att ni både kan

Läs mer

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

Agenda. Föreläsning 6: Summering och om tentamen Kursinformation Föreläsning 6: Summering och om tentamen ETSA01 Ingenjörsprocessen 1 - Metodik VT15 Markus Borg 1 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet

Läs mer

Hemtentamen: ETSA02 Programvaruutveckling Metodik

Hemtentamen: ETSA02 Programvaruutveckling Metodik Hemtentamen: ETSA02 Programvaruutveckling Metodik Jonas Wisbrant 2016-05-31 1. Mål Tentamensformen, dvs. hemtentamen, har valts eftersom den möjliggör att ni både kan visa att ni har grundläggande kunskap

Läs mer

Metoder och verktyg för funktionssäkerhet

Metoder och verktyg för funktionssäkerhet Metoder och verktyg för funktionssäkerhet Projektstart 1. Hantera kraven En bra process är grunden för att hantera kraven i ett säkerhetsprojekt. Det krävs att du har en tydlig spårbarhet mellan krav och

Läs mer

Testplanering, test-first, testverktyg

Testplanering, test-first, testverktyg Testplanering, test-first, testverktyg Mats Skoglund Department of Computer and Systems Sciences Stockholm University/Royal Institute of Technology Stockholm, Sweden 12 mars 2007 Mats Skoglund Page 1(33)

Läs mer

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

Testning på 3 föreläsningar. PV7180 Verifiering och Validering. Litteratur. Vad är testning? Varför testa och olika syn? Målet med testning ning på 3 föreläsningar Första föreläsningen Översikt PV7180 Verifiering och Validering Föreläsning 3 ning del 1 Andra föreläsningen Coverage ing, OO-ing, Utvärdering av tekniker Tredje föreläsningen Automatiserad

Läs mer

Projektplan, Cykelgarage

Projektplan, Cykelgarage Projektplan, Cykelgarage Johan Anderholm, (dt08ja5@student.lth.se) Jon Andersen (dt08ja8@student.lth.se) Marcus Carlberg (dt08mc4@student.lth.se) Simon Ekvy (dt08se2@student.lth.se) Stefan Johansson (dt08sj7@student.lth.se)

Läs mer

Inkapsling (encapsulation)

Inkapsling (encapsulation) UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar.

Läs mer

Testning av program. Verklig modell för programutveckling

Testning av program. Verklig modell för programutveckling Fel i program När man skriver program uppkommer alltid fel. Felen kan indelas i följande kategorier: Under kompileringen upptäcker kompilatorn fel som handlar om att man använt konstruktionerna i programspråket

Läs mer

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik

Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Hemtentamen: ETSA01 Ingenjörsprocessen för programvaruutveckling metodik Jonas Wisbrant 2011-05- 26 1 Inledning 1.1 Mål Tentamensformen, dvs hemtentamen, har valts eftersom den möjliggör att ni både kan

Läs mer

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

Detta har hänt... Föreläsning 2: Projektplanering & granskning. Pratat och provat kravhantering. Bildat projektgrupper :-) Skaffat litteratur? Föreläsning 2: ering & granskning Ingenjörsprocessen metodik ETSA01 VT14 Jonas Wisbrant 60 Detta har hänt... Pratat och provat kravhantering Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med

Läs mer

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

Configuration testing Why? Vad det är tänkt att koden ska göra. Performance testing Kommentarer Skriva om koden som kommentar Skapa testfall Testing Köra testen Hitta fel Inspections and reviews Verifiera resultatet Formal methods Static analysis Completeness Verifiering Kvalitet Maintainability Validering Traceability Fault

Läs mer

Sammanfattningar Essentials of Software Engineering

Sammanfattningar Essentials of Software Engineering Sammanfattningar Essentials of Software Engineering F10, Testning Quality Assurance (QA) inkluderar testning. Testning är en aktivitet som handlar om att utvärdera produktens kvalitet, och att förbättra

Läs mer

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

SF Bio App. Repport. Test summary. 1- Syfte. 2. Produktöversikt. Författare: Zina Alhilfi Datum: Version: v1,0 Test summary SF Bio App. Repport Författare: Zina Alhilfi Datum: 2017-03-13 Version: v1,0 Granskad: Klar Ref: Test plan V1,0 Status: klar 1- Syfte Syftet med denna slutrapport är att redovisa vilka testaktiviteter

Läs mer

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER

TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER TPFD Beskrivning Rev 4 1(10) TPFD - TestPlan Före Design BESKRIVNING AV AKTIVITETER Anv.krav Terminologi Detaljkrav Konfigdok Hantera Utgåvor Projektplan Testplan Test-o-felrättning Ändringslogg Återst.

Läs mer

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

Testning. 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer Testning 1DV404, HT14 Jesper Andersson Kap 21 + Testing Primer Testning ü Testningens huvudsakliga syfte är att reducera risker. ü Osäkerhetsfaktorer inom utvecklingen av ny programvara kan få ett projekt

Läs mer

Laboration: Whitebox- och blackboxtesting

Laboration: Whitebox- och blackboxtesting Tilda11 höstterminen 2011 Laboration: Whitebox- och blackboxtesting Mål med laborationen Du ska lära dig begreppen white-box testing och black-box testing Du ska öva dig på att konstruera testfall Du ska

Läs mer

Arkitektur Michael Åhs

Arkitektur Michael Åhs Arkitektur Michael Åhs Kalle & Hobbe: En utvecklares drömsystem 1. Vad är arkitektur? 2. Arkitektur i UML Innehåll 3. Utveckla en arkitektur 4. Arkitektur i projektet Del 1 - Vad är Arkitektur? Pattern-Oriented

Läs mer

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java jonas.kvarnstrom@liu.se 2018 TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java Kursinformation Examinator, kursledare: Jonas Kvarnström Fråga kommentera avbryt! Utan OO har vi datastrukturer

Läs mer

Visuell GUI Testning

Visuell GUI Testning Visuell GUI Testning Vad är ett Graphical User Interface (GUI)? Icke-animerat GUI Animerat GUI Nuläget System- och acceptanstestning är dyrt! Manuellt Långsamt Enformigt Svårt att replikera exakt Nödvändigt

Läs mer

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

F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH 1 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser Hållbart

Läs mer

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.

Läs mer

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

Felsökning. Översikt. Felsökning (debugging) Kodstandard. Kommentarer. Kommentarer. Praktiska råd Översikt Felsökning Praktiska råd Felsökning i IDE Javadoc Kommersiella mjukvaruprojekt Allmänt om felhantering i Java Catch - throw Systematisk testning av större system Programmering tillämpningar och

Läs mer

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem Översikt Stegvis förfining Pseudokod Flödesdiagram Dekomposition KISS-regeln Procedurell dekomposition DRY-regeln Algoritmer Sortering och sökning Stegvis förfining Metod för att skapa ett program från

Läs mer

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. Verifikation, validering och testning TDDI02 Programmeringsprojekt, Föreläsning 3 Anton Sundblad Filip Strömbäck Med utgångspunkt i tidigare slides av Jonas Lindgren På denna föreläsning: Verifikation, validering och testning Begreppsdistinktioner

Läs mer

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT

INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT Föreläsning 2: ering & granskning INGENJÖRSPROCESSEN METODIK ETSA01 VT13 JONAS WISBRANT 57 Detta har hänt... Pratat och provat kravhantering Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med

Läs mer

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

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 3. Filip Strömbäck. Verifikation, validering och testning TDDI02 Programmeringsprojekt, Föreläsning 3 Filip Strömbäck Med utgångspunkt i tidigare slides av Jonas Lindgren På denna föreläsning: Verifikation, validering och testning Begreppsdistinktioner Lite populistiskt

Läs mer

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

Föreläsning 6. Utvärdering, om tenta, avrundning ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 6 Utvärdering, om tenta, avrundning Jonas Wisbrant 1 Agenda Kursinformation Sammanfattning av kursen och operativ utvärdering Schemalagda

Läs mer

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

Föreläsning 6. Utvärdering, om tenta, avrundning. Agenda. Kursinformation. Schemalagda kursmoment. Jonas Wisbrant. Kursinformation Agenda Kursinformation ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Sammanfattning av kursen och operativ utvärdering Schemalagda kursaktiviteter Cykelgarageprojektet Föreläsning 6 Tentamen

Läs mer

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java jonas.kvarnstrom@liu.se 2019 TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java Kursinformation Examinator, kursledare: Jonas Kvarnström Fråga kommentera avbryt! Utan OO har vi datastrukturer

Läs mer

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning

Läs mer

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

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning Jonas Wisbrant 2 Detta har hänt... Pratat krav Bildat projektgrupper :-) Skaffat litteratur?

Läs mer

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

Undervisningen i ämnet webbutveckling ska ge eleverna förutsättningar att utveckla följande: WEBBUTVECKLING Ämnet webbutveckling behandlar de tekniker som används för att presentera och bearbeta information i webbläsaren samt utifrån dessa tekniker skapa och vidareutveckla statiska och dynamiska

Läs mer

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

ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System ALM Live: Testfokus bättre mjukvarukvalitét med Visual Studio 2008 Team System Magnus Juvas Qwise Om oss: Qwise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System. Vi

Läs mer

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign

Läs mer

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

Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning ETSA01 Ingenjörsprocessen för programvaruutveckling Metodik Föreläsning 2: Projekt, Kravhantering, Dokumentgranskning Jonas Wisbrant 2 Detta har hänt... Pratat krav Bildat projektgrupper :-) Skaffat litteratur?

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

Azure Designer. Version 1.0 Mats Persson

Azure Designer. Version 1.0 Mats Persson Version 1.0 Distributionslista Befattning Bolag/enhet Namn Åtgärd Info. Student KaU Carl Philip Matsson Konsult/huvudhandledare Sogeti Konsultchef Sogeti Åsa Maspers Projektledare/handledare Sogeti Marcus

Läs mer

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Föreläsning 1, vecka 6: Abstraktion genom objektorientering TDA 548: Grundläggande Programvaruutveckling Föreläsning 1, vecka 6: Abstraktion genom objektorientering Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Hur skulle ni implementera detta? (3D demo) Vi återkommer

Läs mer

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Tentamen ID1004 Objektorienterad programmering October 29, 2013 Tentamen för ID1004 Objektorienterad programmering (vilande kurs), 29 oktober 2013, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.

Läs mer

Agil testning i SCRUM

Agil testning i SCRUM Agil testning i SCRUM Petter Salomonsson Petter.salomonsson@addq.se Tel: 0708-398435 Kort presentation AddQ Consulting AB tydlig fokus på test och kvalitetssäkringstjänster erbjuder mycket erfarna konsulter

Läs mer

ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik

ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik ETSA01 Ingenjörsprocessen för Programvaruutveckling Metodik Föreläsning 1 Markus Borg 1 Flickr: nearsoft 1 Flickr: canadianveggie Flickr: carlcollins Flickr: nearsoft Flickr: m-i-k-e 2 Pedagogisk utmaning!

Läs mer

Konstruktion av datorspråk

Konstruktion av datorspråk Konstruktion av datorspråk Fö2: Funderingar kring hur man kan bedöma programspråk samt några fler detaljer i Ruby Peter Dalenius peter.dalenius@liu.se Institutionen för datavetenskap Linköpings universitet

Läs mer

SKOLFS. beslutade den XXX 2017.

SKOLFS. beslutade den XXX 2017. 1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning

Läs mer

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA Välkommen till Datastrukturer, algoritmer och programkonstruktion eller DOA Jag: Christer Labbassar: Caroline: Johan: Agenda, före lunch Inledning om DOA-kursen Backspegel Mål Syfte Examination Om lärande

Läs mer

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar

Läs mer

Användning av testautomation inom Extendas utvecklingsorganisation

Användning av testautomation inom Extendas utvecklingsorganisation Testautomation Användning av testautomation inom Extendas utvecklingsorganisation Agenda Presentation av Extenda Vad är en POS? Test av POS Automatiska tester Sammanfattning 2 Kort historik 1982 Extenda

Läs mer

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering OOP Objekt-orienterad programmering OOP F1:1 Delkursansvarig Epost Kursens webbsidor sm@fc.dsv.su.se http://people.dsv.su.se/~sm/oop/ Föreläsning 1 Introduktion till kursen OOP Vad är Java? Ett första

Läs mer

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

Detta har hänt... Agenda. Kursinformation. Kursinformation Detta har hänt... Pratat krav Bildat projektgrupper :-) Skaffat litteratur? Kommit igång med projektwikin: Formulerar krav Genomfört en övning: Hur var den? ETSA01 Ingenjörsprocessen för programvaruutveckling

Läs mer

Distribuerade affärssystem

Distribuerade affärssystem Distribuerade affärssystem Kursens mål Bygga upp, strukturera och programmera distribuerade system med en flerskiktsarkitektur Beskriva och förklara teorier och uttryck som används inom affärskritiska

Läs mer

Laboration 2: Designmönster

Laboration 2: Designmönster Laboration 2: Designmönster Bakgrund Det har visat sig väldigt svårt att beskriva hur ett system, eller en dellösning, skall konstrueras på ett bra sätt. Det har överhuvud taget varit svårt att veta om

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Testning. 1. Inledning

Testning. 1. Inledning Testning 1. Inledning I all ingenjörsmässig verksamhet är testning en vedertagen metod för att fastställa om en hypotes, konstruktion eller produkt är korrekt och fungerar som avsett. Datorprogram är ofta

Läs mer

Exempel på verklig projektplan

Exempel på verklig projektplan Exempel på verklig projektplan Detta är ett exempel på en proffessionell projektplan hämtad ur verkliga livet. Den visas inte i sin fullständighet, det mesta är bortklippt, men strukturen och mycket av

Läs mer

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015 Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora

Läs mer

TDDI02. Programmeringsprojekt, Föreläsning 2. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren

TDDI02. Programmeringsprojekt, Föreläsning 2. Filip Strömbäck. Med utgångspunkt i tidigare slides av Jonas Lindgren TDDI02 Programmeringsprojekt, Föreläsning 2 Filip Strömbäck Med utgångspunkt i tidigare slides av Jonas Lindgren På denna föreläsning: Dokument - kravspecifikation, projektplan Vad är klok design? Projektarbete

Läs mer

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 TDDI02 Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Anatomin hos en projektplan Vad är klok design? Projektarbete kräver.. Fördelning

Läs mer

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

Uppgift v1: Teststrategi i sammanhang Terese Berger. Teststrategi. Projekt CiviCRM. Version 0.9. Sida 1(7) Teststrategi Projekt CiviCRM Version 0.9 Sida 1(7) Innehållsförteckning Referenser...2 Revisioner...2 1. Inledning...3 1.1 Uppgift...3 1.2 Bakgrund...3 1.3 Organisation...4 1.4 Granskning och godkännande...4

Läs mer

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

Mer om kodkvalitet. Mer om kodkvalitet. Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Hur kan man jobba med kodkvalité? Mer om kodkvalitet Hur kan man jobba med kodkvalité 1. Jobba strukturerat genom hela processen Skulle ni köpa/köra en bil som inte har besiktas de senaste åren, speciellt efter lagningen efter krocken

Läs mer

Webbserverprogrammering

Webbserverprogrammering Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets

Läs mer

men borde vi inte också testa kraven?

men borde vi inte också testa kraven? men borde vi inte också testa kraven? Robert Bornelind Presentation på SAST, 24 februari 2011 SQS Software Quality Systems Sweden AB Innehåll Introduktion Kvalitet, tid och kostnad Process Testning av

Läs mer

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 TDDI02 Programmeringsprojekt. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Anatomin hos en projektplan Vad är klok design? Tidsbokning Bokningslistor på Jonas

Läs mer

Programmering = modellering

Programmering = modellering Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal

Läs mer

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer