Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

… and all I got was this lousy Christmas tree.

I like TDD and I like test automation. It is great to see the application growing with each successful test and to be sure that it will work even if a lot of changes are made on the code base. On the other I see (especially) TDD as a practice which is hard to master and I can understand people who drop any ambition because it feels intricate and some times frustrating in real projects.

One of these things is for example the advice to use baby steps to drive the implementation. I thing this advice is essentially to TDD and makes, from my point of view, the difference between Test First and Test Driven Development. Baby steps means, that you are not allowed to implement more functionality than needed by your tests. If the test expects a 1 as return value of your method, than your first step would be to simply return a 1. Your algorithm will also grow with each test you write and that’s why it is called Test Driven Development. This has also the advantage that the your tests get more robust, they are easier to change and to read, at least in theory.

weiter lesen…

2010/2011 Roy Osherove wrote in his blog a sentence which summarizes an opinion you can still find in many other blogs: “MSTest is the IE6 of Unit Test Frameworks.” . He basically says, that MS Test has a lack of functionality when it comes to unit testing and I agree with him with one exception:  I think it is not primarily a unit testing framework, it is a test automation framework but lets start with a comparison.

weiter lesen…

Jedes Blog, in dem gelegentlich über Tests geschrieben wird und welches etwas auf sich hält, muss mindestens einmal etwas über das Testen von privaten Klassenmembern schreiben. Zugegeben in einem anderen Post habe ich bereits gezeigt wie das geht, nun habe ich aber endlich ein Praxisbeispiel an dem sich sehr gut zeigen lässt wann man evtl. einen anderen, sichereren Weg gehen sollte.

Entwickelt man seinen Code tatsächlich mit TDD, sollte sich die Frage nach dem Test von privaten Membern eigentlich kaum stellen. Dadurch dass nur Code geschrieben wird, der auch durch Tests abgesichert ist sollten sich in jedem Fall genügend Vorbedingungen ergeben um auch jede private Methode irgendwie durch die öffentlichen Schnittstellen zu prüfen.

weiter lesen…

Automatisiertes Testen mit Visual Studio 2012_kleinAnfang letzter Woche hat mein Video Training zur Testautomatisierung mit Visual Studio 2012, welches ich Ende letzten Jahres bei Video2Brain aufgenommen habe, endlich das Licht der Welt erblickt. Der Name des Trainings ist dabei Programm. Mir geht es nicht darum zu beschreiben wie Unit Tests oder sogar TDD mit Visual Studio realisiert werden können, sondern wie Tests generell automatisiert werden.

Ich mache diese Trennung, da aus meiner Sicht Visual Studio einen etwas schlechten Ruf im Bereich der Unit Tests hat, über diese hinaus aber noch wesentlich mehr Möglichkeiten bietet, die gern vergessen werden. Welche das im Einzelnen sind kann man der Beschreibung des Trainings entnehmen. Denn darin beschreibe ich mehr als die Hälfte der Zeit Themen wie Lasttests, Coded UI Tests oder Webleistungs Tests.

Ich mache in dem Training also keine direkte Unterscheidung zwischen Testern und Entwicklern, was auch der Grund ist warum ich im kurzen Theorieteil vor allem auf Beschreibungen aus dem Buch “Basiswissen Softwaretest” von Andreas Spillner und Tilo Linz, statt auf die Definition einschlägiger englischsprachiger Autoren zurückgegriffen habe. Für mich ist Testautomatisierung ein generelles Thema mit dem ein Team sich insgesamt viel Arbeit ersparen kann und sollte nicht mit der Erstellung von Unit Tests enden.

Ich hoffe also, dass das Training nützlich ist und manchem vielleicht sogar den Weg zu test getriebenen Entwicklung ebnet, denn wo ein Test ist, da folgen sicher noch mehr…

Hallo, ist da noch wer? Gibt es tatsächlich Leute die auf dieses Blog finden? Laut Google schon… Ein wenig wundert mich das ja schon, war ich doch seit Oktober scheinbar ein wenig faul und davor auch nicht gerade auf das Ziel dieses Blogs fixiert.

Auch dieses Post wird daran nichts ändern. Soll, aber zunächst auf ein paar Dinge in eigener Sache hinweisen. Denn so faul wie es den Anschein hat war ich gar nicht. weiter lesen…

Nun ist er vorbei, der Developer Openspace 2012 und hat mal wieder einen bleibenden Eindruck in meinem Langzeitgedächtnis hinterlassen. Dies fing schon mit dem interessanten und lehrreichen Workshop zu Windows Azure an. Danke an der Stelle an Sascha Dittmann für die (kostenlos) dargebotenen Informationen und die spätere Session zu Azure Service Bus.

