26

inoxio erklärt agiles testing

Embed Size (px)

DESCRIPTION

How we understand agile testing

Citation preview

Page 1: inoxio erklärt agiles testing
Page 2: inoxio erklärt agiles testing

inoxio Quality Services GmbH

seit 2007

Sitz in Erfurt

3 Geschäftsführer, Tester, Entwickler

Page 3: inoxio erklärt agiles testing

Projekte in ganz Deutschland

Telekom, Post, Otto, ...

Page 4: inoxio erklärt agiles testing

Agile Testing

Page 5: inoxio erklärt agiles testing

Mini-Wasserfall

4 PO schreibt Story

4 Entwickler implementieren Software

4 QA testet ob Software der Story entspricht

Page 6: inoxio erklärt agiles testing

ODER ...

Page 7: inoxio erklärt agiles testing

Behavior

Driven

Development

Page 8: inoxio erklärt agiles testing

QA ist Teil des Enwicklungsteams

Page 9: inoxio erklärt agiles testing

Agiles Team mit 4-6 Devs, QA, PO

Page 10: inoxio erklärt agiles testing

Story Life Cycle - Discovery

4 PO schreibt Story

4 Estimation erzeugt Verständnis im Team

Page 11: inoxio erklärt agiles testing

Story Life Cycle - Test Design

4 QA + PO schreiben erstes Example (HappyPath)

4 QA schreibt mehr Examples

4 vollständige Acceptance Tests

4 PO kann Acceptance Tests überprüfen/ändern

Page 12: inoxio erklärt agiles testing

Story Life Cycle - Planning

4 BDD ist Kommunikationswerkzeug!

4 im Planning werden die Examples benutzt um Anforderungen zu veranschaulichen

4 Probleme und EdgeCases können erkannt werden

Page 13: inoxio erklärt agiles testing

Story Life Cycle - Implementation

4 Acceptance Tests werden zu erst automatisiert

4 BDD + TDD Cycles

4 alle Tests grün -> Story DONE!

Page 14: inoxio erklärt agiles testing

Test AutomationWhole Team!

Pairing: Devs & QA

Page 15: inoxio erklärt agiles testing

Automated Acceptance Tests

4 Ausführbare Acceptance Tests

4 Regression Suite

4 Menschenlesbare Acceptance Tests

4 immer aktuelle Feature Documentation

4 PO kann Anforderungen anpassen

Page 16: inoxio erklärt agiles testing

Cucumber for the Resque!

Page 17: inoxio erklärt agiles testing

Cucumber: FeaturesFeature: Instant Printing of Orders

As a *Barkeeper* I want to get an instant printout when a *Waiter* receives an *Order* so that I can prepare the ordered beverages faster

Scenario: Orders from Mobile-Waiter-Device are transfered to POS

GIVEN a system with a Mobile-Waiter-Device M and a POS-Device P AND a Printer is connected to the POS-Device P WHEN the Waiter uses M to log in a Order for Table 2: | Bier, groß | 1 | | Wasser, klein | 2 | THEN P should receive the Order within 1 second AND the Printer is printing a printout with these facts: | Table: 2 | | ---------------- | | Bier, groß: 1 | | Wasser, klein: 2 |

Page 18: inoxio erklärt agiles testing

Cucumber: Features II

4 menschenlesbare Specs

4 Step-Definitions erkennen Schritte und machen diese ausführbar

Page 19: inoxio erklärt agiles testing

Cucumber: Step DefinitionsWhen(/^the Waiter uses (\w+) to log in a Order for Table (\d+):$/) do |device_id, table_no, order| # drive actual device or simulator # ...end

Then(/^the Printer is printing a printout with these facts:$/) do |data_table| @mocked_printer.should_receive(:print_recipe).with(...).once()end

Page 20: inoxio erklärt agiles testing

Cucumber: Step Definitions II

4 sind wiederverwendbar

4 gibt es nicht geschenkt

4 QA und Devs müssen im Pair arbeiten

4 Black-, Gray- & White-Box

Page 21: inoxio erklärt agiles testing

Driving Applications

4 Webpages: Webdriver / Selenium

4 iOS/Android: Calabash:

4 mit Simulator

4 mit echtem Device

Page 22: inoxio erklärt agiles testing

Challenges

4 verschiedene Technologien

4 Rails + iOS

4 Integration-Tests mit verteilten Devices

4 Handheld + POS + Backoffice

Page 23: inoxio erklärt agiles testing

Test Pyramide für verteilte Systeme4 solide Unit-Tests als Grundlage

4 wasserdichte automatisierte Interface-Tests

4 automatisierte Acceptance Tests (System-Level)

4 manuelle voll integrierte Smoke-Tests vor jedem Release

Page 24: inoxio erklärt agiles testing

Ein Schritt nach dem Anderen

4 QA im Team

4 Acceptance Tests pro Story (manuell?)

4 Automated Acceptance Tests

Page 25: inoxio erklärt agiles testing

Testing friendly Environment

4 Test Driven Development

4 Continious Integration

4 One-Click Deployments auf Test-Umgebung

4 Continious Delivery

Page 26: inoxio erklärt agiles testing