Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Archiv

Tag: BDD

Gestern war ich bei Agile Saxony und habe über die unterschiedlichen Schulen des TDD gesprochen und wie sie sich auf unsere Arbeitsweise auswirken. Für mich besonders interessant war dabei die Diskussion am Ende meines Vortrages. Denn anscheinend war meine Vortragsweise etwas negativ konnotiert, wodurch ich eher skeptisch als überzeugt gewirkt haben muss. Ich war sehr übernächtigt, daher entschuldigung an dieser Stelle, wenn der Vortrag nicht die sonst übliche Qualität hatte. Continue reading “Qualität, aber bitte agil!” »

Ein wiederkehrendes Problem das es zu lösen gilt wenn man typische Oberflächen testen möchte, ist die Prüfung auf einen Validierungsrahmen. Solche Rahmen werden immer dann eingesetzt wenn der Nutzer auf eine Falscheingabe hingewiesen werden soll. Dummerweise kann die UI Automation uns keine Informationen über jene Rahmen geben, da sie sie selbst nicht kennt. Wie also vorgehen?

Validierungsrahmen

Continue reading “Coded UI Test: Validierung auf UI Ebene prüfen” »

„Agilität, Agilität, Agilität.“ So rauscht(e) es durch die Softwareentwicklungslandschaft. Jeder der nicht wenigstens iterativ arbeitet ist uncool, ewig gestrig, arbeitet fernab jeder Realität und wird auf Dauer einen langen und qualvollen Tot in der Change-Request-Refaktorisierungs-Bug-Ping-Pong-Hölle sterben. Na gut, letzteres passiert meiner Erfahrung nach eher denjenigen die sich all zu unvorsichtig auf die Agilität eingelassen haben ohne ihre tatsächlich gelebten Vorgehen einmal in Frage zu stellen.

Die Verschmelzung zweier Welten hat immer zur Folge, dass Teile dieser zwei in die Neue übergehen und das ist völlig richtig so. Dumm nur, wenn Dinge konvergieren die eigentlich besser nicht kombiniert werden sollten. Dann wird aus dem Elysion sehr schnell der Tataros. Genau das passiert meiner Meinung nach wenn sich die Qualitätssicherung nicht daran anpasst, dass Requirements verändert werden. Denn so viel hat das Mantra der Agilität erreicht: In den Köpfen ist angekommen, dass es besser ist auf Veränderung zu reagieren als einem strikten Plan zu folgen. Im Umkehrschluss also: Alles bleibt anders!

Continue reading “Agilität, Qualität & andere Missverständnisse…” »

Da Requirements die Grundlage der Entwicklung und somit auch der Kommunikation mit dem Kunden und innerhalb des Teams sind, lohnt es sich in einigen Fällen diese in der Muttersprache des Kunden zu verfassen um Missverständnissen vorzubeugen. Gherkin bzw. Specflow unterstützen dies in dem die Feature Dateien in über 40 unterschiedlichen Sprachen erstellt werden können. Dazu gehört, wer hätte es gedacht, auch Deutsch.

Um dieses Feature einzuschalten ist auch nicht sonderlich viel Arbeit notwendig. Tatsächlich muss nur eine App.Config im entsprechenden Projekt hinterlegt werden die folgenden Inhalt hat.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <configSections>
      <section name="specFlow" type="TechTalk.SpecFlow.Configuration.ConfigurationSectionHandler, TechTalk.SpecFlow" />
   </configSections>
   <specFlow>
      <language feature="de-DE" />
   </specFlow>
</configuration>

Die eigentliche Magie passiert durch das „language“ Element dem über Feature das Kürzel der zu verwendenden Kultur anzugeben ist. Darüber hinaus gibt es noch ein Attribut „tool“ mit dem es theoretisch möglich sein soll auch die Fehlerausschriften, und damit zum Beispiel die Beschreibungen über nicht implementierte Features, zu übersetzen. Praktisch ist dies aber aktuell nicht möglich, da nur Englisch unterstützt wird.

Nachdem die App.config gespeichert wurde, schaltet Specflow sofort in die neue Sprache und funktioniert wie gewohnt, einschließlich Autovervollständigung.

Specflow auf deutsch

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.

Continue reading “Specflow 1.9 mit Coded UI Tests verheiraten” »

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.

Continue reading “How-To: Automatisierte UI Tests mit White” »

Als absoluten Vorteil von BDD empfinde ich die Möglichkeiten die es bei der technischen Dokumentation bietet. Denn sind wir doch mal ehrlich, die einzige Wahrheit steckt doch im Code und herkömmliche Doku lügt uns nur all zu schnell an.
Continue reading “Reporting mit Specflow” »

Mein Vortrag bei der DNUG Dresden ist jetzt schon 2 Wochen her, man wie die Zeit verfliegt. Schuldig geblieben bin ich seit dem aber immer noch die gezeigten Materialien und weiterführende Links. Das will ich an dieser Stelle wenigstens halbwegs nachholen und all Denen, die nicht da waren zumindest einen Weg zur Erkenntnis weisen :)
Continue reading “Specflow zum Selber-Spielen - Quellen zum Vortrag bei der DNUG DD” »

Am 14. Juli um 18Uhr wird das Treffen der DotNet Usergroup Dresden zum zweiten Mal in Folge bei meinem Arbeitgeber Saxonia Systems am Fritz-Förster-Platz statt finden. Wobei bitte der Zugang von der Bergstraße her zu nutzen ist und nicht der Haupteingang.

Neben mir wird mein Kollege Mario Kretschmer als Sprecher auftreten. Er wird über Erweiterbarkeit von Software sprechen und dabei Konzepte wie Inversion of Control, späte Bindung, Dependency Injection und vor allem das Managed Extensibility Framework erläutern.

Ich wiederum spreche über Behavior Driven Development mit dem Framework Specflow und der Domain sepzifischen Sprache Gherkin, sowie den sich daraus ergebenden Vorteilen für die Qualitätssicherung in agilen Projekten.

Ich freue mich schon sehr darauf und hoffe auch wieder einige bekannte Gesichter zu sehen. Ach ja, Brötchen gibt es auch wieder. Mal sehen ob sich um die Zeit auch wieder jemand findet der nach Kaffee verlangt :)


Größere Kartenansicht