Testen mit, durch und in Scrum

1.665 Aufrufe

Veröffentlicht am

Scrum ist gelebtes Qualitätsmanagement und zum Qualitätsmanagement gehört das Testen. Wie genau spielt das Testen in Scrum mit? Welche Arten und Stufen von Tests gibt es und wie können diese den Scrum Prozess unterstützen oder sogar behindern? Was machen Teams hierbei gerne falsch und können klassische Testverfahren behilflich sein die Qualität zu verbessern? Diese Fragen werden in dem Vortrag diskutiert, beantwortet und bewertet.

Veröffentlicht in: Software
0 Kommentare
2 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.665
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
91
Aktionen
Geteilt
0
Downloads
32
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Testen mit, durch und in Scrum

  1. 1. Frank Düsterbeck de.slideshare.net/fduesterbeck @fduesterbeck Testen mit, durch und in Scrum
  2. 2. (De)-Motivation
  3. 3. Komplexität heutiger Software schwer beherrschbar Anforderungsdynamik Heutzutage schwer beherrschbar
  4. 4. Quelle: Carl Dichter and Chris Tynes, JavaWorld.com, 06/01/97 Quelle: Wikipedia
  5. 5. scrum prince2 rup bpmn eclipse c# aspectj visual studio jsf uml git jubula asp.net asp mvc spring tfs ejb nunit subversion fitnesse jboss iis clean code tpl usability linq wcf birtant maven kanban xp user stories azure gwt hibernate migration atdd apps sharepoint dms codedui wpf junit tabrisrap vaadin jira bugzillahpqc testopia seleniumjenkins wf c++ html5 javascript css design php java security netweaver testcomplete redmine cucumber hybris typo3 sql server oracle mysql postgresql bdd
  6. 6. Und wie schaff ich es Qualität zu erzeugen wenn alles so komplex und dynamisch ist? Nicht durch Testen allein! Aber es hilft schonmal!
  7. 7. Qualität ist der Grad, in dem Merkmale einer Sache Anforderungen erfüllen Was ist gute Qualität?
  8. 8. Interne Qualität (Lieferantensicht)  Einfachheit, Wartbarkeit, Erweiterbarkeit Fehlerfreiheit Dokumentation, Architekturen, Programmcode Prozesse, Methoden Basis für...
  9. 9. Externe Qualität (Kundensicht)  Zufriedenheit, Erwartung Erfüllung der Anforderungen Funktionsumfang Usability Fehlerfreiheit Audit
  10. 10. DIN ISO/IEC 25000 Software engineering Software product Quality Requirements and Evaluation (SQuaRE) Qualitätskriterien und Bewertung von Softwareprodukten
  11. 11. Funktionalität Zuverlässigkeit Wartbarkeit Benutzbarkeit Ausgereiftheit Verfügbarkeit Fehlertoleranz Wiederherstellbarkeit Vollständigkeit Korrektheit Angemessenheit Effizienz Antwortzeitverhalten Ressourcenverbrauch Kapazität Angemessenheit Erlernbarkeit Bedienbarkeit Fehlertoleranz Ästhetik Barrierefreiheit Vertraulichkeit Integrität Nachweisbarkeit Verantwortlichkeit Authentizität Sicherheit Koexistenz Interoperabilität Kompatibilität Übertragbarkeit Anpassungsfähigkeit Installierbarkeit Austauschbarkeit Modularität Wiederverwendbarkeit Analysierbarkeit Modifizierbarkeit Prüfbarkeit Produkt Qualität ISO 25010
  12. 12. … und das soll ich jetzt alles testen oder was? Ja! Boah! Tut das echt Not? Ja! $ !?! 
  13. 13. … und was für Testarten gibt es da so?
  14. 14. TESTARTEN E2E-Test Benutzbarkeitstest Stresstest Performancetest Statischer Test Unit Test Regressionstest CodereviewArchitekturreview Nachtest Penetrationstest Sicherheitstest Usabilitytest Installationstest Schnittstellentest Abnahmetest Integrationstest Akzeptanztest Funktionstest
  15. 15. Fehlerfindung: Es sollen mögliche Fehler gefunden werden, bevor die Software eingesetzt wird Qualitätsnachweis: Es soll nachgewiesen werden, dass sich die Software konform zu den Anforderungen verhält   Testen Ein Bug darf keinen Sonnenuntergang erleben!
  16. 16. TESTZIEL TESTSTUFE TESTART erreichen in testen mittels Gebrauchstauglichkeit Akzeptanztest Lasttest Schnittstellentest Funktion ist richtig umgesetzt System ist schnell Schnittstelle funktioniert ?
  17. 17. Teststufen Anforderungen Funktionaler Entwurf Technischer Entwurf Komponenten Spezifikation Entwicklung Modultest Performance- Test Systemtest Abnahmetest Akzeptanztest Integrations- test
  18. 18. ZIEL
  19. 19. Scrum
  20. 20. Anforderungen Entwurf Programmierung Test Noch Water Scrum:
  21. 21. Was soll das heißen: „Testen ist integraler Bestandteil der Entwicklung“?
  22. 22. Es war einmal … … ein Team
  23. 23. … ein Team ? T
  24. 24. Team Orangerot 1 Unittest Programmierung Test Durchführung Testfall- erstellung Fixing Feature Freeze Unittest Programmierung Test Durchführung Testfall- erstellung Fixing Feature Freeze Fixing Feature Freeze Lasttestdurchführung Systemtestdurchführung Explore Explore
  25. 25. Team Orangerot 1 Das geht so nicht – wir müssen den Test entzerren!
  26. 26. Team Feuerrot Unittest Programmierung Testfall- erstellung Fixing Unittest Programmierung Test- durchführung Fixing Feature Freeze Lasttestdurchführung Systemtestdurchführung Explore GUI-Automatisierung Fixing Testfall- erstellung
  27. 27. Team Feuerrot OK, is klar! Wir machen jetzt doch alles in einem Sprint und wir automatisieren, damit es am Ende nicht so eng wird!
  28. 28. AUTOMATISIEREN WARUM?
  29. 29. Projektlaufzeit Testaufwand niedrig hoch
  30. 30. AUTOMATISIEREN DARUM! … und natürlich weil nicht alles manuell geht (Lasttests, Performancetests, Schnittstellentests, …)
  31. 31. Unittest Programmierung Fix GUI-Automatisierung Fixing Feature Freeze Lasttestdurchführung Systemtestdurchführung Explore Explore GUI-Automatisierung Unittest Programmierung Fix Explore Team Orangerot 2 Test Durchführung Testfall- erstellung Test Durchführung Testfall- erstellung
  32. 32. Das ist hier die Frage GUI oder nicht GUI
  33. 33. Projektlaufzeit Test- automatisierungs- aufwand niedrig hoch
  34. 34. Testautomatisierung Explorativ System-, Performancetest Akzeptanztest Unit-, Integrationstest Manuell Automatisiert GUI-Automatisierung immer bewusst machen und niemals alles!
  35. 35. GUI-Automatisierung GF 3 GF 4.1 GF 1.2 GF 1.1 GF 5 Aufwand Risiko GF 7 hochniedrig niedrig hoch
  36. 36. Team Orangerot 2 OK OK, wir automatisieren also ganz viel Akzeptanztests und nur wichtige GUI-Tests!
  37. 37. Akzeptanz… …wie geht das in Scrum? Wer sichert die Qualität der Anforderungen?
  38. 38. Definition of Ready Quality Gate für User Stories
  39. 39. *Haben nicht den Anspruch Anforderungen umfassend zu dokumentieren Card Conversation *Abwehr Als Fußballverein möchte eine gute Abwehr haben damit ich wenig Tore reinkrieg Confirmation
  40. 40. Confirmation Akzeptanzkriterien (Testbasis) Herstellung der Messbarkeit DoR  Story bereit zur Umsetzung DoD  Abnahme der Story
  41. 41. … und wie erzeuge ich gute Akzeptanzkriterien?
  42. 42. Conversation ATDD
  43. 43. Conversation BDD
  44. 44. VERHALTEN TREIBT ENTWICKLUNG BEHAVIOR DRIVEN DEVELOPMENT
  45. 45. UBIQUITÄRE SPRACHE GHERKIN ALLE VERSTEHEN ES SZENARIEN MIT GIVEN WHEN THEN ANGENOMMEN WENN DANN
  46. 46. Akzeptanzkriterien Szenario: Zwei Zahlen addieren Angenommen die erste Zahl ist 50 Und die zweite Zahl ist 80 Wenn ich addieren auswähle Dann muss das Ergebnis 130 sein Szenario: Drei Zahlen addieren Angenommen die erste Zahl ist 50 Und die zweite Zahl ist 80 Und die dritte Zahl ist 20 Wenn ich addieren auswähle Dann muss das Ergebnis 150 sein
  47. 47. … und das geht auch automatisiert? Wie denn?
  48. 48. Client View Model Businesslogik Controller Ressourcen Request Response Select ? ?
  49. 49. Addieren Als Benutzer möchte ich Zahlen addieren können damit ich Zeit beim Rechnen spare User Story schreiben Akzeptanzkriterien ausarbeiten Glue Code schreiben Unittest Code schreiben Code schreiben Ready Done [Then(@"the result should be (.*) on the screen")] public void ThenTheResultShouldBeOnTheScreen(decimal p0) { Assert.AreEqual(p0, result); } Assert.AreEqual(130, calculator.result);
  50. 50. User Story schreiben Akzeptanzkriterien ausarbeiten Glue Code schreiben Unittest Code schreiben Code schreiben Fachbereich und Anforderungsmanager haben eine einfache Sprache, ... … Anforderungsmanager, Entwickler und Tester müssen jetzt eng zusammenarbeiten, … … die Entwickler können dann direkt gegen das erwartete Verhalten (den Test) entwickeln, … … alle kriegen sofort eine Rückmeldung, ob sie alles richtig gemacht haben, … … und am Ende braucht man nicht mehr soviel testen!!!
  51. 51. BDD ist toll! Ist das denn die Lösung für alles? Ina Einemann (HEC GmbH) BDD - die Lösung aller Probleme? Nö!
  52. 52. Geht denn auch GUI-Automatisierung und testgetriebene Entwicklung? Björn Seebeck (HEC GmbH) Jubula im Softwareentwicklungsprozess Jo!
  53. 53. Team Orange Unittest Programmierung Autom. Akzeptanztests Fix GUI-Automatisierung Fixing Feature Freeze Lasttestdurchführung Systemtestdurchführung Explore Explore GUI-Automatisierung Unittest Programmierung Autom. Akzeptanztests Fix Explore
  54. 54. Wann finden denn Performancetests statt? Immer, kontinuierlich und so früh wie möglich. So früh wie möglich.
  55. 55. Warum brauch ich eigentlich noch Systemtests wenn ich doch Akzeptanztests habe? Unsere Akzeptanztests haben meistens den Fokus auf die User Stories  Ziel: Nutzen bestätigen Systemtests sind oft End-to-End- Tests. Wenn wir die nicht haben könnten Lücken entstehen!  Ziel: Fehler finden
  56. 56. Team Orange Herrje! Dann machen wir den System- und Performancetest eben parallel! Aber dafür brauchen wir ein extra Team!
  57. 57. Team Gelb Unittest Programmierung Autom. Akzeptanztests Fix Fixing Explore Explore Unittest Programmierung Autom. Akzeptanztests Fix ExploreGUI-Automatisierung Last- / Systemtest
  58. 58. $ !?!  Team Gelb
  59. 59. Team Grün Unittest Programmierung Autom. Akzeptanztests Fix Fixing Explore Explore Unittest Programmierung Autom. Akzeptanztests Fix GUI- / Last- / Systemtest ExploreGUI- / Last- / Systemtest
  60. 60. Team Grün Jetzt ist alles schön. So machen wir für immer weiter!
  61. 61. Team Rosa OK!!! Wir bleiben dran! PLAN DOCHECK ACT
  62. 62. Scrum BDD ATDD eXtreme Soziale Kompetenz Grundlage für Team Grün
  63. 63. Und wie macht man das dann mit mehreren Teams?
  64. 64. Product Owner Scrum Master Community of practice Scrum of Scrums Head of PO Teststrategie
  65. 65. Fazit
  66. 66. Team ? Develop Stories Test Stories Test Issues Fixing Acceptance Test Regression Test Develop Stories Test Stories Test Issues Fixing Acceptance Test Regression Test Develop Stories Test Stories Test Issues Fixing Acceptance Test Regression Test
  67. 67. Frank Düsterbeck frank.duesterbeck@HEC.de @fduesterbeck de.slideshare.net/fduesterbeck

×