Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

19 Januar, 2007

Verhaltensorientiert testen

Software Engineering

Endlich Wochenende und endlich Zeit meine mit TODO getagten Bookmarks anzuschauen. Dabei war ein Google TechTalk von Dave Astels, in dem es um Behaviour Driven Development (BDD) geht. Er schlägt eine andere Denkweise vor, wie Programmcode getestet werden sollte: Nämlich das Verhalten spezifizieren, das der Code implementiert, nicht einen Test gegen eine Klasse schreiben. Der Test äh die Spec schlägt Alarm, wenn sich der Code anders verhält. Astels hat ein Framework mit dem Namen rSpec für Ruby geschrieben, das ziemlich intuitiv bedienbar ist.

Ein kleines Beispiel. (Es wird anything in einem Stack abgelegt und anschließend geprüft ob sich der Stack wie ein Stack verhält, also ob er nach dem Ablegen von anything nicht mehr leer ist):

specify "should not be empty after 'push'" do
  @stack.push "anything"
  @stack.should_not_be_empty
end

Eine interessante Denkweise. Das schöne ist auch, das man so viel bessere Statusmeldungen bekommt, wenn eine Spec fehlschlägt.