Therese Hansson & Magnus Jonsson. Motivationsfaktorer - Test inom Agila utvecklingsprojekt



Relevanta dokument
Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Användningscentrering i agila utvecklingsprojekt. johanna.sarna@valtech.com Valtech

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Linköpings universitet 1

Verktyg för agil systemutveckling. Vad är ett verktyg? Olika typer av verktyg för mjukvaruutveckling. Vad kan ett bra verktyg tillföra?

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

Du fulländar mig! Om synergierna mellan agila metoder och UX. Joakim Holm Adaptiv AB. Erik Hammarström Antrop AB

BESKRIVNING AV PROCESSMETODEN SCRUM

SCRUM och agil utveckling

Agil testning i SCRUM

12 principer of agile practice (rörlig)

Presentation. Fredrik Runnsjö 1996 Utvecklare 2004 Testare ~2006 Scrum/Canban

Scrum + XP samt konsekvensanalys

Agile i ett större sammanhang. Thomas Nilsson CTO, Agile Developer, Coach & Mentor

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

AGILA METODER. (för oss som inte kodar) Nina Berlin

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

Agilt arbetssätt i komplexa organisationer. Välkomna! Anna Picetti, IT-HUSET

Agile i ett större sammanhang

OOA Objektorienterad Analys. Exempel på informell kravspecifikation. DD2385 Programutvecklingsteknik Några bilder till föreläsning 11 13/5 2013

Inspel till dagens diskussioner

Informationshantering vid systemutveckling styrd av CM

Agil projektmetodik Varför och vad är det?

F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

SCRUM. Marcus Bendtsen Institutionen för datavetenskap

Systemet. Varför? Persiska viken 3 juli Resultat. Mitt under striden: USA befinner sig i konflikt med Irak och Iran. Mitt under striden, forts:

Vad är agilt? Agile Islands Andreas Björk


F2 XP Extrem Programmering översikt. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Görel Hedin Datavetenskap, LTH

Kursöversikt Certifierad Mjukvarutestare

SCRUM. Vattenfallsmodellen. Analys. Design. Kod. Test. Rational Unified Process Agile. Kallas också linjär sekventiell modell.

SCRUM vs. XP en jämförelse mellan två lättviktsmetodiker

Användarcentrerad systemdesign

Några grundläggande begrepp

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

Agil programutveckling

Samarbetsstrukturer för att självorganisera inom givna ramar.

Agil mjukvaruutveckling. 1DV404, Jesper Andersson

Fokus på seniora konsulter med mycket erfarenhet

Kurser och seminarier från AddQ Consulting

Lean software development och lättrörlig utveckling

Testdriven utveckling. Teorin bakom testdriven utveckling. Bakgrund. Januari 2009, KTH. Alexander Tarnowski

Kvalitetssäkra ditt projekt med kontinuerlig integration

SCRUM på Riksarkivet. Magnus Welander /

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

Scrum med XP-relaterade tekniker

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

Användning av testautomation inom Extendas utvecklingsorganisation

Note to programmers. Embrace Change! Extreme Programming? Fyra basaktiviteter. 12 Practices / sedvanor. Vad är Extreme Programming

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

Agila metoders påverkan på testare

SCRUM. på fem minuter

Projekt intranät Office 365 av Per Ekstedt

Kurser och seminarier från AddQ Consulting

Agil Projektledning. En introduktion

Scrum i praktiken Tillämpning inom Gripen demonstrator. Fredrik Lorentzon & Marcus Frejd SESAM

Agile-metoder, XP och ACSD

SCRUM och mycket mer

Användarcentrerad systemdesign

Föreläsning 4: Designprocessen

ALM Live: Scrum + VSTS

Fungerar Agila principer i alla typer av projekt?

Insikt. kräver kunskap, erfarenhet och förståelse

Agile Enterprise Architecture

TDDD26 Individuell projektrapport

HÖSTTERMINEN. Scrum STF INGENJÖRSUTBILDNING AB. Vi vidareutbildar ingenjörer och tekniker. Din partner för livslångt lärande

