Von Test First bis Test Nonstop Wie funktioniert Testen in Scrum? Tilo Linz, imbus AG Wien, 01.04.2014 2014 imbus AG www.imbus.de
Tilo Linz Mitgründer und Vorstand imbus AG President ISTQB (2002-2005) Vorsitzender German Testing Board e.v. (2002-2013) Autor Basiswissen Softwaretest Praxiswissen Testmanagement Testen in Scrum-Projekten 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 2 von 24
Scrum und andere agile Entwicklungsmodelle versprechen eine schnellere»time-to-market«bei gleichzeitig besserer Ausrichtung an den Kundenanforderungen und nicht zuletzt bessere Softwarequalität. Die Umstellung auf»agil«und das nachhaltige produktive agile Arbeiten sind jedoch nicht ganz einfach. Die zentrale Anforderung an agile Tester ist die Forderung nach schnellem und kontinuierlichem Feedback. Alle Maßnahmen sind dahingehend auszurichten. Der Vortrag diskutiert, was bei Unit-, Integrations- und Systemtests verändert bzw. verbessert werden muss, damit ein Team, eine Softwareabteilung oder ein ganzes Unternehmen agiles Entwickeln langfristig erfolgreich beherrscht und so die erhofften Vorteile nachhaltig realisieren kann. 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 3 von 24
Scrum 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 4 von 24
Scrum Kennzeichen und Instrumente Sprints & Timeboxing kurze Iterationen fester Länge einfach zu planen und zu steuern liefern Ergebnisse kurzfristig Product & Sprint Backlog alle (pot.) Anforderungen und Aufgaben nach Wert priorisiert mit expliziten Fertig-Kriterien (Definition of Done) leicht und schnell änderbar, aber nicht innerhalb des Sprint Transparenz Product & Sprint Backlog sind Team-Dokumente Fortschritt & Impediments im Daily Scrum Lernen durch Retrospektive 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 5 von 24
Scrum Vorteile und Nutzen Schnellere Time-to-Market die wertvollsten Anforderungen zuerst jedes Increment einsetzbar (shippable product) kurze Release Zyklen Bessere Softwarequalität die richtigen Anforderungen richtig realisiert (done product) 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 7 von 24
Agiles Testen Unter agilem Testen versteht man das Testen von Software im Rahmen eines agilen Entwicklungsprojekts. Agiles Testen folgt den Prinzipien des Agilen Manifests und wendet die agilen Prinzipien auf das Testen an. [URL: agiles Testen] 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 7
Testen in Scrum Ziele Sprints & Timeboxing testen im Takt der Iterationen schnelles Feedback an die Programmierer Product & Sprint Backlog verstehen, welche Anforderungen wichtig sind Anforderungen testbar formuliern Anforderungen richtig umsetzen Transparenz tägliches Feedback über die Produktqualität Input für die Retrospektive 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 8 von 24
Testen in Scrum Techniken Testen manuell autom. explorativ spezifikationsbasiert GUI Test Roboter BDT, DSL xunit höhere Bedeutung niedrigere Bedeutung 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 10 von 24
Exploratives Testen Spielarten Exploratives Testen = Mission + Timebox Session Based Testing = Mission + Timebox + Report + Debriefing Testtouren = Mission + Timebox + Tour (Route/Taktik) Bug Hunt = Mission + Timebox + Wettbewerb/Preise [Exploratory Testing] 2014 imbus AG www.imbus.de Folie 10
Testpyramide Verteilung der Testfälle über die Teststufen (typisches) V-Modell Projekt (ideales) agiles Projekt System Tests Integration Tests Unit Tests 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 11 von 24
Unit Test und Test First Test First ist eine der grundlegenden agilen Entwicklungspraktiken und stammt (wie viele agile Techniken) aus XP: change code run test write test dreht die klassische Reihenfolge»erst programmieren anschließend testen«um 180 Grad um. Die Tests»treiben«den Entwickler an:»testgetriebene Entwicklung«(engl.»test-driven development«,»test-first programming«,»test First«) xunit Tools (s. [URL: Toolliste]) 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 12 von 24
Unit Test Test First Beispiel class DimmerTest extends PHPUnit_Framework_TestCase { public function test_set_dimlevel_to_default() { $this->mydimmer->set_dimlevel(); $dimlevel = $this->mydimmer->get_dimlevel(); $this->assertequals(50, $dimlevel); } } > phpunit DimmerTest.v2.php There were 3 failures: 1) DimmerTest::test_set_dimLevel_to_default Failed asserting that 0 matches expected 50.... Tests: 6, Assertions: 6, Failures: 3. 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 13 von 24
Test First Nutzen und Einführung Testen ersetzt Ausprobieren Testfälle liefern objektives Feedback über den Arbeitsfortschritt Tests ersetzen Prosa-Spezifikationen Test First verbessert die Qualität der APIs Test First verbessert die Testbarkeit Test First einführen geht nicht von selbst: separate Tasks für Testentwurf und Testautomatisierung; erst danach die Tasks zur Implementierung des Programmcodes Tester + Programmierer in Paaren arbeiten lassen Denkweise umstellen: in APIs denken Schulung und Coaching üben, üben, üben 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 14 von 24
Integrationstest Aufgabe und Herausforderungen Integrationstestfälle prüfen, ob Softwarebausteine (z.b. zwei Klassen) wie gewünscht zusammenarbeiten. Fehler, die aufgedeckt werden sollen: Missverständnisse: unterschiedliche Interpretationen der Spezifikation, mangelnde Absprache zw. Programmierern oder Teams Risiko in agilen Projekten hoch: mündliche Kommunikation wertvoller als Papier, Team-zentriertes Arbeiten vs. Absprache mit anderen Teams Vergessene Codeänderungen: Baustein A wird geändert, aber es wird vergessen, Baustein B passend mit zu ändern. Risiko in agilen Projekten hoch, da Codeänderungen hier nicht die Ausnahme, sondern die Regel. 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 15 von 24
Integrationstest und Continuous Integration s.a. [URL: Toolliste] 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 16 von 24
Systemtest Herausforderungen An jedem Sprint-Ende ein potenziell lieferbares SW-Produkt lieferbar = getestet = beim Anwender funktionierend Testfälle, die das System aus Nutzerperspektive und über dessen Bedienschnittstelle testen und in einer Testumgebung ablaufen, die der Einsatzumgebung möglichst nahekommt. Weder die Unit Tests noch die Integrationstests leisten das. 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 17 von 24
Systemtest wann? In separatem Systemtest Sprint Development System Testing Bugfixing 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 18 von 24
Systemtest wann? Am Sprintende Dev Bugf Dev Bugf Dev Bugf Sys Test Sys Test Sys Test 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 19 von 24
Systemtest wann? Nonstop System test System test System test New New New Regression tests tests Regression tests Manual tests Automated tests 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 20 von 24
Systemtest Testautomatisierung Architektur schalte Licht in Kueche am Fenster an Licht Status an? switch('kueche','licht','fenster','an'); assert('kueche','licht','fenster','an'); s.a. [URL: Toolliste] 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 21 von 24
Testen in Scrum = Test nonstop An die Stelle sequenzieller Testphasen (mit langer Feedbackzeit) tritt kontinuierliches Testen (mit täglichem Feedback) in jedem Sprint und unter parallelem Einsatz von Tests Test nonstop jeder Teststufe. Erfolgsfaktoren: Testautomatisierung Exploratives Testen Testexpertise im Team (CI, Test First, Testdesign, ) Teamübergreifende Sicht 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 22 von 24
Quellen und Literatur Linz Tilo, Testen in Scrum-Projekten, Leitfaden für Softwarequalität in der agilen Welt, dpunkt-verlag Heidelberg 2013 [Exploratory Testing] Whittaker James, Exploratory Software Testing, Tips, Tricks, Tours, and Techniques to Guide Test Design, Addison-Wesley Professional, 2009 [URL: agiles Testen] http://de.wikipedia.org/wiki/agiles_testen [URL: Toolliste] https://www.testtoolreview.com/de/ QS-Tag - Call for Papers bis 26.05.2014 Testorganisation State of the Art http://www.qs-tag.de/call-for-papers/ 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop Folie 23 von 24
imbus AG imbus AG Kleinseebacher Str. 9 Balanstr. 73 // Gbd. 21a 91096 Möhrendorf 81541 München DEUTSCHLAND DEUTSCHLAND Tel. +49 9131 7518-0 Tel. +49 89 3219909-0 Fax +49 9131 7518-50 imbus AG Rathausallee 70 22846 Norderstedt DEUTSCHLAND Tel. +49 40 3085426-0 imbus Rhein-Main GmbH Kirschgartenstr. 15 65719 Hofheim DEUTSCHLAND Tel. +49 6192 92192-0 imbus Rheinland GmbH Maternusstr. 44 50996 Köln DEUTSCHLAND Tel. +49 221 998788-0 imbus Shanghai IT Co., Ltd. Shanghai 201203 P.R. CHINA www.imbus.cn imbus Tunisia S.À.R.L 4000 Sousse TUNESIEN www.imbus.tn 2014 imbus AG www.imbus.de Von Test First bis Test Nonstop info@imbus.de www.imbus.de Folie 24 von 24