Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski
|
|
- Gunnar Lindgren
- för 7 år sedan
- Visningar:
Transkript
1 Testdriven utveckling Januari 2009, KTH Alexander Tarnowski Teorin bakom testdriven utveckling Bakgrund Testdriven utveckling började nämnas kring av Kent Beck I praktiken implementationen av XP:s test first Målet är Clean code that works Ses som ett verktyg för hantering av rädsla och osäkerhet i utvecklingsprocessen Baserat på enhetstest (unit tests) 1
2 Testdriven utveckling och XP Värderingar Kommunikation Enkelhet Feedback Mod Respekt Praktiker Sitta tillsammans Teamet Informativ arbetsplats Energized work Parprogrammering Stories Veckocykeln Principer Kvartalscykeln Slack Bygga på 10 minuter Continuous integration Testa först Inkrementell design TDD strävar efter: Clean code that works Ron Jeffries Förutsägbarhet. Ingen projektsvans! Dina kolleger litar på dig, och du på dem Lär dig allt du kan av koden Omedelbar feedback Kul att skriva Förutsägbarhet 2
3 TDD reducerar: rädsla (och osäkerhet) Rädsla gör oss osäkra Rädsla får oss att kommunicera mindre Rädsla påverkar vår förmåga att ta emot feedback Rädsla gör oss otrevliga TDD bygger på unit tests Enhetstester... Visar att isolerade komponenter av program fungerar Är isolerade från varandra Och är inte... Prestandatester Stresstester Användbarhetstester <Stoppa in favorit-buzzword som slutar med tester här> Metodologin Skriv ett test som misslyckas Få testet att köra Ta bort duplicering 3
4 TDD:s utvecklingscykel Att skriva ny kod endast om ett automatiserat test misslyckas Och därefter ta bort duplicering Leder till och kräver: Organisk design: körbar kod ger feedback och driver utvecklingen framåt Design med high cohesion och loose coupling Att utvecklarna måste skriva sina egna test Utvecklingsmiljön måste ge snabb feedback Vad är ett test Testa = utvärdera Vilken logik testar vi? Vilka testdata väljer vi? Bäst att upprepa: tester ska vara oberoende! Vilken logik testar vi Testa: Villkor Iterationer Sekventiella operationer Polymorfism Testa inte: Tredje parts kod (t ex att JDBC eller en applikationsserver fungerar) Too simple to break 4
5 Vilka testdata väljer vi? Enkla assertequals(5, calc.plus(2, 3)); mot assertequals( , calc.plus( , )); public void testinsert() { insertintodatabase(null); } kanske inte är bästa testet för void insertintodatabase(transferobject o) {... } Självförklarande final int addend = 2; final int augend = 3; assertequals(addend + augend, calc.plus(addend, augend)); Testtekniker Vi tar oss från rött till grönt genom att: Fejka Uppenbara implementationen Triangulering Teknik 1: Fejka TestCalculator.java assertequals(4, calculator.plus(3,1)); Calculator.java int plus(int augend, int addend) { return 4; } 5
6 Teknik 2: Uppenbara implementationen Man får faktiskt göra så TestCalculator.java assertequals(4, calculator.plus(3,1)); Calculator.java int plus(int augend, int addend) { return augend + addend; } Teknik 3: Triangulering Generalisera om vi har två eller fler fall Använd i svårare fall! TestCalculator.java assertequals(4, calculator.plus(3,1)); assertequals(8, calculator.plus(4,4)); Calculator.java int plus(int augend, int addend) { return???; } Dåliga tester Mycket setupkod = för stora och komplicerade objekt Duplicerad setup = för många objekt, för hårt kopplade Långa test = kommer inte att köras, åldras och blir fel 6
7 Varför reducera duplicering? Urholkar den konceptuella integriteten Försvårar underhåll Vanligaste exemplet: duplicerad logik Näst vanligaste: copy n paste kod Beroende är sjukdomen, dupliceringen symptomet För en gångs skull! Eliminerar vi symptomet (dupliceringen) minskar vi beroendet (sjukdomen) Hur stora steg ska man ta? Test transformerar ett abstrakt problem till att få testet att funka Storleken på stegen beror på osäkerheten Vi slutar testa när rädslan och osäkerheten förvandlas till leda TDD handlar inte om att ta små steg, utan om att kunna göra det Svårt att driva med tester Säkerhetsprogramvara Parallella system Realtidsprogramvara 7
8 Argument mot TDD och utvecklardriven testning Tester tar lång tid att skriva Tester tar lång tid att köra En del kod måste testas live När man inte vet vad koden ska göra, så kan man inte testa if it compiles then it works Utvecklare är inte testare! Sammanfattning Vi får tester att köra genom fejk, triangulering, eller den uppenbara implementationen Borttagning av dupliceringen mellan test och skarp kod driver designen Flytande gräns mellan hur stora stegen mellan test och implementation blir beroende av svårighetsgraden. TDD ersätter: Code for today, design for tomorrow med By not considering the future of your code, you make your code much more likely to be adaptable in the future Bortom TDD Behavior-driven design Acceptanstestdriven utveckling 8
9 Behavior-driven design Publicerades kring slutet av 2007 Order test i testdriven utveckling ställer till med problem Allomfattande språk för analysprocessen: Stories: As a/i want/so that Acceptanskriteria: Given/when/then Acceptanstestdriven utveckling Ramverk: Concordion, FitNesse Uppbyggda av en specifikation skriven i klartext och en fixtur Specifikationen innehåller parametrar till testfixturen och kommunicerar testets resultat Att införa TDD: de största problemen Nytt arbetssätt Inlärningskurvorna för teknikerna och verktygen Legacykod Man ser inte nyttan omedelbart 9
10 Nytt arbetssätt Kräver disciplin Kräver kunskap: Lätt att testa fel saker Lätt att testa saker fel Om det enda man har är en hammare, blir varje problem en spik En möjlig inlärningskurva produktivitet? Valfritt ramverk Databastestning/webbtestning Refactoring Testning av kollaboratörer tid Teori JUnit Problem med legacykod Inga eller få tester Affärslogik i databasen Felimplemterade J2EE patterns Singletons M m, m m Refactoring! 10
11 Hur vi underlättar införandet. Lösningar! Litteratur Mentorskap Några krasher i kritiska otestade system Continuous build Konsekvenser Man blir test infected Skriver aldrig för mycket kod Designen går mot IoC och Clean Code Slutsatser och rekommendationer Att lära sig TDD tar ett par månader Inlärningskurvan är knuten till testramverken Svårt att alltid behålla disciplinen Man stoppas av legacykod Testa! Man lär sig testramverken Man lär sig refactoring Man designar kod bättre Att fuska med TDD innebär att vi landar på utvecklardriven testning. 11
Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018
Separation of Concern Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018 Modulär design Fördelar med välgjord modulär design: Lätt att utvidga Moduler går
Läs merAgil 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)
Läs merTestdriven 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
Läs merXpmetodik inom Enterpriseutveckling
Sida 1 (10) ... 1... 1... 1 1 Abstract... 2 2 Introduktion... 3 2.1 Enterprisesystem generellt... 3 2.2 Trelagersarkitektur... 3 3 J2EE... 4 3.1 Fördelar med J2EE.... 4 3.1.1 Distribuerbart... 4 3.1.2
Läs merSeparation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017
Separation of Concern Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017 Modulär design Ett programsystem är för stort för att kunna förstås i sin helhet.
Läs merAgil 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
Läs merTestning. 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 merTentamen. 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
Läs merDen 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
Läs mer12 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
Läs merKvalitetssä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.
Läs merNå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 merF4 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 merLinkö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,
Läs merTherese 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
Läs merTDDI02. 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 merF4 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 merLinkö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?
Läs merF2 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
Läs merF2 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
Läs merJavautvecklare. Utbildningsfakta. 400 YH-poäng, 2 år
Javautvecklare 400 YH-poäng, 2 år Utbildningsfakta Kurser (12 stycken) Grundläggande programmering och javaverktyg 50 yhp Grafiskt gränssnitt och interaktion 20 yhp Internet, webb och webbramverk 40 yhp
Läs merDeluppgift 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
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merScaled Agile Framework
Scaled Agile Framework Grunder för självorganisation Vad är det och är det bra? @svante_lidman svante.lidman@coreboost.se 1 Vem är Svante? Senaste 6-7 åren Konsultat inom Large-Scale Lean/Agile De +20
Läs merNote 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
Läs merKanban. Marcus Hammarberg. torsdag den 15 september 2011 (v.)
Kanban Marcus Hammarberg Kanban? Vad sjutton är Kanban för något? Jag brukar beställa yakiniku... http://blog.huddle.net/wp-content/uploads/2009/08/team-building-exercises-improving-teamwork.jpg Kanban
Läs merPraktiker som knäcker koden
Örebro universitet Handelshögskolan Kurs: Informatik med systemvetenskaplig inriktning C Handledare: Ann-Sofie Hellberg Examinator: Johan Aderud Datum: HT-16/2017-01-05 Praktiker som knäcker koden En kvalitativ
Läs merNå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
Läs merXP-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,
Läs merObjekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15
DAVA15 Objekt, klasser Vad är det? Vad är sambandet mellan dem? Vad är skillnaden mellan dem? Tillstånd Signatur Kommunikation Typ Fält, parametrar och lokala variabler Likheter och skillnader Räckvidd
Läs merÖversikt. Fö: Projekt: Interaktivt system. Projekt. Mål. Coachning. Praktiker att använda
Översikt Fö: Projekt: Interaktivt system Kursinformation och introduktion Kursupplägg Systemutveckling Agila metoder Användarorientering Mål Projekt Utveckla en grafisk interaktiv tillämpning ihop med
Läs merTestdriven utveckling av Web Services. Ole Matzura
Testdriven utveckling av Web Services Ole Matzura eviware 1 Vad är Test-Driven utveckling? 2 Test Driven Utveckling 2 Grundregler (Kent Beck) Skriv aldrig kod utan ett fallerande test Eliminera duplicering
Läs merextreme 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
Läs merEnhetstester 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äs merObjekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016
Objekt-orienterad Programmering och Design TDA551 Alex Gerdes, HT-2016 Kursteamet Dr. Alex Gerdes kursansvarig, föreläsare Dr. Niklas Broberg examinator, (föreläsare) Fredrik Sjöholm handledare Johan Andersson
Läs mer2014-10-06. Reijo Soréus. NyA. Presentation för Ladok-Inkubator Göteborg
NyA Presentation för Ladok-Inkubator Göteborg 2014-10-06 Reijo Soréus NyA nu Vad är på gång och vad händer närmaste tiden De stora dragen Övergång till agil utveckling sedan 2013 Spår och team fungerar
Läs merFöreläsning 23. Tobias Wrigstad. Refaktorering
Föreläsning 23 Tobias Wrigstad Refaktorering Traditionell syn på systemutveckling Analys & Design Implementation Testning (V&V) Den s.k. vattenfallsmodellen Diskreta steg som bildar en pipeline varje steg
Läs merAgil 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 merVad 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
Läs merFöreläsning 10: Introduktion till utvärdering. Rogers et al. Kapitel 12
Föreläsning 10: Introduktion till utvärdering Rogers et al. Kapitel 12 Analys Utvärdering Implementation Prototyper Krav Design 120515 Intro utvärdering 2 Bruce Tognazzini om utvärdering Iterative design,
Läs merArkitektur. Den Röda Tråden
Arkitektur Done Den Röda Tråden Vad är arkitektur? Vad har vi arkitekturmodellen till? Hur redovisar vi en arkitektur? Hur tar vi fram en arkitektur? Uppgift arkitekturella krav Nu Redovisning/Diskussion
Läs merMjukvarudesign. 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 merLUNDS 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
Läs merAGILA 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
Läs merKravinsamlingAnalys Design Implementation Testning
1 Utvecklingscykler Para ihop följande begrepp med rätt utvecklingscykel Matcha ihop värdena: KravinsamlingAnalys Design Implementation Testning Interaktionsdiagram Systemsekvensdiagram User Stories Enhetstester
Läs merTestautomatisering. 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:
Läs merAktivitet 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
Läs merErfarenheter av automatiserad testning
Tobias Bohn IT Architect IBM Application Innovation Services Erfarenheter av automatiserad testning Agenda Bakgrund Automatiserade funktionella tester Vad krävs för att det skall fungera Exempel Hur vi
Läs merPrinciples of subclasses. Objekt-orienterad programmering och design Alex Gerdes, 2018
Principles of subclasses Objekt-orienterad programmering och design Alex Gerdes, 2018 Implementation inheritance Subclassing, eller implementation inheritance (implementationsarv), ger oss två fördelar:
Läs merProjektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget... ... 66% misslyckades!
Projektkaos. Chaos-rapporten 34% av projekten avslutades i tid och enligt budget...... 66% misslyckades! 1 Standish Group, 2003 (www.standishgroup.com) Praxis Hantera krav Använd komponentarkitekturer
Läs merTDDI82 - Projekt. Christoffer Holm. Institutionen för datavetenskap (IDA)
TDDI82 - Projekt Christoffer Holm Institutionen för datavetenskap (IDA) 1 Projektkrav 2 Projektplannering 3 Spelutveckling 1 Projektkrav 2 Projektplannering 3 Spelutveckling 3 / 26 Upplägg Spåna projektidé
Läs merFöreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID
Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID Vad gör vi här? Programmeringsteknik fördjupningskurs (EDAA01; 7,5hp) Valfri för F, N & BME (kan läsas från åk 2 eller i sommar!) Avancerad
Läs merFöreläsning 8, Design
Föreläsning 8: Design och prototyper FSR: 1, 4, 5, 6 Att läsa: Kapitel 11 i Rogers et al.: Interaction Design Översikt Konceptuell design (Fysisk design) Uppgiftsallokering Prototyper Typer av prototyper
Läs merDatastrukturer och algoritmer. Föreläsning 4 Test, Stack och Kö
Datastrukturer och algoritmer Föreläsning 4 Test, Stack och Kö 1 Innehåll Test Datatyperna Stack och kö Specifikation och Gränssnitt Konstruktion Tillämpning 2 Testa VIKTIGT! Test går att göra under många
Läs merOm fem stycken :GameObject ligger i vägen för b:bullet så kommer alltid loopen köras fem gånger. Välj ett alternativ
1 Interaktionsdiagram Givet följande sekvensdiagram: Om object:gameobject inte överlever träffen skall den tas bort från världen. Enligt GRASP mönstret Information Expert är det klassen GameObject som
Läs merObjekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018
Objekt-orienterad programmering och design DIT953 Niklas Broberg, 2018 Kursteamet Niklas Broberg kursansvarig, föreläsare, examinator Johannes Åman Pohjola föreläsare Assistenter: Karin Wibergh Sarosh
Läs merStatic 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 =
Läs merKursöversikt Certifierad Mjukvarutestare
Kursöversikt Certifierad Mjukvarutestare Kurs Poäng (5 yh poäng/vecka) Examensarbete 20 Grunderna inom test 20 Kommunikation i arbetslivet 15 Lärande i arbete 1 60 Lärande i arbete 2 60 Projektarbete 15
Läs merTDP023 Projekt: Agil systemutveckling
TDP023 Projekt: Agil systemutveckling Johan Åberg johan.aberg@liu.se Tre moment Projekt 8hp Marknadsföring av produkt 2hp Kopplat till projektarbetet Individuell rapport 2hp Kopplad till projektarbetet
Läs merPMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning
PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer
Läs merObjekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018
Objekt-orienterad Programmering och Design TDA552 Alex Gerdes, HT-2018 Kursteamet Dr. Alex Gerdes examinator och föreläsare (Dr. Niklas Broberg föreläsare) Handledare: Sólrún Halla Einarsdóttir Yazan Ghafir
Läs merDesignmö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
Läs merInstallation av F13 Bråvalla
Website: http://www.rbdesign.se Installation av F13 Bråvalla RBDESIGN FREEWARE - ESCK Norrköping-Bråvalla 1. Ladda ner och packa upp filerna i en mapp som du har skapat på ett lättöverskådligt ställe utanför
Läs merStatic 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
Läs merVad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes
Vad kännetecknar en god klass F12 Nested & En odelad, väldefinierad abstraktion Uppgiften kan beskrivas kort och tydlig Namnet är en substantiv eller adjektiv som beskriver abstraktionen på ett adekvat
Läs merDr. Gustav Taxén MDI-Gruppen, CSC / VIC-Sthlm gustavt@kth.se
Att utvärdera spel Dr. Gustav Taxén MDI-Gruppen, CSC / VIC-Sthlm gustavt@kth.se Att utvärdera spel Buggar / logikfel: QA Upplevelsen: Playtesting Utvecklingsprocessen: Post Mortem BUGGAR / LOGIKFEL Unit
Läs merFö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
Läs merAnvä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/
Läs merTeknisk testning för otekniska testare
Teknisk testning för otekniska testare SAST, 16-feb-2017 Rikard Edgren Nordic Medtest rikard.edgren@nordicmedtest.se Nordic Medtest utför testning och kvalitetssäkring och bidrar till mer användbar och
Läs merTestning 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 merProgramsystemkonstruktion med C++: Övning 1. Karl Palmskog september 2010
Programsystemkonstruktion med C++: Övning 1 Karl Palmskog palmskog@kth.se september 2010 Programuppbyggnad Klassens uppbyggnad en C++-klass består av en deklaration och en definition deklaration vanligtvis
Läs merMer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML
Målet Mer OOP Mer om klasser Några exempel UML Modularitet Språkligt modulära enheter Få gränssnitt Små gränssnitt Tydliga gränssnitt Dold information Återanvändbarhet Variation i typer Variation i datastrukturer
Läs merVersionshantering. 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
Läs merPragmatisk programmering. Cyberrymden 2001-10-03. Marcus Rejås <marcus@rejas.se> Pragmatisk programmering,19 september 2002 1(26)
Pragmatisk programmering,19 september 2002 1(26) Pragmatisk programmering Cyberrymden 2001-10-03 Marcus Rejås $Id: slides.tex,v 1.8 2002/09/16 19:43:40 rejas Exp $ Metainformation Denna
Läs merLabb 1: Vad, hur, och varför?
Labb 1: Vad, hur, och varför? jonas.kvarnstrom@liu.se 2017 "En sak i taget": Öva grunder innan det blir mer komplicerat Starkt önskemål från studenter: Prova på kontrollstrukturer Labb 1: Intro till grunder
Läs merPlaneringsspelets mysterier, del 1
Peter Lindberg Computer Programmer, Oops AB mailto:peter@oops.se http://oops.se/ 28 februari 2002 Planeringsspelets mysterier, del 1 Om jag ska spela ett sällskapsspel för första gången så vill jag att
Läs merJUnit. Ska kompletteras med kodexempel på JUnit. DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012
DD2385 Programutvecklingsteknik Några bilder till föreläsning 12 21/5 2012 Innehåll Testning med JUnit Refactoring Några designprinciper JUnit Ramverk i Java för testning av Java-klasser Utvecklat av Gamma
Läs merPresentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban
Presentation Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban Om AddQ Mission Vi skapar affärsnytta för kunden genom specialisttjänster inom test, kvalitetssäkring och effektivisering Tjänsteområden
Läs merWEBBSERVERPROGRAMMERING
WEBBSERVERPROGRAMMERING Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets syfte Undervisningen i ämnet
Läs merTestdriven utveckling i industrimiljö
Informatik Avdelningen för Data- och systemvetenskap Testdriven utveckling i industrimiljö Erfarna och oerfarna utvecklares perspektiv Författare: Peter Starefeldt Handledare: Peter Mozelius Examensarbete
Läs merTestautomatisering. 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
Läs merPragmatisk programmering. Cyberrymden 2001-10-03. Marcus Rejås <marcus@rejas.se> Pragmatisk programmering,16 december 2002 1(29)
Pragmatisk programmering,16 december 2002 1(29) Pragmatisk programmering Cyberrymden 2001-10-03 Marcus Rejås $Id: slides.tex,v 1.14 2002/12/16 14:52:59 rejas Exp $ Metainformation Denna
Läs merUrbanisering: Ökad koncentration pengar; människor; makt; bebyggelse
å ö å ä å å ä å ä ö Tre stora krafter : Urbanisering: Ökad koncentration pengar; människor; makt; bebyggelse Teknologisk utveckling: Sammankoppling av ekosystem, människor, insitutioner Globalisering:
Läs merHur leder vi transformationer?
Hur leder vi transformationer? Offentlig chef 14 mars 2019 #offentligchef @gaialeadership Vad är transformation? Hur leder vi en transformation? 7 steg för en lyckad transformation I think there are good
Läs merRefaktorisering i ett XP-projekt
Författare: Erik Norberg, Joakim Puusaari E-post: {d00en, d00jpu@efdlthse Datum: 2004-02-22 Refaktorisering i ett XP-projekt Sammanfattning I denna djupstudie delar vi med oss av våra erfarenheter av refaktoriseringar,
Läs merFöreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp
Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser
Läs merDel av projektuppgiften. Systemarkitektprogrammet
Objektorienterad mjukvaruutveckling Provmoment: Ladokkod: Duggan ges för: Namn: Personnummer: Del av projektuppgiften Systemarkitektprogrammet 7,5 högskolepoäng Duggadatum: 2014-10-24 Tid: 09:00 12:00
Läs merVad 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 merWebbserverprogrammering
Webbserverprogrammering WES Webbserverprogrammering Ämnet webbserverprogrammering behandlar funktionalitet för webblösningar och samspelet mellan beställare, användare, formgivare och utvecklare. Ämnets
Läs merConfiguration 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 merTDDI02. 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 merPresentation Edument AB. All Rights Reserved.
Presentation 2017 Edument AB. All Rights Reserved. Om läraren Namn: Mattias Andersen Programmerat konstant de senaste 4 åren Bor med fru och två barn Sysslar även mycket med musik (basist) Webbutvecklare
Läs merScrum med XP-relaterade tekniker
Scrum med XP-relaterade tekniker Införandet av Scrum och dess påverkan på systemutvecklargruppen Magisteruppsats, 15 högskolepoäng, INFM01 i Informatik Framlagd: 06, 2008 Författare: Handledare: Examinatorer:
Läs merAGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive
AGIL KRAVHANTERING Hitta behoven bakom kraven!!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive KRAVSTÄLL EN PRODUKT! Skriv ner tre krav som ni ställer på produkten INNOVATIONSDRIVNA PRODUKTER...
Läs merF9 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
Läs merÖversikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Läs merPrinciples of subclasses Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018
Principles of subclasses Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018 Implementation inheritance Subclassing, eller implementation inheritance (implementationsarv), ger oss
Läs merObjektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Sökning och Sortering: Binärsökning Problem: Hitta ett element i en godtycklig
Läs merFöreläsning 2: Introduktion till utvärdering varför ska vi utvärdera?
Föreläsning 2: Introduktion till utvärdering varför ska vi utvärdera? FSR: 1, 2, 5 Rogers et al. Kapitel 13 (e/3: 12-13) Analys Utvärdering Implementation Prototyper Krav Design 150327 Intro utvärdering
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Läs mer