29.04.2012

Gegrillter Loup de Mer mit gedünstetem Spargel

Kleine Gesundheitsoffensive in der "Casa del Dömer". Dazu wurden zwei Fischlein und richtig frischer Spargel besorgt. Ziel war es den meist fleischlastigen Ernährungsplan mit ein wenig Seafood aufzulockern.

Die Wahl fiel schnell auf zwei Wolfsbarsche mit einem Gewicht von ca. 700g pro Stück. Da als Beilage nur Spargel geplant ist, und ein Teil als Abfall gerechnet werden kann, sollte dies als Hauptgericht ausreichend sein.

Zuerst wurden die knapp 900g Spargel geputzt und vorbereitet.


Dabei habe ich leider nur noch sehr dünne Stangen bekommen. Gut für den Geschmack, aber leidlich zu schälen...
Die Zubereitung unterscheidet sich von der traditionellen Zubereitungsweise, da die Stangen halbiert, leicht in Butter angebraten und schlussendlich fertig gedünstet worden sind. Vorteil ist, dass keinerlei Aroma verloren geht und der Garpunkt ziemlich exakt bestimmt werden kann!

Der Wolfsbarsch wurde geputzt und trocken getupft.


Von außen wurde eine Marinade aus geriebenem Knoblauch, ein wenig Öl, Salz und Pfeffer aufgetragen.


In die Bauchhöhle wurden Limettenscheiben, Salz und Pfeffer, sowie Petersilie gegeben


Während der Spargel dünstet konnte sich der Wolf auf dem Grill die passende Bräunung abholen. Dabei habe ich die Haut inkl. Schuppen am Fisch gelassen, da diese später eh nicht für den Verzehr gedacht war und so das Fleisch zusätzlich geschützt hat.


Als Hauptgang genau passend. Dazu ein leichter Weißwein oder, wie bei mir ein kühles Bier und schon ist der Abend vollkommen.

Als Nachtisch gab es dann noch ein Stückchen Marmorkuchen, selbst gebacken versteht sich. Auch wenn manch einer meinen mag, dass Köche nicht backen können :-)


Guten Appetit!

27.04.2012

Behavior Driven Development (BDD) mit der Cucumber-JVM

Die Technik des BDD, des Behavior Driven Development, ist eine Fortführung der testgetriebenen Entwicklung in agilen Softwareprozessen. Im Rahmen des BDD werden die Techniken des Unit-Testings und auch der Akzeptanztests analysiert und in Teilen neu definiert, so dass diese den Ansprüchen des Behavior Driven Development genügen und eine Verbesserung in der Zusammenarbeit zwischen Entwicklung und QS realisiert werden kann.

Die Technik des BDD legt den Augenmerk auf den eigentlichen Businesswert, der mit der geschriebenen Software erreicht und durch den Kunden abgenommen werden soll. Die Konzentration liegt auf den Features, die wirklich durch das zu entwickelnde System umgesetzt werden sollen und somit auch auf dem, was der Kunde schlussendlich möchte.

Dabei werden die Features in einer DSL, einer Domain Specfic Language, beschrieben und in enger Zusammenarbeit mit dem eigentlichen Stakeholder erstellt. Die Analyse dient also als spätere Grundlage für die zu testende Funktionailtität und auch als Grundlage der zu erstellenden Akzeptanztests. Ziel ist es eine Ebene zu finden auf der sowohl die Analytiker, als auch die Entwickler miteinander sprechen und Ergebnisse erzielen können. Dabei soll die Sprache der sogenannten Templates so einfach sein, dass sie sowohl von den Analyitkern, als auch von den Entwicklern verstanden wird.

Die Features werden innerhalb eines Feature-File inkl. der zugrunde liegenden Akzeptanzkritierien erfasst und stellen die Grundlage für die darauf aufbauenden Tests dar. Wichtig ist, dass die Feature-Files bereits vor der eigentlichen Entwicklung erstellt werden. Dies dient sowohl der Abstimmung mit dem Kunden, als auch der Reflektion der zu entwickelnden Funktionalität durch die Entwickler selbst. Die Feature-Files sollten bereits vor Start des Entwicklungsprozesses durch die Stakeholder, QS und die Entwickler abgenommen werden.