Damit sind wir auch schon beim Thema, denn ich bin erneut überrascht mit welcher Qualität an Workshops und Sessions hier aufgewartet wurde. Alle Leute waren hoch motiviert, begeistert bei der Sache und nicht zögerlich Wissen aufzusaugen oder zu verbreiten, selbst wenn es um Themen ging die Entwickler laut Stereotyp nur peripher interessieren.

weiter lesen…

Specflow und Gherkin sind sehr praktisch wenn es darum geht Tests zu verfassen und anschließend zu automatisieren. Dabei werden Tests klarsprachlich mit Gherkin formuliert und anschließend von Specflow in automatische Tests übertragen. Leider gibt es hier aber ein “kleines” Problem bei der Zusammenarbeit mit den Coded UI Tests von Visual Studio. Diese verwenden, im Gegensatz zum sonst üblichen TestClass-Attribut, das Attribut CodedUITest.

Da Specflow für jede Feature Datei aber nur das TestClass Attribut verwendet, müssen wir nur also Hand anlegen und den Code Generator ein wenig erweitern. Wie man genau vorgeht ist bereits bei GitHub beschrieben, wo ich auch den Code für Version 1.9 nachgetragen habe. Ich würde das Vorgehen dennoch hier ein wenig ausführlicher beschreiben, damit es auch in Deutsch verfügbar ist.

weiter lesen…


Open Source. Open Space. Developer Open Space
Ich komme nicht mehr wirklich zum Schreiben. Ach nein, eigentlich stimmt das gar nicht. Ich schreibe den ganzen Tag. So geht es meist die ersten 9 Stunden des Tages um Quellcode und Mails. Die zweite Hälfte geht es dann eher um anderen Texte, deren Veröffentlichung man die nächsten Monate noch bestaunen kann.

Sollte es da draußen dennoch Leute geben die dieses Blog tatsächlich noch verfolgen, will ich ihnen zum einen danken und sie gleichsam auf etwas aufmerksam machen: Im Oktober findet nämlich erneut ein Openspace statt.

Letztes Jahr noch unter dem Namen .Net Openspace laufend, ändert sich die Bezeichnung dieses Jahr in Dev Openspace und damit auch ein klein wenig die Ausrichtung. Wobei, eigentlich ist das nicht korrekt, denn tatsächlich tragen die Organisatoren nur einer Entwicklung Rechnung, die schon lange zu spüren war. Da beim Openspace jeder Beteiligte eigene Themenvorschläge einreichen kann und alle anderen Anwesenden anschließend über die Agenda abstimmen, sind in der Vergangenheit immer mehr Themen bearbeitet wurden die nicht unbedingt mit Microsoft oder der .Net Entwicklung in Verbindung standen.

Es bleibt also alles beim Alten, nur halt in Neu und das freut mich. Letztes Jahr hatte ich sehr viel Spaß und so werde ich auch dieses Jahr wieder dabei sein, denn die Anmeldung ist seit kurzem möglich und sollte von jedem Interessenten möglichst schnell ausgefüllt werden da die Plätze begrenzt und das Interesse sehr groß ist.

Testautomatisierung läuft uns meist eher auf Ebene der Unit Tests über den Weg. Sie kann aber auch bei System Tests recht praktisch sein. Ein Tool was uns WPF, Silverlight und Windows Forms Entwicklern dabei hilft, ist White. Bei diesem handelt es sich um ein Framework mit dem man Applikationen steuern und Steuerelemente innerhalb dieser Programme identifizieren kann, wodurch es möglich wird bestimmte Use Cases nachzustellen und deren Ergebnisse auf ihre Korrektheit zu prüfen. Dieses kann im Grunde mit jedem beliebigen Testframework verwendet werden und greift auf die UIAutomation API zurück die zum Beispiel auch von den Coded UI Tests des Studios genutzt wird.

weiter lesen…

Gruppierte Ergebnisansicht

Es ist immer wieder interessant mit Gleichgesinnten zu fachsimpeln oder einfach mal nur des Wissensgewinns wegen irgend etwas zu programmieren. Letztes Wochenende wurde mir gleich beides in Leipzig geboten, denn da fand ein kleines Sommerfest mit Grillen, Hackathon und Openspace statt.

Ziel des Abends war für mich eigentlich eine möglichst funktionstüchtige Metro App zu schreiben. Tatsächlich gab es aber oben drauf noch einen riesigen Berg neuer Ideen, neue Bekanntschaften und ein paar weitere Gewinne.

weiter lesen…