FAGPORTALEN

Test-driven development (TDD) — red-green-refactor

It A · STX · A-niveau · Systemudvikling og DevOps

💻 Test-driven development (TDD) — red-green-refactor

Test-Driven Development (TDD) = udviklings-metode hvor du skriver TEST FØR koden. Populariseret af Kent Beck (Extreme Programming, 1999).

Cyklus — Red-Green-Refactor:

1.

RED: skriv en lille fejlende test. Test skal fejle (pga. ingen kode endnu).

2.

GREEN: skriv MINIMUM kode der får testen til at bestå. Ingen optimering, ingen ekstra features.

3.

REFACTOR: ryd op i koden uden at ændre opførsel. Tests sikrer du ikke bryder noget. Gentag for næste lille feature.

Eksempel — FizzBuzz i Python (pytest): (1)

RED: ``def test_fizzbuzz_3(): assert fizzbuzz(3) == "Fizz"``. Kører → fejler (no fizzbuzz function). (2)

GREEN: ``def fizzbuzz(n): return "Fizz" if n % 3 == 0 else str(n)``. Test bestar. (3)

RED næste: ``def test_fizzbuzz_5(): assert fizzbuzz(5) == "Buzz"``. (4)

GREEN: tilføj if-else. (5)

REFACTOR: gør koden pænere.

Fordele ved TDD:

1.

Bedre design — du tænker INTERFACE før IMPLEMENTATION. Naturligt mere modulært.

2.

Færre bugs — bugs fanges tidligt.

3.

Levende dokumentation — tests viser HVORDAN koden bruges.

4.

Tryghed til refactoring — "kører tests stadig grøn?" → ja → kode er sikker.

5.

Hurtigere debug — fejlende test peger direkte på problemet.

Ulemper / udfordringer:

1.

Lærings-kurve — kræver ny tankegang.

2.

Tager tid initialt — men vinder tid på lang sigt (færre bugs).

3.

Ikke al kode kan TDD'es — UI, integration, externe APIs er svære.

4.

Disciplineret kræver

Læringsmål

Sådan kan du arbejde med emnet

Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.

Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.

Prøv Fagportalen gratis

🤖 Denne side er skrevet med kunstig intelligens og fagligt gennemgået af Fagportalen, som har det redaktionelle ansvar. Finder du en fejl, så skriv til support@fagportalen.dk.