Am einfachsten lässt sich die Technik an einem einfachen Beispiel demonstrieren. Das Beispiel stellt einen einfachen Taschenrechner dar, der die vier Grundrechenarten beherrscht. Dieser soll durch seine Features beschrieben werden und wird schlussendlich in seiner Implementierung getestet.

Im ersten Schritt werden die fachlichen Anforderungen an den Taschenrechner definiert. Dies ist die eigentliche Aufgabe des Fachbereiches bzw. die des fachlich verantwortlichen Ansprechpartners und stellt die Grundlage für die Akzeptanztests dar. Die Features werden mit Hilfe einer einfachen DSL beschrieben und beinhalten bereits die Testdaten, die dem Test als Grundlage dienen.

Als repräsentatives Beispiel für die Feature-Files wird die Beschreibung der Addition dargestellt:


Das Feature ist in diesem Fall der Taschenrechner (Calculator) mit dem konkreten Szenario der Addition. Die Addition wird beschrieben durch die drei Schritte Given, When und Then. Given beschreibt die Voraussetzungen, When beschreibt die eigentliche Durchführung und schlussendlich beschreibt Then das erwartete Ergebnis. Dazu gibt es noch weitere Schlüsselwörter, die an dieser Stelle allerdings noch keine keine Erwähnung finden.
Im Bereich Examples finden sich die Beispieldaten für die Akzeptanztests. Die Platzhalter, gekennzeichnet durch die spitzen Klammern (<a>,<b> oder <result>) werden durch die Werte aus einer Zeile ersetzt.

Nachdem die Features beschrieben sind, kann die Implementierung und der eigentliche Test durchgeführt werden. Wird streng nach TDD vorgegangen können zuerst die Tests generiert werden und danach wird die eigentliche Implementierung durchgeführt. Für die Implementierung wird ein einfaches Projekt benötigt. Der Einfachheit halber wird das Projekt an dieser Stelle mit der Hilfe von Maven verwaltet. Für die Implementierung des Taschenrechners und das Durchführen der werden nur wenige Dependencies benötigt.


Zusätzlich kann noch ein Plugin für das Reporting eingebunden werden, dies ist aber für das einfache Beispiel nicht notwendig, da alle Ausgaben auf der Konsole beobachtet werden.
Sind die Features syntaktisch korrekt beschrieben worden, kann ein einfacher erster Test durchgeführt werden. Dazu wird eine Basisklasse erstellt, die später mit Hilfe der Cucumber-JVM den Test ausführt.


Sind noch keine Tests geschrieben, kann mit Hilfe von Maven ein Implementierungsvorschlag generiert werden. Dazu wird ein einfaches mvn clean test auf der Konsole ausgeführt.


Aus den generierten Methoden-Stubs kann die vollständige Implementierung des Tests bzw. der Step Definitionen erstellt werden.


Die Tests werden an dieser Stelle durch die leere Implementierung des Taschenrechners immer noch fehlschlagen. Daher wird im zweiten Schritt der Taschenrechner an sich implementiert.


Nachdem der Taschenrechner implementiert ist, sollten die Tests hoffentlich erfolgreich sein.


Somit sind alle Akzeptanztests, die der Fachbereich definiert hat erfolgreich gewesen und der Taschenrechner arbeitet wie gewünscht. Die Grenzfälle, wie in diesem Fall die Division durch 0 wird durch einen einzelnen Unit-Test abgedeckt und ist nicht mehr Teil des Features.

Die Beispiele finden sich wie immer im Repository!

21.04.2012

[NSFW, FSK18] Würstchenlutscher und heißen Spalten

