Testen mit, durch und in Scrum

Kennen Sie schon den Vortrag “Testen mit, durch und in Scrum” von Frank Düsterbeck? 


 

[slideshare id=36825178&doc=frankdsterbeck-testenmitdurchundinscrum-asqf-140710034544-phpapp02]

 


Testen mit, durch und in Scrum

1. Frank Düsterbeck de.slideshare.net/fduesterbeck @fduesterbeck Testen mit, durch und in Scrum

2. (De)-Motivation

3. Komplexität heutiger Software schwer beherrschbar Anforderungsdynamik Heutzutage schwer beherrschbar

4. Quelle: Carl Dichter and Chris Tynes, JavaWorld.com, 06/01/97 Quelle: Wikipedia

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. 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. Qualität ist der Grad, in dem Merkmale einer Sache Anforderungen erfüllen Was ist gute Qualität?

8. Interne Qualität (Lieferantensicht)  Einfachheit, Wartbarkeit, Erweiterbarkeit Fehlerfreiheit Dokumentation, Architekturen, Programmcode Prozesse, Methoden Basis für…

9. Externe Qualität (Kundensicht)  Zufriedenheit, Erwartung Erfüllung der Anforderungen Funktionsumfang Usability Fehlerfreiheit Audit

10. DIN ISO/IEC 25000 Software engineering Software product Quality Requirements and Evaluation (SQuaRE) Qualitätskriterien und Bewertung von Softwareprodukten

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. … und das soll ich jetzt alles testen oder was? Ja! Boah! Tut das echt Not? Ja! $ !?! 

13. … und was für Testarten gibt es da so?

14. TESTARTEN E2E-Test Benutzbarkeitstest Stresstest Performancetest Statischer Test Unit Test Regressionstest CodereviewArchitekturreview Nachtest Penetrationstest Sicherheitstest Usabilitytest Installationstest Schnittstellentest Abnahmetest Integrationstest Akzeptanztest Funktionstest

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. TESTZIEL TESTSTUFE TESTART erreichen in testen mittels Gebrauchstauglichkeit Akzeptanztest Lasttest Schnittstellentest Funktion ist richtig umgesetzt System ist schnell Schnittstelle funktioniert ?

17. Teststufen Anforderungen Funktionaler Entwurf Technischer Entwurf Komponenten Spezifikation Entwicklung Modultest Performance- Test Systemtest Abnahmetest Akzeptanztest Integrations- test

18. ZIEL

19. Scrum

20. Anforderungen Entwurf Programmierung Test Noch Water Scrum:

21. Was soll das heißen: „Testen ist integraler Bestandteil der Entwicklung“?

22. Es war einmal … … ein Team

23. … ein Team ? T

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. Team Orangerot 1 Das geht so nicht – wir müssen den Test entzerren!

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. 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. AUTOMATISIEREN WARUM?

29. Projektlaufzeit Testaufwand niedrig hoch

30. AUTOMATISIEREN DARUM! … und natürlich weil nicht alles manuell geht (Lasttests, Performancetests, Schnittstellentests, …)

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. Das ist hier die Frage GUI oder nicht GUI

33. Projektlaufzeit Test- automatisierungs- aufwand niedrig hoch

34. Testautomatisierung Explorativ System-, Performancetest Akzeptanztest Unit-, Integrationstest Manuell Automatisiert GUI-Automatisierung immer bewusst machen und niemals alles!

35. GUI-Automatisierung GF 3 GF 4.1 GF 1.2 GF 1.1 GF 5 Aufwand Risiko GF 7 hochniedrig niedrig hoch

36. Team Orangerot 2 OK OK, wir automatisieren also ganz viel Akzeptanztests und nur wichtige GUI-Tests!

37. Akzeptanz… …wie geht das in Scrum? Wer sichert die Qualität der Anforderungen?

38. Definition of Ready Quality Gate für User Stories

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. Confirmation Akzeptanzkriterien (Testbasis) Herstellung der Messbarkeit DoR  Story bereit zur Umsetzung DoD  Abnahme der Story

41. … und wie erzeuge ich gute Akzeptanzkriterien?

42. Conversation ATDD

43. Conversation BDD

44. VERHALTEN TREIBT ENTWICKLUNG BEHAVIOR DRIVEN DEVELOPMENT

45. UBIQUITÄRE SPRACHE GHERKIN ALLE VERSTEHEN ES SZENARIEN MIT GIVEN WHEN THEN ANGENOMMEN WENN DANN

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. … und das geht auch automatisiert? Wie denn?

48. Client View Model Businesslogik Controller Ressourcen Request Response Select ? ?

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. 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. BDD ist toll! Ist das denn die Lösung für alles? Ina Einemann (HEC GmbH) BDD – die Lösung aller Probleme? Nö!

52. Geht denn auch GUI-Automatisierung und testgetriebene Entwicklung? Björn Seebeck (HEC GmbH) Jubula im Softwareentwicklungsprozess Jo!

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. Wann finden denn Performancetests statt? Immer, kontinuierlich und so früh wie möglich. So früh wie möglich.

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. Team Orange Herrje! Dann machen wir den System- und Performancetest eben parallel! Aber dafür brauchen wir ein extra Team!

57. Team Gelb Unittest Programmierung Autom. Akzeptanztests Fix Fixing Explore Explore Unittest Programmierung Autom. Akzeptanztests Fix ExploreGUI-Automatisierung Last- / Systemtest

58. $ !?!  Team Gelb

59. Team Grün Unittest Programmierung Autom. Akzeptanztests Fix Fixing Explore Explore Unittest Programmierung Autom. Akzeptanztests Fix GUI- / Last- / Systemtest ExploreGUI- / Last- / Systemtest

60. Team Grün Jetzt ist alles schön. So machen wir für immer weiter!

61. Team Rosa OK!!! Wir bleiben dran! PLAN DOCHECK ACT

62. Scrum BDD ATDD eXtreme Soziale Kompetenz Grundlage für Team Grün

63. Und wie macht man das dann mit mehreren Teams?

64. Product Owner Scrum Master Community of practice Scrum of Scrums Head of PO Teststrategie

65. Fazit

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. Frank Düsterbeck frank.duesterbeck@HEC.de @fduesterbeck de.slideshare.net/fduesterbeck

Verfasst von Frank Düsterbeck am 10. Dezember 2014