diff --git a/Lerntagebuch.md b/Lerntagebuch.md index ede972c..41aa6bb 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -127,6 +127,26 @@ Im Fokus meiner Erkenntnisse standen die UnitTests und ihre Bedeutung im Entwick ### Wiederholung UnitTests sind integraler Bestandteil der Entwicklungspraxis. Durch ihre frühzeitige Ausführung im Prozess bieten sie nicht nur schnelle Rückmeldung, sondern sind auch unabhängig, wiederholbar, selbstbewertend, zeitnah, gut lesbar und verhindern ungewollte Änderungen am Code. Durch die Einhaltung von Prinzipien wie Fast, Independent, Repeatable, Selfevaluating, Timely, Readable, Trustworthy und Maintainable gewährleisten sie eine effektive und effiziente Testautomatisierung. +--- +## SU n (09.01.2024) + +### Lernziel +Ziel war es, die Grundprinzipien des TestDriven Developments (TDD) zu verstehen. Dabei Lag der Schwerpunktinsbesondere bei der Bedeutung von TDD, die Auswahl der zu automatisierenden Tests und das Vorgehen bei der Entwicklung. + +### Erkenntnis +Wie schreibt man einen guten UnitTest? + +Ein guter UnitTest ist schnell, unabhängig, wiederholbar, selbstauswertend, zeitnah, lesbar, vertrauenswürdig und wartbar. Diese Eigenschaften gewährleisten effiziente und zuverlässige Tests während des Entwicklungsprozesses. + +Technisch gesehen muss ein vertrauenswürdiger Test sicherstellen, dass der Produktivcode tatsächlich ausgeführt wird und dass ein Test nur aus dem richtigen Grund fehlschlägt. + +Die Zeitlichkeit in TDD manifestiert sich in verschiedenen Ansätzen: Code-first, bei dem Tests nach dem zu testenden Code geschrieben werden; Test-first, bei dem Tests vor dem zu testenden Code entstehen; und TDD, bei dem Test und verifizierter Code gleichzeitig entwickelt werden. + +Die Testabdeckung wird oft als KPI missbraucht, ist jedoch entscheidend für die Beurteilung der Vertrauenswürdigkeit des Testareals. TDD führt typischerweise zu einer hohen Testabdeckung, die jedoch realistisch gesehen bei 70% bis 90% liegt. Anforderungsabdeckung kann jedoch mit TDD bis zu 100% erreicht werden. + +### Wiederholung +Warum TDD? Es fördert robuste Softwareentwicklung durch die automatisierte Erstellung von Tests. Dabei werden Tests für Funktionen mit hoher Häufigkeit, Anzahl, Kritikalität und Stabilität priorisiert. + --- ## SU n (*.1*.2023)