Wer kennt es nicht? Man surft gemütlich durch das Netz und klick ein wenig hier und ein wenig da. In vielen Fällen dauert es gar nicht lange bis man auf der ersten Seite ist, die augenscheinlich sehr arme Menschen (können sich noch nicht mal Kleidung leisten) einem ihre Dienste anbieten.

Mit Sicherheit werden diese Menschen nur aus größter Not heraus handeln, aber darum soll es hier gar nicht gehen.





Beim Surfen durch das allwissende Grillsportverein Forum bin ich auf eine tolle Idee gestoßen. Die sogenannten Wurst-Lutscher. Dazu werden herkömmliche Zutaten in eine etwas andere Form gebracht und schon hat man einen interessanten Effekt. Benötigt wird dazu zuerst eine herkömmliche Packung Würstchen je nach Geschmack. Ich habe mich hier für die guten Kinnuis-Würstchen entschieden.


Dazu kommt Gouda, jung oder alt, in Würfel geschnitten und mit einem BBQ-Rub der Wahl gepudert.


Der Aufbau des Lutschers ist leicht. Die Würstchen werden geteilt und in dünne "Filets" geschnitten.


Die gepuderten Stücke Käse werden in Bacon gerollt.


Und schlussendlich wird das "Wurstfilet" ebenfalls aufgerollt.


Mit einem Spieß fixieren und fertig ist das Ganze. Was hat es aber nun mit den heißen Spalten auf sich?
Ganz einfach, zu den Lutschern gab es einfache Kartoffelspalten.


So ergab sich nach unterschiedlicher Garzeit das folgende Tellerbild mit Würtschenlutschern und heißen Spalten.


Lecker war's! Und ein Schelm, wer Böses dabei denkt ;-)

14.04.2012

Schweinefilet mit glasierten Möhren und gebratener Polenta, vorab eine Tomatenschaumsuppe

Vergangenen Sonntag gab es Resteessen. Hört sich weniger spannend an, als es eigentlich war. Geplant war, aus den Lebensmitteln die von anderen Gerichten übrig geblieben waren, das folgende Menü:
  1. Zur Vorspeise eine Tomatenschaumsuppe
  2. Zum Hauptgang Schweinefilet, Polenta und Möhren
Und das ist es schlussendlich geworden. Zuerst habe ich mit der Tomatenschaumsuppe angefangen. Das Grundrezept für eine Gemüseschaumsuppe wird leicht erweitert bzw. um ein wenig Sahne reduziert. Hauptbestandteil der Suppe sind, wie kaum anders zu erwarten, Tomaten.


Dazu kommen ein paar fein geschnittene Zwiebeln.


Zusammen mit Salz, Pfeffer, Knoblauch und Brühe, darf die Suppe simmern, bis die Tomaten gar sind und leicht püriert werden können. Wichtig ist, dass die Suppe nach dem Pürieren noch gesiebt wird, so dass alle groben Fasern und Kernstücke aus der Suppe entfernt werden.


In der Zwischenzeit werden Möhren für das glasierte Möhrengemüse vorbereitet und blättrig geschnitten.


Diese werden gedünstet oder im Sous-Vide-Gerät gegart. Nebenbei wird noch das Schweinefilet pariert  und in Portionsgröße aufgeteilt.


Mit ein wenig Olivenöl, Salz und Pfeffer wird das Filet vakuumiert und bei knapp 58°C für ca. 00:45 Minuten in das Wasserbad gegeben.


Während das Fleisch gart, kann die Polenta vorbereitet und aufgeschnitten werden.


In ein wenig Butter kross angebraten wird diese zum Fleisch serviert.


Das Fleisch muss nach dem Bad ebenfalls kurz angebraten werden, so dass es eine schöne knackige Kruste bekommt.


Und so haben die Teller schlussendlich ausgesehen:

1) Tomatenschaumsuppe mit Creme Fraiche und Basilikum, dazu Ciabatta


2) Schweinefilet mit gebratener Polenta und glasierten Möhren


Das Schweinefilet wurde nach dem Garen noch leicht mit Fleur de Sel gewürzt.


Lecker war's! Gerne wieder!