NDepend im Einsatz

Seit einigen Wochen nutze ich NDepend als logische Erweiterung zum Resharper und Style Cop. Während der Resharper dafür sorgt, dass sich alle Entwickler an die gleichen Regeln halten. Kann ich mit NDepend zum einen prüfen ob sich auch wirklich an die Regeln gehalten wird, vor allem aber ob die Ideen hinter den Regeln auch korrekt umgesetzt werden. Der eigentliche Auslöser für die Nutzung von NDepend war aber ein anderer. Es ging viel mehr darum eine Anwendung mit sehr „interessanter“ Codebasis soweit zu refaktorisieren, dass ihre innere Struktur nicht durch jede Änderung gleich ins Wanken gerät. In wie weit dieser Anspruch erfüllt wurde sei jetzt einmal dahin gestellt. NDepend hat aber auf alle Fälle dabei geholfen den Ist-Stand zu visualisieren.

Weiterlesen »

„MS Test the IE6 of Unit Test Frameworks?“

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.

Weiterlesen »

„Automatisiertes Testen mit Visual Studio 2012“

Anfang 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

Weiterlesen »

Specflow 1.9 mit Coded UI Tests verheiraten

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.

Weiterlesen »

Dotnet Developers Conference 2012 – Eine subjektive Zusammenfassung

Zwei Tage DDC liegen hinter mir. Übermüdet und voller neuer Eindrücke sitze ich nun in einem Regionalexpress nach Dresden der hoffentlich auch irgendwann einmal ankommt, vielen Dank Deutsche Bahn für die bescheidene Anbindung. Gefühlte 95% der Zeit war ich dabei als üblicher Teilnehmer unterwegs. Die einzigen Unterscheidungsmerkmale gegenüber der Allgemeinheit waren das rote Bändchen am Namensschild und der große Aufdruck „Speaker“ auf meinem Poloshirt. Die Insignien der Konferenzelite wenn man so will, welche schnellere Kontaktaufnahme und einige detailliertere Einblicke in die Organisation garantierten.

Weiterlesen »

How-To: Private und internal testen mit MS Test

Einer der viel gesprochenen Leitsätze des Testens ist: „Finger weg von privaten Membern“. Der Gedanke hinter dieser Aussage ist einleuchtend, denn je mehr Aussagen ich in einem Test über die Implementierung mache, desto höher die Wahscheinlichkeit, dass ich ihn später anpassen muss oder er fehl schlägt. Nichts desto trotz, kann man sich durch den Zugriff auf private Member gelegentlich viel Arbeit sparen wenn es darum geht einen Test aufzusetzen und außerdem hilft es manchmal sogar beim Aufspüren von Bugs. Weiterhin ist es teils unumgänglich auch Dinge zu testen die als internal gekennzeichnet sind und demnach theoretisch nicht vom Testprojekt identifiziert werden könnten.

Weiterlesen »

DeploymentItem – A tale of the unexpected…

Do you know how to separate the knowing from the naive, the pros from the amateurs and the men from boys? It’s just by their reaction in certain situations. It’s the cold shivering and slight cough they get if you just whisper a single word, a word like “DeploymentItem”. So what causes these reactions? Mortals would call it an attribute in MS Test. The most demonic one I have to add. If used, it defines external resources which shall be provided during a test run. Following test case shows the basic idea behind it. You say: “Deploy the file.” and Visual Studio deploys it for you, at least it should…

Weiterlesen »

Vortrag zu automatisierten Tests auf der .Net Dev Con 2012

In meinem Neujahrspost habe ich schon angedeutet, dass ich dieses Jahr wohl viel unterwegs sein werde und so steht jetzt fest, dass ich im Mai auf der .Net Dev Con zu MS Test sprechen werde. Dort werde ich unter dem Titel: „MS Test –  der missverstandene Stiefbruder“ im Grunde das auseinander nehmen, was ich die letzten zwei Jahre im Umgang mit der Visual Studio Test Integration und weitestgehend freien Alternativen erlebt habe. Genauer geht es mir dabei um die Lücke zwischen Unit Tests mit NUnit, Moq und Resharper, gegenüber den System- und Integrationstests mit Visual Studio, samt Pex und Moles. Ich habe dabei nicht vor auf irgend welchen Designschwächen von was auch immer welchen Tools herum zu hacken. Viel mehr geht es mir darum die unterschiedlichen Sichtweisen gegenüber zu stellen die hinter den einzelnen Frameworks stehen, deren wichtigste Features zu

Weiterlesen »

MS Test: In und Out – Warum einfach wenn es auch kompliziert geht?

Im Gegensatz zu beispielsweise NUnit, werden Tests bei MS Test nicht einfach im Bin-Verzeichnis des entsprechenden Projekts ausgeführt. Microsoft sieht, oder sah wenn man so will,  die Infrastruktur für Tests im Visual Studio (bis 2010) nicht nur auf Unit Tests, sondern die gesamte Testpyramide bezogen. Dies bezieht also System- und Integrationstests mit ein, welche andere Anforderungen an die Umgebung haben in der sie laufen. Während es also beim Unit Test vorallem auf die schnelle und einfache Ausführung ankommt, ist in höheren Ebenen mehr auf eine detailierte und nachvollziebare Dokumentation der Ergebnisse zu achten. Letztendlich sollen diese ja von unterschiedlichen Personen einsehbar und je nach Art des Projekts noch nach Wochen bewertet werden können. Leider behindert der Umstand dieser Bandbreite an Einsatzmöglichkeiten den geneigten Entwickler gelegentlich wenn er tatsächlich „nur“ Unit Tests schreiben will.

Weiterlesen »