Projektmetodik II. HF1005, Informationsteknik och ingenjörsmetodik för Datateknik. Projektarbete

Agil Projektledning. En introduktion

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

Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.

Examensarbeten hösten 2014

Testning av applikationer

Reijo Soréus. NyA. Presentation för Ladok-Inkubator Göteborg

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

Scrum + XP = sant. Kristian Björk D06, Lunds Tekniska Högskola dt05kb1@student.lth.se. Frederik Blauenfeldt Jeppsson. dt06fb8@student.lth.

Två resor till molnet. Per Sedihn CTO Proact IT Group

Översikt. Fö: Projekt: Interaktivt system. Projekt. Mål. Coachning. Praktiker att använda

Enhetstester på.netplattformen

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

Scrum. på fem minuter

Scrum. på fem minuter

Agila arbetsformer. Gemensamma värderingar

IBM Software Group. Agil Acceptans Test. Annika Kortell SAST 15-års jubileum IBM Corporation

Agila Metoder. Nils Ehrenberg

DevOps i Verkligheten

Integrerat ingenjörsprojekt

Testplanering, test-first, testverktyg

TDP023 Projekt: Agil systemutveckling

extreme Programming refactored - recension och analys av Kent Becks senaste definition av XP

Användbarhet i sitt sammanhang

Regressionstestning teori och praktik

En snabbare väg till framgång Ett agilt angreppssätt för BI Johan Petersson

V!cto. Att tjäna pengar genom bättre testning med

SESAM. Agila metoder

TDP023 Projekt: Agil systemutveckling

Labrapport över Rumbokningssytemet Grupp:1

TDDI02. På denna föreläsning: Programmeringsprojekt, Föreläsning 1. Kursinformation Vad är Software Engineering? Hur går ett projekt till?

QC i en organisation SAST

Agila Organisationer

Transkript:

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 Våra HiQ-roller -> Scrum Masters, Test Ledare, genomför verksamhetsanalyser & förändringar inom testområdet, arbetar med Test i agila och traditionella utvecklingsmiljöer, håller kurser om Scrum och agil utveckling.

Dagens Agenda Belysa begreppen Agile, Scrum, Test Driven Utveckling, XP och Continuous integration Beskriva ett internationellt utvecklingsprojekt som gick från traditionell vattenfallsmetodik till agil systemutveckling ur ett testperspektiv... Prata om motivationsfaktorerna som erhålls när man arbetar med test inom agila utvecklingsprojekt och vad detta kan leda till

Vad innebär begreppet Agile Agile metodik kännetecknas av ett antal värderingar, attityder och principer. Dessa finns representerade i ett antal utvecklingsprocesser Exempel på processer är extreme Programming och Scrum. Agile betyder lättrörlig och grundtanken är att ge utvecklarna möjlighet till snabb utveckling där förändingar kan hanteras med en flexibel process. Människan och kommunikation människor emellan sätts i centrum. Agile manifesto: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

Agile 12 Principer Kundnöjdhet Välkomnar förändringar Regelbunden leverans av programvara Verksamhetskunniga & utvecklare arbetar tillsammans Motiverade individer Kommunikation öga mot öga Funktionalitet = framsteg Jämn arbetsbelastning Tekniskt perfektion & bra design förstärker anpassningsförmågan Enkelhet Självorganiserande team Utvärdering och anpassning

Vad innebär begreppet Scrum

Vad innebär begreppet Scrum Agil projektstyrningsmodell Fokus på vad som skall göras istället för hur det skall göras Ken Schwaber & Jeff Sutherland tog 1996 fram en formell beskrivning av scrum I scrum används särskilda roller, praxisar och element för att förbättra flexibilitet Arbetar i ca 30 dagars iterationer Fokus på det självorganiserade teamet Dagliga möten Scrum & XP en bra kombination

Mer om Scrum Omtalas som en Hyper-produktiv teknik Scrum ökar produktiviteten Enkla men fungerande regler Små team Dagliga stå upp möten Hanterbara mål Inga störande moment (avbrott) Två viktiga hörnstenar Självbestämmande (Team empowerment) Anpassningsbarhet (adaptability)

