Regressionstests in Webprojekten

34
Regressionstests in Webprojekten Sebastian Bauer LOTUM GmbH

description

 

Transcript of Regressionstests in Webprojekten

Page 1: Regressionstests in Webprojekten

Regressionstestsin Webprojekten

Sebastian BauerLOTUM GmbH

Page 2: Regressionstests in Webprojekten

Vorstellung

o Sebastian Bauer

o LeidenschaftlicherSCRUM Master

o Auto-Nerd

o LOTUM GmbH

o Bad Nauheimbei Frankfurt/Main

Page 3: Regressionstests in Webprojekten

REGR...  WHAT?

Page 4: Regressionstests in Webprojekten

REGR...  WHAT?

Page 5: Regressionstests in Webprojekten

REGR...  WHAT?

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

Page 6: Regressionstests in Webprojekten

REGR...  WHAT?

• Progressive Regressionstests

• Spezifikation verändert

• Code geändert

➡ Neue Testfälle• Korrigierende Regressionstests

• Spezifikation unverändert

• Änderungen gegen bestehende Testfälle testen

Page 7: Regressionstests in Webprojekten

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

Page 8: Regressionstests in Webprojekten

Regressionstests = Continuous Integration?

Page 9: Regressionstests in Webprojekten

Arten  von  Regressionstests

Page 10: Regressionstests in Webprojekten

Unit  Tests

Page 11: Regressionstests in Webprojekten

Unit Tests

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

Page 12: Regressionstests in Webprojekten

Akzeptanztests

Page 13: Regressionstests in Webprojekten

Akzeptanztests

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

Einkaufswagen legt.

Page 14: Regressionstests in Webprojekten

Smoke  Tests

Page 15: Regressionstests in Webprojekten

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

eine Produktseite zeigt.

Page 16: Regressionstests in Webprojekten

Warum  das  ganze  Theater?

Page 17: Regressionstests in Webprojekten

Der  Schlüssel  zum  Erfolg

Page 18: Regressionstests in Webprojekten

Automatisierung

Page 19: Regressionstests in Webprojekten

Continuous  Integration

Page 20: Regressionstests in Webprojekten

Jenkins  (Hudson)

CruiseControl

Bamboo

Page 21: Regressionstests in Webprojekten

Erfolgreiches CI als Prozess

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

Page 22: Regressionstests in Webprojekten

Build nach jedem Commit!

Automatischer  Build

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

Page 23: Regressionstests in Webprojekten

Niemand wartet gerne!

Automatischer  Build

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

Page 24: Regressionstests in Webprojekten

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

Page 25: Regressionstests in Webprojekten

Continuous  Delivery

Page 26: Regressionstests in Webprojekten

Kontinuierliche  Deploys

Page 27: Regressionstests in Webprojekten

Feature  Toggles

Page 28: Regressionstests in Webprojekten
Page 29: Regressionstests in Webprojekten

Warum nicht BDD probieren?

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

Page 30: Regressionstests in Webprojekten

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

Page 31: Regressionstests in Webprojekten

BDD Tool: Cucumber

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

Page 32: Regressionstests in Webprojekten

FAZIT?

Page 33: Regressionstests in Webprojekten

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

Page 34: Regressionstests in Webprojekten

DAS  WAR‘S!Fragen?

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

http://joind.in/3870