inoxio erkl¤rt agiles testing

  • View
    45

  • Download
    0

Embed Size (px)

DESCRIPTION

How we understand agile testing

Text of inoxio erkl¤rt agiles testing

  • 1. inoxio Quality Services GmbH seit 2007 Sitz in Erfurt 3 Geschftsfhrer, Tester, Entwickler

2. Projekte in ganz Deutschland Telekom, Post, Otto, ... 3. Agile Testing 4. Mini-Wasserfall 4 PO schreibt Story 4 Entwickler implementieren Software 4 QA testet ob Software der Story entspricht 5. ODER ... 6. Behavior Driven Development 7. QA ist Teil des Enwicklungsteams 8. Agiles Team mit 4-6 Devs, QA, PO 9. Story Life Cycle - Discovery 4 PO schreibt Story 4 Estimation erzeugt Verstndnis im Team 10. Story Life Cycle - Test Design 4 QA + PO schreiben erstes Example (HappyPath) 4 QA schreibt mehr Examples 4 vollstndige AcceptanceTests 4 PO kann Acceptance Tests berprfen/ndern 11. Story Life Cycle - Planning 4 BDD ist Kommunikationswerkzeug! 4 im Planning werden die Examples benutzt um Anforderungen zu veranschaulichen 4 Probleme und EdgeCases knnen erkannt werden 12. Story Life Cycle - Implementation 4 Acceptance Tests werden zu erst automatisiert 4 BDD + TDD Cycles 4 alle Tests grn -> Story DONE! 13. Test Automation Whole Team! Pairing: Devs & QA 14. Automated Acceptance Tests 4 Ausfhrbare Acceptance Tests 4 Regression Suite 4 Menschenlesbare Acceptance Tests 4 immer aktuelle Feature Documentation 4 PO kann Anforderungen anpassen 15. Cucumber for the Resque! 16. Cucumber: Features Feature: 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 | 17. Cucumber: Features II 4 menschenlesbare Specs 4 Step-Definitions erkennen Schritte und machen diese ausfhrbar 18. Cucumber: Step Definitions When(/^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 19. Cucumber: Step Definitions II 4 sind wiederverwendbar 4 gibt es nicht geschenkt 4 QA und Devs mssen im Pair arbeiten 4 Black-, Gray- & White-Box 20. Driving Applications 4 Webpages: Webdriver / Selenium 4 iOS/Android: Calabash: 4 mit Simulator 4 mit echtem Device 21. Challenges 4 verschiedene Technologien 4 Rails + iOS 4 Integration-Tests mit verteilten Devices 4 Handheld + POS + Backoffice 22. Test Pyramide fr verteilte Systeme 4 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 23. Ein Schritt nach dem Anderen 4 QA im Team 4 Acceptance Tests pro Story (manuell?) 4 Automated Acceptance Tests 24. Testing friendly Environment 4 Test Driven Development 4 Continious Integration 4 One-Click Deployments auf Test-Umgebung 4 Continious Delivery