Archive | Testen

Testgetrieben? Status quo

Ich war einmal Test Infected. Der von Kent Beck präsentierte Weg der Testgetriebenen Entwicklung war für mich Mantra, 90% Unit-Testabdeckung (test coverage) das Ziel. 2004 war das Buch für mich im doppelten Sinne ein Geschenk. Danke Dir Andreas! Danke Kent Beck! Viel war für mich plötzlich anders und Testgetrieben der richtige Weg; einleuchtend und schlüssig. 7 Jahre […]

Continue Reading →

Assert(Lesbarkeit und Verständlichkeit)

Was ist besser, “Assert.That(foo.Bar, Is.EqualTo(„bla“)“ oder Foo.Bar.Should.Be.EqualTo(„bla“)? Handelt es sich um eine Geschmacksfrage oder gibt es eine herleitbare Antwort? Was bedeutet besser überhaupt? Schneller zu lesen? Schneller zu schreiben? Hier zumindest hoffe ich auf Konsens: Lesbarkeit und Verständlichkeit von Software sind, wenn es um Syntax geht, entscheidend. Unverständliche Software steht für teure Wartung und schlechte […]

Continue Reading →

Specs in natürlicher Sprache

BDDish dient der Definition ausführbarer, teamorientierter Spezifikationen. Das Framework ist StoryQ ähnlich. Es unterscheidet sich jedoch in der Flexibilität der Syntax. Insbesondere in den letzten Wochen sind einige Aliase hinzugekommen, die es erlauben Specs natürlicher zu beschreiben: Folgendes Bild soll zeigen, welche Syntax Kombinationen mit BDDish möglich sind: Auch wenn die Syntax flexibel ist, ist […]

Continue Reading →

TDD u. BDD können sich gleich sein

Folgendes Bild zeigt Testbeschreibungsmuster für TDD und BDD und wie diese sich aufeinander beziehen. Im Quelltext und mit Kommentaren sähe das so aus: Ohne Framework sind sich „ACT, ARRANGE, ASSERT“ und „GIVEN, WHEN, THEN“ gleich. Ob der gezeigte Test vor einem TDD Dogmatiker ein Unit-Test sein darf, sei dahin gestellt.  Wer aber im  BDD Verständniss […]

Continue Reading →

Test Pins

Schreibt man Tests, steht man immer wieder vor dem Problem, dass Felder und Funktionen ausschließlich für Tests öffentlich gemacht werden wollen. In folgendem Diagramm hat der Typ „AktualisiereEinträge“ nur eine öffentliche Funktion „Run()“, an die als Parameter ein Veränderungsmodell übergeben wird. Mehr Funktionalität wird vom Client nicht benötigt: Bei der Entwicklung kann sich das Bedürfnis […]

Continue Reading →