Regressionstests in Webprojekten

Post on 18-Dec-2014

1.355 views 0 download

description

 

Transcript of Regressionstests in Webprojekten

Regressionstestsin Webprojekten

Sebastian BauerLOTUM GmbH

Vorstellung

o Sebastian Bauer

o LeidenschaftlicherSCRUM Master

o Auto-Nerd

o LOTUM GmbH

o Bad Nauheimbei Frankfurt/Main

REGR...  WHAT?

REGR...  WHAT?

REGR...  WHAT?

• Wiederholung bereits durchgeführter Tests• Neue Fehler aufdecken (Software Regression)• Bugfixes verifizieren• Änderungen validieren• Werden bei jeder Änderung ausgeführt• Risikominimierung

REGR...  WHAT?

• Progressive Regressionstests

• Spezifikation verändert

• Code geändert

➡ Neue Testfälle• Korrigierende Regressionstests

• Spezifikation unverändert

• Änderungen gegen bestehende Testfälle testen

Was bedeutet das genau?

•Akzeptanztests•Unit Tests•Tests für zu ändernde Komponenten•Tests für Bugfixes•Test bei Änderungen ausführen•Tests immer aktuell halten

Regressionstests = Continuous Integration?

Arten  von  Regressionstests

Unit  Tests

Unit Tests

Prüfe, ob das Ergebnis von foobar(„foo“) gleich „bar“ ist.

Akzeptanztests

Akzeptanztests

Prüfe, ob der Klick auf den Button „In den Einkaufswagen“ den Artikel in den

Einkaufswagen legt.

Smoke  Tests

Smoke TestsPrüfe, ob der Aufruf einer Produktseite auch wirklich

eine Produktseite zeigt.

Warum  das  ganze  Theater?

Der  Schlüssel  zum  Erfolg

Automatisierung

Continuous  Integration

Jenkins  (Hudson)

CruiseControl

Bamboo

Erfolgreiches CI als Prozess

•Direktes Feedback -> schnelle Builds•Tägliche Checkins•Commits in den Trunk•Automatisierter Build•Deploy-Automation

Build nach jedem Commit!

Automatischer  Build

•  Unit  Tests•  Syntax  Tests•  Smoke  Tests•  Coding  Standards•  Copy/Paste  Detection•  Dokumentation•  ...

Niemand wartet gerne!

Automatischer  Build

•  Unit  Tests•  Syntax  Tests•  Smoke  Tests•  Coding  Standards•  Copy/Paste  Detection

Niemand wartet gerne!

Automatischer  Build

•  Unit  Tests•  Syntax  Tests•  Smoke  Tests•  Coding  Standards•  Copy/Paste  Detection

Regelmäßiger  Build

•  Unit  Tests•  Syntax  Tests•  Coding  Standards•  Copy/Paste  Detection•  +  Akzeptanztests•  +  Dokumentation•  +  sonstige  Intensivere              Tests

Continuous  Delivery

Kontinuierliche  Deploys

Feature  Toggles

Warum nicht BDD probieren?

• Behaviour Driven Development• Nicht nur eine Entwicklungsmethodik• Erwartung vs. Testfall• Ausführbare Spec. vs Ansammlung von Tests

BDD Beispiel: Artikel in Warenkorb

• Gegeben dem Fall, ein Kunde möchte einen Film kaufen

• und sein Warenkorb ist leer• und es sind noch 2 Filme auf Lager:• Wenn er den Artikel in den Warenkorb legt• dann soll der Artikel im Warenkorb auftauchen• und der Zähler für die Produkte im Warenkorb auf „1“

gehen

BDD Tool: Cucumber

• Funktioniert „headless“• sehr einfacher Test-Code• Ruby-basiert• http://www.cukes.info

FAZIT?

Fazit

•Regressionstests wichtig•Regressionstest nur mit Automation!•CI unterstützt Regressionstests•CI bietet Potential für noch viel mehr•Continuous Delivery kann/sollte CI Ziel sein•BDD kann alles wunderbar unterstützen

DAS  WAR‘S!Fragen?

Rocke  mit  uns  das  Web!www.lotum.de/jobs

http://joind.in/3870