Test / Behavior Driven Development

Testautomatisierung für Code, Benutzeroberfläche, Integration und mehr

Richtig eingesetzt, erzwingen Tests guten und verifizierbaren Code zu schreiben. Guter Code ist die Grundlage sauberer Architektur – gleich von Anfang an. Das Risiko, durch Veränderungen am Code Fehler zu verursachen, wird fortlaufend und schnell, z. B. durch automatisierte Oberflächentests, reduziert. Das Framework „Machine.Specifications“ (MSpec) macht Tests aussagekräftiger. Deshalb muss sich der Entwickler weniger mit technischen Details beschäftigen. Fachabteilungen können die Tests interpretieren ohne C# / VB verstehen zu müssen. Machine.Specifications ist Open Source, per NuGet verfügbar und in ReSharper integrierbar.

Einführung ins Testen / Unit Testing

  • Typen von Softwaretests
    • Unit Tests
    • Akzeptanztests
    • UI-Tests
    • Integrationstests
    • Datenbanktests
    • Performancetests
  • Vorgehensweisen
    • Blackbox-Testing
    • Whitebox-Testing
  • Tests als Investition in die Zukunft einer Software
  • Tests als Verifikation der Spezifikation
  • Verbesserung der Kommunikation mit der Fachabteilung

Vom Test zum Produktivcode

  • Was ist ein Unit Test und wie verhält sich dieser im Test Driven Development
  • Unterschiede zwischen Test-First und testgetriebener Softwareentwicklung
  • Tests als Treiber für gutes Softwaredesign
  • Outside-In und Inside-Out als zwei Ansätze, Funktionalität zu entwickeln
  • Muss man alles testgetrieben entwickeln
  • XP-Techniken wie Pair Programming und deren Einsatz bei testgetriebener Softwareentwicklung
  • Mocks und andere Arten von Test Doubles
  • Testen zeitkritischer Funktionalität
  • Wann sind Abstraktionen für Dateisystemzugriff oder externe Ressourcen sinnvoll
  • Wie das Testen die „Definition of Done“ in der agilen Softwareentwicklung beeinflusst
  • Metriken und deren Kosten / Nutzen: Code Coverage, Dependency Matrix
  • Was testet man und wie intensiv sollte getestet werden
  • Tests als Qualitätssicherungsmaßnahme
  • Frameworks: NUnit, MSTest, xunit, Rhino Mocks, Moq, FakeItEasy

Brownfield-Softwareentwicklung und „minimalinvasives“ Testen

  • Wie bekommt man bestehenden Code „under test“
  • Aufbrechen von Komponenten
  • Testbasierte Unterstützung von Refactoring
  • Patterns für das Refactoring und Modularisierung von Tests
  • Umgang mit Testdaten
  • Object Mother, Builder Pattern
  • Named Test Data Sets (Personas)
  • Bezugnahme auf User Stories und die Erstellung von Spezifikationen und Szenarios
  • Langfristiger Nutzen von Tests für Qualität und Architektur
  • Frameworks: TypeMock, JustMock, moles, NBuilder

Behavior Driven Development (BDD)

  • Ist BDD nur „Test Driven Development (TDD) done right“
  • Abgrenzung zu Domain Driven Design
  • Vorteile von BDD in Bezug auf die Kommunikation im Team und zwischen Team und Stakeholdern
  • Die Stile Context / Specification und Given-When-Then
  • Frameworks im Zusammenhang mit BDD:
    Machine.Fakes, Machine.Specifications, SpecFlow

Oberflächentests und Weiteres

  • Test-Frameworks für JavaScript und Ruby
  • Frameworks für das Testen von Oberflächen im Web und auf dem Client mit White, wipflash, Selenium, WatiN
  • Tests mit und in PowerShell
Unsere Veranstaltungsorte von dieser / diesem SchulungTrainingSeminarKurs (nach oben)Berlin, Dresden, Frankfurt am Main, Hamburg, Hannover, Karlsruhe, Köln, Leipzig, Magdeburg, München, Stuttgart und Inhouse.

Fortbildung oder Weiterbildung zu Test Driven – wir setzen nur auf erfahrene Talente als Test Driven Trainer. Das Credo von Alexander Groß lautet „Ich will, dass Entwickler auf ihre Software stolz sein können“. Mehr zu ihm und den Beweggründen unserer anderen Trainer erfahren Sie bei seiner Biographie (direkt erreichbar per Bild).