Regressionstests in Webprojekten
-
Upload
sebastian-bauer -
Category
Technology
-
view
1.355 -
download
0
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