TDD - Testdriven utveckling

Testdriven utveckling (TDD) är en systemutvecklingsmetod med fokus på automatiserad enhetstestning av varje programblock som följs av integrationstester och användartester.

I metoden får ingen programkod införas eller ändras utan att testfall har skrivits först. Innan kod checkas in ska utvecklaren lokalt köra igenom de nya testfallen för den senaste kodändringen, samt alla testfall. Först när testfallen har exekverats och fått godkänt är utvecklaren tillåten att checka in kodändringen.

Med Testdriven utveckling får man underlag för automatiserad testning, vilket ofta är en kritisk framgångsfaktor. Med testautomatisering kan man enkelt och tryggt ändra i befintlig kod utan att riskera att man får oväntade effekter i senare utvecklingsfaser eller i produktionsmiljö. Testerna definierar vad som är ett korrekt beteende, ändrar man något som går utanför det, märker man det direkt.

Processen innebär är att man först tar fram ett testfall som fallerar. I nästa steg implementeras tillräckligt med kod så att testet inte längre fallerar. Efter det går man igenom designen och koden för att säkerställa att den är enklast möjliga. Är den inte det, uppdaterar man koden utan att ändra kodens beteende, vilket kallas ”refaktorering” (refactoring på engelska). På så sätt säkerställer de testfall man har att man kan ändra koden utan att påverka på funktionaliteten på oväntade sätt. Därefter fortsätter man med ett nytt varv, test – implementation – refaktorering.

Några av fördelarna med arbetssättet är att:

  • Man får förutsättningar för låg kostnad för kodförändringar över tid.
  • Man kan göra genomgripande förändringar av koden utan att riskera att påverka andra delar av systemet på ett oväntat sätt.
  • Ett test beskriver vad som skall göras medan implementationen beskriver hur det ska göras. Testerna blir specifikationer skrivna i programmeringsspråk.
  • Eftersom testet skrivs innan koden implementeras så blir designen av gränssnittet gjord utifrån användarens synvinkel, istället för hur implementationen är gjord.
  • Man säkerställer att testerna verkligen skrivs, vilket kan vara svårt att säkerställa om man tar fram testerna i efterhand. Det ger också en hög kodtäckningsgrad jämfört med om man skriver testfallen i efterhand. Det är ofta svårt att motivera sig i efterhand att skriva testfall för kod som fungerar.

Målgrupp
Utbildningen vänder sig till alla som vill kunna utveckla bättre kod fortare, få högre underhållbarhet på koden och kod som kan vidareutvecklas på ett säkert sätt.

 

Bakgrundskunskaper
Du bör ha viss vana vid mjukvaruutveckling i allmänhet och C++-programmering i synnerhet.

Språk
Utbildningsmaterialet är skrivet på engelska. Utbildningen kan genomföras antingen på svenska eller engelska.

Kurslängd
Kursen genomförs under två dagar.

Innehåll
I utbildningen går vi igenom:

Grunderna i testdriven utveckling

  • Vad innebär testdriven utveckling
  • Enhetstestning och ramverk

Testning i C++

  • Enhetstestning i C++ och Boost.Test
  • Google Test testbibliotek och hur det används för att skriva enhetstester i C++.
  • Ramverk för ”mocking” i C++

Mer om testdriven utveckling

  • Best practice för enhetstestning och testdriven utveckling
  • Att hålla testfallen rena
  • Fördjupning i faktorering
  • Att arbetat med ”legacy” kod
  • Genomgång av några exempelprogram och hur man utvecklar dem med hjälp av TDD i C++-miljö.

Intresseanmälan
Här görs intresseanmälan till utbildning i TDD - Testdriven utveckling.

Mer information
För mer information kontakta Åsa Detterfelt, 070-659 58 12, alternativt maila asa.detterfelt@mindroad.se.

Kurstillfällen 2018

Jönköping: 25 - 26 september
Göteborg: 13 - 14 november

Pris

Aktuellt pris för utbildningen hittar du  här.

Anmälan