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
- Redegøre for red-green-refactor-cyklussen i TDD
- Skrive en test før implementering af en funktion
- Vurdere fordele og ulemper ved TDD
Sådan kan du arbejde med emnet
- Implementér en funktion is_palindrome() ved hjælp af TDD-cyklussen red-green-refactor
- Forklar, hvad der er de tre faser i TDD-cyklussen, og hvad den røde fase siger om koden
- Diskutér, hvad der er ulemperne ved TDD, og hvornår det ikke er praktisk at bruge
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