Det stora skiftet Scrum en FLIP Utvecklings teamen är i fokus - management är där för utvecklingsteamen Utvecklings teamen har full fokus på Att bygga kvalitetsmjukvara Hur man bygger kvalitetsmjukvara Management fokuserar på Business Vad som skall utvecklas Att röja hinder för utvecklingsteamen

Roller i Scrum Alla i samma båt vi måste segla tillsammans Product Owner Scrum Master Team

Effektiva Scrum Team har.. Högt fokus på att komma framåt Inga onödiga möten Hög kommunikation inom teamet Bra och fungerande processer inom teamet (kanske på organisationsnivå) Scrum Mastern som kommunikationskanal utåt En konstruktiv miljö En kreativ miljö Bra synlighet internt och externt Roligt!!!

Effektiva Scrum Team Teamet i ett rum Kommunikation förenklas Alla i teamet kan se taskboarden Målmedvetenhet ökar Kunskapsspridning alla kan ta del av diskussioner som förs mellan teammedlemmar Koordinering av uppgifter underlättas Samhörighet ökar

Blanda in kund tidigt

Blanda in kund tidigt Referensgrupp kravställande Domänexpertis Få feedback på implementerad funktionalitet i tidigt skede Kundens delaktighet skapar förståelse och acceptans Låt kunden få tillgång till wikin

Vad innebär begreppet Scrum

Vad innebär begreppet Extreme Programming XP är en systemutvecklingsmetodik Grundad av Kent Beck Ett antal värderingar och praxisar beskriver kärnan i XP Praxisar skall tillämpas beroende på situation XP bäst lämpat för team bestående av 2-10 personer

Vad är Continuous integration? Integrerar koden ofta med all annan kod Bygger schemalagt (natt) och automatiskt vid incheckning av ny körbar och testad kod Kräver automatiska regressionstester vilket ger snabb feedback Genom röda tester kan man se kodförändringar i andra moduler snabbt Potentiella verktyg: Cruise control triggar Ant script bygger Fitnesse, Cpp eller J Unit

Vad är vinsterna med Continuous integration? Lagom integration för varje mål man slipper en all in eller big bang approach Kan kontrollera att man själv inte förstör bygget innan man checkar in sin kod. Kan se om andra moduler gjort någon förändring av ett beroende som man själv använder. Hjälper en att alltid ha körbara byggen.

Test Driven Utveckling Test : styr utveckling Acceptans tester som specificerar en funktion inte validerar som design Specificerar och implementerar unit tester innan man kodar Viktigt med Code reviews

Projekt i verkligheten Siemens Medical Solution Elektroniska patientjournaler för sjukvårdsystem Distribuerad utveckling Indien, Tyskland, USA och Sverige Endast mjukvaruutveckling 35 Scrum team samtidigt (ca 8-10 pers/team) Integration med många andra system Siktade på FDA - medical device höga krav på kvalitet och person säkerhet

De stora övergången Siemens Medical Solution Varför Scrum? Hela projektet styrdes om till arbeta agilt Beslut av högsta ledningen inom Siemens Med - klassiska argument så som: Bättre flexibilitet Ökad produktivitet Ökad kvalitet Högre grad av kommunikation Snabb återkoppling - Utvecklar vi det kunderna vill ha Nöjdare kunder Kortare tid till marknad levererbar kod efter varje leverans

Interna och externa testkrav Siemens Medical Solution Vad fanns det då för krav på kvalitet och test? FDA Standarder - intern utbildning (HIPPA ) Siemens interna krav: Normala höga krav på kvalitativ (ett måste inom sjukvården). Hazards allt som kunde förknippas med personfara i systemet (ml vs cl, timmar vs minuter e.t.c)

Exempel av testning under en release Siemens Medical Solution Exempel: 1 Release = 8 Sprintar 1 st infrastruktur sprint (vid nya delar eller nyskapade team) 5 st utvecklings sprintar automatiska och manuella tester 2 st bugfix samt stabiliserings sprintar automatiska och manuella tester (men med högt fokus på alla manuella tester) Kundinstallation

crum & XP tillämpning på Siemens Medical Solution Parprogrammering Kollektivt ägande Kodstandard Kontinuerlig integration Små releaser Enkel Design Testning On-site kund

TDD tillämpning på Siemens Medical Solution 1. Granskning av user stories/krav 2. Skapande av automatiska tester för att täcka user stories i sprint (kan starta i sprinten före själva implementationen skall starta) 3. Person med testkompetens parprogrammerar med en utvecklare som skriver testkod på unit- och integrationsnivå 4. När kod är färdigskriven för en user story körs de automatiska testerna på de nivåer som är möjliga 5. De automatiska testerna fallerar, kod eller tester refaktoreras och automattester exekveras igen 6. När testerna exekveras med förväntat utfall kan man anse sig färdig med user storyn och implementationen 7. Sprint Demo genomförs genom demonstration av funktioner och tester

Tester på olika nivåer på Siemens Medical Solution Enhetstester Automatiska, exekverades i dagligt bygge, skapades av utvecklare Integrationstester (låg nivå) Automatiska, exekverades i dagligt bygge, skapades av utvecklare Funktionstester Automatiska, exekverades i dagligt bygge, skapades av annan person än utvecklaren, kund ofta involverad Acceptanstester Automatiska eller manuella, skapades av annan person än utvecklaren och gemensamt med kunden Alla automatiska tester exekverades varje natt, i nattligt bygge Ett representativt urval av tester valdes ut som smoke suite, för att kunna erhålla snabbt resultat vid incheckning av kod. Kördes i dagligt bygge så fort kod checkades in

Testverktyg som användes på Siemens Medical Solution JUnit för tester på lägsta nivån Fitnesse för tester på integrations-, funktions- och acceptansnivå

Testverktyg som användes på Siemens Medical Solution Fitnesse är ett open source verktyg Tester i Fitnesse skapas i en Wiki Fitnesse är ett test- och kommunikationsverktyg Använde Fitnesse tester för att klarifiera krav tillsammans med kunder och produktanalyster Med hjälp av Fitnesse gjordes kraven testbara i ett tidigt skede Fitnesse ett enkelt verktyg att använda Med Fitnesse testade vi på flera olika nivåer Alla scrum team skapade sina tester i Fitnesse och dessa exekverades när någon checkade in kod fångade många integrationsbuggar

Exempel på Done Definition Siemens Medical Solution 1. Implementerat (alla implementationsuppgifter klara) 2. Koden kommenterad, incheckad och körd emot senaste versionen 3. Granskad (eller parprogrammerad) och möter kodstandard 4. Byggs utan fel 5. Enhetstester/integrationstester implementerade och exekveras med positivt utfall 1. Funktions- och acceptanstester implementerade och exekveras med positivt utfall

Varför så bra för kvaliteten? Kraven gjordes testbara & tydliga tidigt Använde acceptanstester som förtydligande av kravspecifikationer Implementerade kod för att tillfredställa godkänna acceptanstester Kunderna delaktiga -> Snabb feedback om fel utveckling skett Alla automatiserade tester

Fråga Hur tror ni att arbete med test i agila utvecklingsprojekt kan vara motivationshöjande?

Motivationsfaktorer vid agilt testarbete Person som arbetar med test i förarsätet driver utveckling framåt Testresurs får tidigt inblick i funktionalitet som skall utvecklas Tydliga testmål under sprintarna -> högre målmedvetenhet och fokus skapas Inga givna roller alla i scrum teamet måste ta ansvar för att produkten testas Stora delar av testningen automatiserad manuellt arbete kan minimeras Goda chanser för testare att komma närmare koden

Motivationsfaktorer vid agilt testarbete Teamansvar framför individansvar alla teamets medlemmar är ansvariga för att uppnå sprintmål även med test.. Murar mellan utveckling och test rivs - test en given del av utvecklingen Involvering av kund leder till leverans av system med bättre kvalitet Varierande arbetsuppgifter i sprintarna - stimulerande Teamrum & tätare samarbete mellan utveckling och test gruppsammanhållning bättre Kunskapsspridning ökar sårbarhet minskar

Frågor