F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH
|
|
- Leif Jonsson
- för 6 år sedan
- Visningar:
Transkript
1 F4 Testning och Parprogrammering i XP EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson,Datavetenskap, LTH 1
2 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser Hållbart tempo Kund i teamet 2. Utveckling Test-driven utveckling (TDD) Parprogrammering Kollektivt ägande Kontinuerlig integration 3. Kodning och Design Enkel design Refaktorisering Kodningsstandard Gemensam vokabulär 4. Dessutom Gemensamt utvecklingsrum Nollte iterationen Spikes 2
3 Testning: - Fungerar systemet? Verifiering - Byggde vi systemet rätt? Är systemet (tillräckligt) felfritt? Är systemet (tillräckligt) väldesignat (kan vi modifiera det)? Validering - Byggde vi rätt system? Byggde vi det som kunden förväntade sig? Är användarna nöjda med systemet? 3
4 Tekniker som förhindrar fel Testning kör programmet på testdata - kontrollera om det ger förväntad respons Granskning (av kod, specifikationer, design ) effektivt men tidskrävande Vi kan bara hitta existerande fel, inte visa att något är felfritt. 4
5 Testnivåer Hur mycket av systemet är inblandat i testerna? Enhetstester, t ex enskild klass Modultest, t ex ett paket i Java Subsystem, t ex ett lager, komponent Systemtest - hela systemet Integrationstest Allt större delar av systemet testas tillsammans Acceptanstest Tester baserat på användarnas krav. 5
6 V-modellen
7 Lager - OSI-modellen 7
8 Vad kan man testa? Funktion (rätt resultat) Användarvänlighet ( usability ) Prestanda, tid och minne, bandbredd Överlastat system, stress testning, 8
9 Strategier för att ta fram Blackbox testning testfall Välj testfall baserat på specifikationer, API Utifrånperspektiv Whitebox tesning Välj testfall baserat på implementation, intern struktur Test coverage - sträva efter att all kod testas 9
10 Test coverage Executed during test cases: T1 T2 Flow chart: Production code: x = y; if (c1) then { a = b; } else { a = d; } if (c2) then { e = f; } else { e = g; } z = x+a+e; c1 true c2 true false false T3 T4 Statement coverage: All instructions executed. {T1, T2} or {T3, T4} needed for full coverage Path coverage: All different paths executed. All {T1, T2, T3, T4} needed for full coverage.
11 Vilken coverage i praktiken? Path coverage typically only considered within each method Path coverage over method calls would lead to extremely many routes. Not possible in practice. In addition, for OO programming, each method call corresponds to a large if-statement over subtypes (dynamic dispatch). Software projects today typically use statement coverage. But note that even with 100% statement coverage, there may still be many bugs in the code... Additional common kinds of coverage: branch coverage: each edge in the flow graph must be executed. loop coverage: each loop must be executed 0, 1 and many times.
12 När körs testfall? Regressionstestning - nästan alltid Efter en ändring, en integration, Kontrollera att systemet inte regredierar - återfaller till ett felaktigt beteende. Automatisk testning - mindre arbete Ett verktyg (script kanske) Kör igenom testfallen och verifierar (diff) att utfallet stämmer med det förväntade. 12
13 Testning och Granskning i XP Enhetstester Utvecklarens verktyg för att verifiera sin egen kod Test First Testfallen driver utvecklingen framåt. Automatiserad regressionstestning Alla testfall måste fungera innan integration Acceptanstester Kundens krav för att en story skall vara klar Parprogrammering Kontinuerlig kodgranskning 13
14 Enhetstester Varje klass testas TestBankAccount void initialbalancezero() void simpletransactions() void withdrawtozero() void smalloverdraft() void largeoverdraft() void depositeliminatesoverdraft() BankAccount SEK balance() void deposit(sek) void withdraw(sek) 14
15 Exempel på void initialbalancezero() { BankAccount account = new BankAccount(); assertequals( Incorrect initial balance, new SEK(0), account.balance()); void initialbalancezero() { BankAccount account = new BankAccount(); account.deposit(new SEK(50)); account.deposit(new SEK(75)); account.withdraw(new SEK(32)); assertequals( Incorrect simple transaction, new SEK(93), account.balance()); } 15
16 junit -verktyget 16
17 A) TestFirst: Skriv testfall före kod 1. Create new test-case Skapa ett nytt testfall 2. Make test succeed Implementera tills testfallen går igenom 4. Integrate changes Publicera ändringar 3. Refactor Förbättra design och kod 17
18 Test ToDo-Lista Skriv upp alla testfall du kommer på på en ToDo-lista Komplettera listan löpande med fler testfall och önskade refactoriseringar när du kodar. Vid parprogrammering: Partnern håller ordning på ToDo-listan. Test First scenarion ToDo-lista: saldo sätt in pengar ta ut pengar övertrassering ränta kontoutdrag 18
19 One-step test Vilket testfall skall vi hantera härnäst? Ta ett som inte är trivialt och inte för svårt Något man lär sig av och som för designen framåt. 19
20 1. Skapa nytt testfall Green 1. Create new test case Error Red Implement test Compile OK Run test fail Error Implement Stub 20
21 Varför vill vi se testen fallera? Om testen fallerar: Kvitto på att vi tänkt rätt Testen testar faktiskt något nytt Vi vet att testfallet kan fallera på förväntat sätt Men om testen går igenom utan att vi implementera något? Varningssignal har vi tänkt fel någonstans? Har vi kodat i förväg tidigare - mer att testa? Testar vi något som redan testas? Har vi skrivit testfallet på fel sätt Kan vara OK - fyller i tester som saknas etc. 21
22 2. Få igenom tesfallet Red 2. Make test succeed Failure Green Implement code Error Compile OK Run test success 22
23 Fokusera på att få igenom testfallet Om vi kommer på fler saker som borde göras: nytt testfall förbättrad design Skriv upp dem på ToDo-listan istället för att ta i dem med en gång minimera tiden med rött ljus, osäkerhet lättare att arbete fokuserat och inte missa detaljer lättare debugga då endast en sak ändrats lättare att hela tiden känna att man kommer framåt. 23
24 Efter att vi fått igenom ett nytt testfall Reflektera blev helheten bra? har vi bra namn på: klasser, metoder, variabler? Har vi råkat få duplicerad kod? Refaktorisera där det behövs. 24
25 3. Refaktorisera Red 2. Make test succeed Error Failure Green Implement code Complie OK Run test success Green 3. Refactor Error Failure Green Refactor code Complie OK Run test success 25
26 Dags att integrera! Nu har vi: implementerat och testat ny funktionalitet refaktoriserat till en enkel och tydlig design grönt ljus - 100% av existerande enhetstester fungerar Villkor för att integrera med gemensamma repositoriet: 1. All kod kompilerar utan felmeddelanden 2. Alla enhetstester går igenom 3. Vår version baserad på senaste i repositoriet! 26
27 Terminologi Download changes svn: update git: pull Upload changes svn: commit git: commit+push 27
28 4. Integrera ändringar Red 2. Make test succeed Error Failure Green Implement code Complie OK Run test success Green 4. Integrate Changes Resolve conflict Green b. Automatic merge Download Changes c. Merge conflict a. No merge needed Upload Changes success a. Inga andra Upload sedan vi gjorde Download förra gången b. Inga ändringar i samma filer c. Ändringar i samma filer 28
29 TestFirst 1. Create new test-case Skapa ett nytt testfall 2. Make test succeed Implementera tills testfallen går igenom Merge Error Failure 4. Integrate changes Download, Merge, Upload 3. Refactor Förbättra design och kod 29
30 Fördelar med Test First Testfallen driver utvecklingen framåt (blir en agenda) Hjälper oss fokusera på en sak i taget Hjälper oss minimera den tid programmet inte fungerar När något testfall slutar fungera beror det på våra senaste ändringar Underlättar implementation av testfallen All kod blir faktiskt testad (coverage) Test first lättare än Test last - Enklare anpassa produktionskod till testerna än tvärt om! Underlättar design Test first testar även gränssnitten till klasserna - blir bättre Testerna fungera som säkerhetsnät - vi vågar ändra koden och vi vågar förbättra designen. 30
31 B) Parprogrammering Två personer vid samma maskin Driver och Partner Båda är aktiva Ständig kommunikation Roller växlas ofta All produktionskod skrivs i par Omedelbar kodgranskning Inte nödvändigt vid spikes och acceptanstest Par ändras ofta: Många/alla får insikt i alla delar av koden Nya medarbetare har lättare för komma in i projektet 31
32 Två roller Driver (Förare) Skriver kod Väljer strategi (i samråd) Beskriver sina intentioner för partnern Partner (Navigator) Granskar kod Ger feedback på design, metodnamn Följer samma strategi som föraren Håller ordning på ToDo-listan 32
33 Parprogrammeringstips Byt partner ofta! Tacka alltid ja när du blir tillfrågad Tala i Vi-termer i stället för Du: Borde vi inte göra så här i stället? Tala i Jag-termer när det blir krångligt: Jag förstår inte, kan du förklara? 33
34 Parprogrammeringstips (2) Driver Var lyhörd inför din partner Rusa inte iväg utan beskriv dina idéer Partner Hitta förarens rytm Föreslå rollbyte om ni kör fast,, men ge föraren en chans att fullfölja. 34
35 Goda programmeringsvanor Ta pauser Man blir trött av parprogramering Ta korta pauser då och då, när ni integrerat, när ett test gått igenom, en gång i timmen. Ödmjukhet Egoless programming - ni programmerar för teamet Ta tillfället att lära dig och att lära ut Ha självförtroende Var inte rädd - din partner är där för att hjälpa dig Din partner vet inte alltid bättre än du. 35
36 Goda vanor Kommunicera/Lyssna Förare - berätta hela tiden vad du tänker: vi behöver en temporär variabel för iterationen Partner - fråga, kommentera, se till att du hänger med på vad som sker. Föreslå förbättringar. Var en team player Driver och Partner är gemensamt ansvariga för koden Uppstår en bugg eller dålig design - skyll inte på den andre. Hjälps åt att lösa problemet. När något går bra - ta åt er äran tillsammans! 36
37 Mer om testning 37
38 Fördelar med automatiserad testning Säkerhetsnät vid ändringar: Man vågar lägga till ny funktionalitet på rätt plats snarare än som ryggsäckar Man vågar förbättra designen refactoring - ändra kod/design Man vågar rätta buggar snarare än koda runt dem 38
39 Mock objects Hur testar man klasser som behöver en omgivning? - komplicerad, kanske inte implementerad ännu? Skapa en dummy - ett Mock object - för det som saknas. Konfigureras på något sätt TestBankAccount void testxsome() BankAccount void xsome(sek) SecurityMock boolean Verify( ) 39
40 Self shunt Hur testar man att ett objekt anropar ett klientobjekt på rätt sätt? Skapa ett mock-objekt för klienten Använd testklassen själv som mock-objekt Koden för att starta förloppet att fånga anropet hamnar tillsammans Kräver att mock-objektet anropas via interface. TestBankAccount void testxsome() verify( ) BankAccount void xsome(sek) 40
41 Testning av interaktiva tillämpningar - GUI Använd MVC - isolera Modellen från Interaktion (View) Gör View-lagret så tunt som möjligt Modellen kan testas med automatiserade tester. GUI GUI GUI GUI Test Test Test Test 41
42 Hur mycket skall man testa? Testningsstrategi Identifiera typiska fall Testa randvärden (-1, 0, 1, maxint, null, length) Testa all kod (test coverage) XP: Test everything that could possibly break Hur stor del av koden är testkod? Beror på tillämpningen Runt hälften är en vanlig siffra 42
43 Hierarkiska tester Enhetstester Om en klass kan testas isolerat är det lättare att isolera vad som går fel. Vid behov: koda upp mock objects för att simulera interaktion med andra klasser (för komplexa, finns inte ännu, ) Modultester, subsystemtester Går utmärkt att automatisera med JUnit de också Ersätter inte enhetstester 43
44 Acceptanstester Kunden Tänker ut ett antal testfall för varje Story Vad kan övertyga mig om att denna Story är implementerad? Kan vara riktiga testdata, t ex från tidigare verksamhet Projektledning Acceptanstesterna mäter hur projektet framskrider Utvecklarna Hjälper kunden implementera acceptanstesterna Automatiserar så mycket som möjligt Acceptanstesterna kan utvecklas parallellt med produktionskoden Kan utvecklas av enskild programmerare 44
45 Litteratur Kent Beck: Test-driven Development by example. Addison-Wesley Bill Wake s site: The Test-First Stoplight The Test/Code Cycle in XP 45
46 Förberedelser Lab 3: Testning och Parprogrammering Lab exercise. Test First using the JUint Testing framework Using JUnit in EDA260 F04 - föreläsningsbilder (dessa) Laurie Williams and Robert Kessler: Pair Programming Illuminated, Addison-Wesley, 2003, Utdrag: delar av kap 1 (Introduction, p 3-5) + kap 27 (Seven Habits of Effective PairProgramming) William C. Wake. Extreme programming Explored, Addison- Wesley, Utdrag: delar av kap. 1 (How Do You Write a Program?, p ). Chromatic: delar av Part II: p25-32 (Adopt Test-driven Development, Practice Pair Programming) 46
47 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser Hållbart tempo Kund i teamet 2. Utveckling Test-driven utveckling (TDD) Parprogrammering Kollektivt ägande Kontinuerlig integration 3. Kodning och Design Enkel design Refaktorisering Kodningsstandard Gemensam vokabulär 4. Dessutom Gemensamt utvecklingsrum Nollte iterationen Spikes 52
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
F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH
F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Vad är XP? En metod för hur man utvecklar programvara i grupp i nära samspel
F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH
F2 XP Extrem Programmering översikt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH Syfte & Mål Ge en helhet av vad XP är Mål & syfte med XP - varför ser metoden
Agil projektmetodik Varför och vad är det?
Agil projektmetodik Varför och vad är det? Boris Magnusson Datavetenskap LTH 2016-02-08 Lite större projekt Sträcker sig över tid Involverar många deltagare som behöver arbeta parallellt Planeras - delas
Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski
Testdriven utveckling Januari 2009, KTH Alexander Tarnowski Teorin bakom testdriven utveckling Bakgrund Testdriven utveckling började nämnas kring 1999-2000 av Kent Beck I praktiken implementationen av
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
Agil programutveckling
Agil programutveckling Pontus Evertsson D00, Lunds Tekniska Högskola d00pe@efd.lth.se Anna Jennerheim D00, Lunds Tekniska Högskola d00aj@efd.lth.se 2003-05-15 1 1. Inledning 3 2. Extreme Programming (XP)
F2 XP Extremprogrammering översikt
F2 XP Extremprogrammering översikt EDA260 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH 1 Vad är XP? En metod för hur man utvecklar programvara i grupp i nära samspel
F6 Arkitektur, Planering. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH
F6 Arkitektur, Planering EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH 1 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser Hållbart
Några principer för effektiv enhetstestning
Peter Lindberg Computer Programmer, Oops AB mailto:peter@oops.se http://oops.se/ Några principer för effektiv enhetstestning Enhetstester ( unit tests ) är en central del av extremprogrammering (XP). Man
XP-projekt: En fördjupning
XP-projekt: En fördjupning Extreme Programming Martin Karlsson marka@itn.liu.se K7522 011 36 34 63 Fem värden Kommunikation Var öppna Var ärliga Ta konflikter Diskutera Tag beslut Tag ansvar Kräver feedback,
Institutionen för datavetenskap HT 1 2007/2008. Testning med JUnit
LUNDS TEKNISKA HÖGSKOLA EDA690 Algoritmer och datastrukturer Institutionen för datavetenskap HT 1 2007/2008 Enhetstestning Testning med JUnit När man implementerat en klass måste man, innan den kan användas,
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
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?
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
Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod
Systemutveckling TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Systemutveckling kallas processen att ta emot en beställning på ett datorsystem, skriva en strukturerad kravspecifikation på systemet,
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon
LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015
LUNDS TEKNISKA HÖGSKOLA EDAA01 Programmeringsteknik fördjupningskurs Institutionen för datavetenskap HT 2015 Testning med JUnit 1 Inledning JUnit är ett ramverk för enhetstestning av Javakod. Det är utvecklat
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
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)
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =
Den Röda Tråden. Vi kan ta fram arkitekturkrav. Vi kan ta fram arkitektur och design. Vi kan skriva Clean Code KRAV DESIGN IMPLEMENT VISION TEST
Den Röda Tråden Vi kan välja utvecklingsmodell Vi kan hantera risk och vet varför visionen behövs Vi kan skriva och estimera krav User stories, -ilities, regler VISION KRAV DESIGN IMPLEMENT TEST Vi kan
Kritik av Extrem Programmering
Kritik av Extrem Programmering Markus Borggren d01mbo@efd.lth.se Martin Persson d01mp@efd.lth.se D01, Lunds Tekniska Högskola 15 februari, 2004 Abstract I denna djupstudie kommer vi att försöka, på ett
JUnit. Junit Unit Testing. JUnit 3. JUnit 3 forts. Villkorskontroller i test. Exempel JUnit3
Johan Eliasson JUnit Junit Unit Testing Unit testing för java Används för att testa att metoder/klasser beter sig som det var tänkt Många IDE:er tex Eclipse har inbyggt stöd för detta. JUnit 3 Vi skriver
Föreläsning 4 IS1300 Inbyggda system
Föreläsning 4 IS1300 Inbyggda system Programutveckling Exempel PingPong Idé Tillståndsdiagram State machine Skapa projekt Testning av programvara Peripheral Library till STM32 Programmeringsuppgiften RS232
Enhetstester på.netplattformen
Enhetstester på.netplattformen Praktikfall ur verkligheten Copyright Prolore 2007. All Rights Reserved. Viktor Laszlo Vem är jag 11 år inom test Prolore: specialiserat på Testautomatisering, Prestandatest
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-6, TDA540 Dag: 207-0-24, Tid: 4.00-.00 Uppgift a) En abstrakt klass kan inte instansieras,
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
Versionshantering. Jan Erik Moström
Versionshantering Jan Erik Moström Johan Eliasson Versionssystem Gjorda för att användas av en eller flera personer på en eller flera platser, exempelvis: För en ensam användare som jobbar med ett projekt
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
F9 del B Organisatoriskt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH
F9 del B Organisatoriskt EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson Datavetenskap, LTH 1 Projektet - moment Projektstartsmöte 6 Iterationer (en per vecka) - 10-12 team - 12-14 personer
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
Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions
Testdriven utveckling Magnus Jonsson Siemens Medical Solutions 2 Soarian Stort projekt, ca 400 personer i projektet Distribuerad utveckling i USA, Indien och Sverige Web baserat lösning med admin client
Djupstudie Code smells / Refaktorisering. Martin Larsson dt08ml5 Stefan Johansson, dt08sj7
Djupstudie Code smells / Refaktorisering Martin Larsson dt08ml5 Stefan Johansson, dt08sj7 27 februari 2012 Innehåll 1 Inledning 1 2 Bakgrund 1 2.1 extreme programming....................... 1 2.2 Programvaruutveckling
Användarcentrerad systemdesign
Användarcentrerad systemdesign Föreläsning 9: Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, Uppsala Universitet, stefan.blomkvist@it.uu.se XP www.it.uu.se/edu/course /homepage/acsd/s04 Dagens föreläsning
Kvalitetssäkra ditt projekt med kontinuerlig integration
Kvalitetssäkra ditt projekt med kontinuerlig integration Mathias Olausson http://olausson.net/blog Om oss: QWise Vi hjälper systemutvecklingsteam att bli bättre. Vi är experter på ALM och Team System.
A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices
A ToolGuide for Eclipse: En fördjupning i några av verktygen i Eclipse och hur de underlättar XP s practices Mattias Jarheden och Thomas Forsström Sammanfattning Denna djupstudie försöker ge en inblick
Teststrategier och Testcertifiering. Per Strandberg, Maj 2013
Teststrategier och Testcertifiering Per Strandberg, Maj 2013 1 Lite om Test i Allmänhet och ISTQB Certifiering Mål med testning? Förebygga fel Hitta fel eller risk Underlätta och ge stöd vid utveckling
Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming
Embrace Change! Note to programmers Extreme programming Even programmers can be whole people in the real world. Extreme Programming is an opportunity to test yourself, to be yourself, to realize that maybe
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Deluppgift 2 Kravhantering a) (2p) När man diskuterar krav brukar man ange två olika typer av krav. Beskriv dessa och ge exempel.
Page 1 (5) Hemuppgift 1DV404 150115-150118 Deluppgift 1 Processmodeller a) (4p) Alla mjukvaruutvecklare följer någon form av utvecklingsprocess i sitt arbete. Diskutera vad organisationer brukar ange som
Linköpings universitet 1
Vanliga faser TDP029 Systemutveckling Annika Silvervarg COIN/HCCS/IDA Analys Vad är problemet? Uppgift Vad är det för arbetsuppgifter och hur utförs de? Användarbehov Vad behöver användaren/användarna?
Creo Customization. Lars Björs 2014-10-16
Creo Customization Lars Björs 2014-10-16 Norra Europas största partner och återförsäljare av PTC relaterad programvara (Windchill, Creo, Arbortext, MathCad, Relex) 70 anställda Egen utvecklingsavdelning
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
F5 Enkel Design, Refaktorisering. EDAF45 Programvaruutveckling i grupp Projekt Görel Hedin, Boris Magnusson,Datavetenskap, LTH
F5 Enkel Design, Refaktorisering EDAF45 Programvaruutveckling i grupp Projekt Görel Hedin, Boris Magnusson,Datavetenskap, LTH 1 XP:s Deltekniker (Practices) 1. Planering Planeringsspelet Regelbundna releaser
Scrum + XP samt konsekvensanalys
Scrum + XP samt konsekvensanalys Daniel Nimren dt05dn8 Douglas Frisk dt05df1 Dept. of Computer Science, Lunds Tekniska Högskola, Sweden {dt05dn8 dt05df1}@student.lth.se 1 mars 2010 Sammanfattning Denna
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
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
Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel
Kursinformation Metodik för programvaruutveckling Föreläsning 3 Latex ok för litteraturstudierapport (prata med mig bara) Nästa föreläsning är av Björn Regnell (jag är med också) Presentationer imorgon
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
Förändringskontroll i XP-team. Love Johansson (d00lj), Joakim Persson (d00jp)
Förändringskontroll i XP-team Love Johansson (d00lj), Joakim Persson (d00jp) 21 februari 2005 Sammanfattning Under sju veckor har vi agerat coacher åt en grupp relativt oerfarna programmerare i en större
Att skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen
Vad betyder TDD? Test Driven Design?
Vad betyder TDD? Vad betyder TDD? Test Driven Development? Test Driven Design? Test Driven Documentation? Test Driven Driven av test! test först! Test Driven Development google define: development act
F6 Arkitektur, Planering
F6 Arkitektur, Planering EDA260 Programvaruutveckling i grupp Projekt Ulf Asklund, Boris Magnusson Datavetenskap, LTH PVG, 2013 F6-1 Mjukvaruarkitektur? Enkel Design och Refaktorisering handlar i första
Beijer Electronics AB 2000, MA00336A, 2000-12
Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this
Classes och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
XP vs. Tillverkningsindustrin
Djupstudie i Coaching av programvaruteam Lunds Tekniska Högskola 2006-02-20 XP vs. Tillverkningsindustrin Hur behandlar man The FIVE dysfunctions of a TEAM? Emil Svärdh D02, Lunds Tekniska Högskola d02es@efd.lth.se
Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt,
Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt, robert.feldt@bth.se Vad är på gång i forskningen? (ICST 2015 & 2016) Security testing Mutation testing GUI testing Model-based
Aktivitet ett: Kommunicera! Aktiviteter i praktiken. Parprogrammering. Aktiviteter. Parprogrammeringens sju myter. Parprogrammeringens sju myter
Aktiviteter i praktiken Extreme Programming Aktivitet ett: Kommunicera! Sven and Olle are two farmers way up in the northernmost part of Scandinavia, where people are few and far between and words are
TDP005. Föreläsning 2. Filip Strömbäck
TDP005 Föreläsning 2 Filip Strömbäck 1 Make och CMake 2 Versionshantering TDP005 Filip Strömbäck 2 Make Problem: kompilera många filer i ett stort projekt tar tid Bättre om vi kompilerar om så få filer
Agile-metoder, XP och ACSD
Användarcentrerad systemdesign. Föreläsning 12 Agile-metoder, XP och ACSD Stefan Blomkvist MDI / IT, stefan.blomkvist@it.uu.se & Profdoc AB www.profdoc.se www.it.uu.se/edu/course /homepage/acsd/s04 XP
Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt
Coaching av programvaruteam EDA270, djupstudie: Praktisk SCM användning i XP-projekt Martin Malek Anders Hellström Lunds Tekniska Högskola 22 februari 2005 Version 1.0 Sammanfattning Som utgångspunkt för
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
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
F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH
F7 Agila metoder EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH 1 XP - Scrum - Kanban - FDD Agila metoder: Vad innehåller SCRUM Hur skiljer sig XP och SCRUM?
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
DevOps i Verkligheten
DevOps i Verkligheten Mattias Sköld DevOps coach / Solution Manager 10+ år ALM/DevOps, 20+ år i IT branchen Sogeti har vunnit Microsoft ALM Awards 2009,10,11,12,13,14 @mattiasskold Mattias.skold@Sogeti.com
AGILA METODER. (för oss som inte kodar) Nina Berlin
AGILA METODER (för oss som inte kodar) Nina Berlin Agila värderingar 1. Individer och interaktioner framför processer och verktyg 2. Fungerande programvara framför omfattande dokumentation 3. Kundsamarbete
Programvaruutveckling i grupp Projekt EDA260 (D2, C4, E4, F4, I4, Pi4): F1Introduktion. Boris Magnusson, Ulf Asklund Datavetenskap, LTH
Programvaruutveckling i grupp Projekt EDA260 (D2, C4, E4, F4, I4, Pi4): F1Introduktion Boris Magnusson, Ulf Asklund Datavetenskap, LTH Programvaruutveckling i grupp Produkt skall utvecklas och levereras
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
1 Comparator & Comparable
1 Comparator & Comparable 1.1 Implementation av Comparable Att implementera Comparable innebär att man gör objekt av sin klass jämförbara med andra och att det därmed antas existera en naturlig ordning
Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson
Rapport grupp 4 Software Engineering Kristoffer Eriksson Christer Oscarsson Andreas Dahlberg Martin Bengtsson 2009-10-29 Processer Sprinter Scrum har varit till stor hjälp för oss för att nå våra mål,
Programvaruutveckling i grupp Projekt EDAF45 (D2, C4, E4, F4, I4, Pi4) - 7,5HP F1Introduktion. Boris Magnusson, Ulf Asklund Datavetenskap, LTH
Programvaruutveckling i grupp Projekt EDAF45 (D2, C4, E4, F4, I4, Pi4) - 7,5HP F1Introduktion Boris Magnusson, Ulf Asklund Datavetenskap, LTH Programvaruutveckling i grupp Produkt skall utvecklas och levereras
Användarcentrerad systemdesign
Användarcentrerad systemdesign Föreläsning 11: Agile-processer och ACSD Stefan Blomkvist Avdelningen för MDI/IT, Uppsala Universitet, Stefan.Blomkvist@hci.uu.se www.it.uu.se/edu/course /homepage/acsd/
2.1 Installation of driver using Internet Installation of driver from disk... 3
&RQWHQW,QQHKnOO 0DQXDOÃ(QJOLVKÃ'HPRGULYHU )RUHZRUG Ã,QWURGXFWLRQ Ã,QVWDOOÃDQGÃXSGDWHÃGULYHU 2.1 Installation of driver using Internet... 3 2.2 Installation of driver from disk... 3 Ã&RQQHFWLQJÃWKHÃWHUPLQDOÃWRÃWKHÃ3/&ÃV\VWHP
Designmönster, introduktion. Vad är det? Varför skall man använda mönster?
Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Kent Petersson EMW, Mölndal Datavetenskap, Chalmers epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp
Verifiering & validering -
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
Testautomatisering. BDD, RSpec
Testautomatisering BDD, FM: Snabbutvärdering, lab BDD Idag Lab2 - Snabbutvärdering 1. Hur många timmar har du lagt? 2. Hur många ytterligare timmar kommer du lägga? 3. Svårighet: För Lätt / Lagom / För
Ö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
Identitet och ekvivalens
Identitet och ekvivalens Värdesemantik eller pekarsemantik? class Pair { Object fst; Object snd; void foo(pair o) { o.snd = 4711; public static void main(string[] args) { Pair p = new Pair(); p.fst = 42;
HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)
Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061) HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN) Dagens agenda Admin Tentatid och plats Tillåtet på tentan EDAF10 Föreläsning inför XL-projektet
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
Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt
Motivationsfaktorer - Test inom Agila utvecklingsprojekt Magnus Jonsson & Therese Hansson Flerårig erfarenhet från ett globalt utvecklingsprojekt där vi införde Agile & Scrum metodik i hela organisationen
D J U P S T U D I E I E D A S I M P L E C O D E A N D D E S I G N
D J U P S T U D I E I E D A 2 7 0 S I M P L E C O D E A N D D E S I G N S. Marcus Jacobsson D03, Lunds Tekniska Högskola d03mj@efd.lth.se S. Magnus Weinberg D03, Lunds Tekniska Högskola d03mw@efd.lth.se
Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser
Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta
Proj-Iteration1. Arkitektur alt. 1
Proj-Iteration1 PVG/Coaching Boris Magnusson Datavetenskap LTH Proj-Iter1-1 Registrering Registrering Arkitektur alt. 1 Personuppgifter Starttid Sorterare Måltid Efterbehandling Resultat Tre program som
extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP
extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP Måns Gunnarsson d01mg@efd.lth.se Sammanfattning Denna djupstudie består av en recension av andra upplagan av
Filhanterare med AngularJS
Filhanterare med AngularJS Författare: Filip Johansson Peter Emilsson Oskar Georgsson Christian Nilsson Datum: 2014-03-26 1 Sammanfattning Filhanterare med AngularJS är en filhanterare skapad för Sigma
Lösningar till tentamen i EDAF25
Lösningar till tentamen i EDAF25 21 aug 2017 Lösning 1 Javaklasser (många varianter finns naturligtvis): class Client { private Invoker invoker; public void newcommand(string cmdtext) { Command cmd; if
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
12 principer of agile practice (rörlig)
X-treme programming 12 principer of agile practice (rörlig) Ge nöjd kund genom tidig och kontinuerliga leveranser Den viktigaste punkten som betyder att min vill ha kontinuerlig feedback Välkomna sena
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
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Testautomatisering. Labbar, FitNesse, TDD, BDD
Testautomatisering Labbar, FitNesse, TDD, BDD Lab 4 Utökad deadline? Lab 4 FM: Lab 1-3 snack FitNesse TDD BDD EM: Handledning Idag Watir::Wait.until {"OK"} Lab 1-3 I Ruby: False: false eller nil True:
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Dag König Developer Tools Specialist Microsoft Corporation
Dag König Developer Tools Specialist Microsoft Corporation Magnus Timner Transcendent Group Olov Mattsson Know IT Krav Testning Microsoft Team System Arkitektur Bygga Kodning Vinn en XBOX 360 Elite Alla
SAST Q1. Som att börja arbeta på ett nytt jobb. Testautomatisera med Modell-baserad testning
SAST Q1 Som att börja arbeta på ett nytt jobb Testautomatisera med Modell-baserad testning Christina Nordström Kristian Karl Christina Nordström Test sedan 1996 Aldrig testautomatiserat Enhetschef Testenheten
Att införa Extreme Programming genom processförbättring
Att införa Extreme Programming genom processförbättring Johan Thiborg-Ericson Vahagn Baghomian 14-02-28 Sammanfattning Syftet med denna studie är att studera hur agila metoder uppkommer som en naturlig
Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel