Anvendelse af Test Driven Development metoder – i daglig tale TDD – i forbindelse med embedded design kan måske virke som en vanskelig mission at få taget hul på i mange virksomheder.
Ikke desto mindre er det en sikker investering, som giver rigtig meget igen. Her er nogle bud på, hvorfor TDD er en så oplagt metode at anvende generelt – men også i forbindelse med embedded software design. Her er nogle af argumenterne:

1. Færre fejl og mindre tid på fejlfinding

Logiske fejl i koden opdages nemmere, og er lettere at rette. Samtidig giver en omfattende pakke af tests gode muligheder for at opdage, hvis en rettelse skaber en fejl i et andet modul. En omfattende test-pakke giver en højere fortrolighed med produktet, og gladere og mindre stressede software-udviklere!

2. Softwareudvikling uden hardwaren

Ved at bruge vel-definerede abstraktionslag og mock-ups af hardwaren, er det muligt at starte udviklingen af softwaren længe før den endelig hardware platform er klar. Dette giver også et bedre overblik over om en fejl ligger i softwaren eller hardwaren, da man i softwaren kan lave specifikke modeller af interaktionen mellem softwaren og hardwaren. Der er jo ikke noget nyt i at starte udviklingen af software før man har den endelige hardware platform. Men TDD giver en langt større sandsynlighed for, at software-designet umiddelbart kan anvendes på den endelige hardware.

3. Forbedret modulært design

Ved at tænke testbarhed ind i softwaren fra dag ét, opnår man et langt mere modulært design, med klare snitflader og høj kohærens mellem modulerne. Denne modularitet, kombineret med veldefinerede abstraktionslag, giver samtidig en unik mulighed for senere at skifte til en anden hardware-platform, uden at skulle lave større ændringer i kode-basen.

4. Selv-dokumenterende software

Tests er en fremragende måde at dokumentere softwaren på, da de giver konkrete eksempler på brugen af softwaren. Samtidig giver pakken af tests en godt overblik over softwarens aktuelle tilstand og progression. Godt for både udviklere, projektledere og produktejere.

5. Kombination med Continuous Integration bygge-systemer

TDD er samtidig en fantastisk mulighed for at få bedre styr på bygge-processen af softwaren. Ved at lade centrale bygge-servere kompilere softwaren, kører tests, danne rapporter, og ovenikøbet bygge produktions-udgivelser af softwaren, opnår man et meget stærkere og mere struktureret forløb – både undervejs i projektet, men også når softwaren til udgives.

Kilder:
http://www.renaissancesoftware.net/blog/archives/55
http://accu.org/index.php/journals/1548
http://www.renaissancesoftware.net/blog/archives/364
http://programmers.stackexchange.com/a/119472

Har du spørgsmål eller kommentarer til denne artikel, eller du interesseret i at høre mere om opsætning af udviklingsmiljø, værktøjer osv., er du meget velkommen til at kontakte mig på lr@circleconsult.dk.

Med venlig hilsen
Lauge Rønnow
Adm. direktør

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Generic License.