Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[DE] Performance Testing für Agile und DevOps-T...

Lars Wolff
September 18, 2018

[DE] Performance Testing für Agile und DevOps-Teams

Performancetests sind nicht nur ein wichtiges Instrument, um ein System und dessen Laufzeitumgebung zu verstehen, sondern auch, um es auf seine Stabilität und Skalierbarkeit zu überprüfen – nicht-funktionale Anforderungen, die z.B. im E-Commerce-Bereich mitunter erfolgsentscheidend sein können. Ob Stabilität auch unter erhöhtem Traffic durch eine Marketing-Aktion vorhanden ist oder der Nutzer und potentielle Kunde von durchgängig niedrigen Request-/Response-Raten profitiert, geben über kurz oder lang den Ausschlag für Erfolg oder Misserfolg eines Produktes.

Der Talk zeigt auf, wie solche und vergleichbare Fragen mit Performancetests geklärt werden können und wie Agile-Teams, DevOps ganz prinzipiell von regelmäßiger Testpraxis profitieren. Es wird erörtert welche Hürden für regelmäßiges Testen gemeistert werden müssen und was sich als Best-Practises bewährt hat.

Lars Wolff ist Co-Founder von https://stormforger.com, einem Performance Testing SaaS für Agile und DevOps Teams. Er greift dabei auf eine über zehnjährige Erfahrung in Software-Entwicklung, Beratung und Agile-Coaching zurück. Er unterstützt mit StormForger Agile und DevOps-Teams dabei zuverlässige, skalierbare und nicht zuletzt hoch-performante Systeme zu entwickeln. DevOps, Scrum, Kanban, Whiteboards und Post-its® sind seine Leidenschaften.

Lars Wolff

September 18, 2018
Tweet

More Decks by Lars Wolff

Other Decks in Technology

Transcript

  1. Lars Wolff · @larsvegas EHLO Webworker NRW • Lars Wolff


    @larsvegas • Background Beratung und Entwicklung • Fokus auf Agilität und Ship it! • Gründer & CEO StormForger.com • AWS-UserGroup-Cologne • (WebPerfMeetup CGN)
  2. Lars Wolff · @larsvegas Performance Fähigkeit eines Systems eine Aufgabe

    in einer
 definierten Dimension zu erledigen = Effizienz eines Systems
 "1 Server schafft 250 rps mit p99 250ms"
  3. Lars Wolff · @larsvegas Skalierbarkeit capacity 0 1000 2000 3000

    4000 resources 5 10 15 20 25 30 Effektivität mit der die Kapazität durch Ressourcen gesteigert werden kann
  4. Wenn dein System schnell für einzelne Benutzer ist, aber langsam

    unter Last. https://www.flickr.com/photos/jamespaullong/with/714577655/
  5. –Wikipedia “In software engineering,
 performance testing is in general,
 a

    testing practice performed to
 determine how a system performs
 in terms of responsiveness and stability
 under a particular workload.” https://en.wikipedia.org/wiki/Software_performance_testing
  6. Lars Wolff · @larsvegas Performance Tests • System anregen mit

    einer definierten Last • Verhalten beobachten • Eigenschaften verifizieren • Verhalten verstehen
  7. Performance Tests • Sammlung nicht-funktionaler Testmethoden • Nicht ganz trennscharf

    zu definieren • Unterschiedliche Ziele und Perspektiven Load Testing Stress Testing Spike Testing Soak Testing Endurance Testing Resilience Testing Configuration Testing Scalability Testing
  8. Lars Wolff · @larsvegas Performance Tests? • Nicht nur für

    die Großen™! • Nicht nur zum Testen von Releases • Evaluierung von… • Technologie, • Proof of Concepts, • Troubleshooting und Debugging
  9. Lars Wolff · @larsvegas Performance Testing Maturity • gar keine

    Tests • Tests bei Problemen in Produktion • Tests (kurz) vor großen (Sales & Marketing) Aktionen * • regelmäßige Tests * * • Tests als reguläres, integriertes DevOpsQA Instrument * * * * *
  10. –Allison McKnight, Etsy (@aemcknig) “Without a performance culture, performance is

    not sustainable” https://speakerdeck.com/aemcknig/building-performance-for-the-long-term#4
  11. Lars Wolff · @larsvegas Herausforderungen • (in der Regel) kein

    Tooling-Problem • organisatorische Hürden, z.B. Buy-In (Management & Team) • Sichtbarkeit in die eigenen Systeme • Anfangen
  12. Lars Wolff · @larsvegas Verständnis aufbauen • Eigene Anwendung •

    System & Softwarearchitektur • Umgebung (Infrastruktur, Abhängigkeiten, …) • Verwendete Dienste und deren Verhalten
  13. Lars Wolff · @larsvegas (Performance) Messen • Transparenz für das

    Thema herstellen • Sichtbarkeit bei der Durchführung von Perf Tests • Metriken ohnehin wichtig für den Betrieb
  14. Lars Wolff · @larsvegas 5 Schritte zu Perf Tests™ •

    Stakeholder zusammenbringen • Ziele & Scope definieren • Anforderungen ermitteln • Am Wer? und Was? arbeiten • Gemeinsam Tests durchführen - Entwicklung Betrieb QA Produkt Management Marketing
  15. Lars Wolff · @larsvegas Stakeholder Zusammenbringen • Entwicklung, Betrieb, QA,

    Produktentwicklung, Management und Marketing • Warum? Performance (Testing) ist ein hochgradig orthogonales Thema! • Alle Teile spielen bei Vorbereitung, Planung und Durchführung eine Rolle
  16. Lars Wolff · @larsvegas Ziele definieren • Ziele vorher definieren

    (Warum testen wir?) • Wichtig! Ziele (und Anforderungen) immer von der Fachseite her denken und definieren ☝ • Ein Ziel kann zunächst sehr einfach sein, z.B. “Black Friday gut überstehen” oder “Wir wollen 20% schneller werden”.
  17. Lars Wolff · @larsvegas Womit anfangen zu testen? • System

    Under Test (SUT) definieren • richtigen Scope finden • Perimeter/Ende-zu-Ende Tests • Komponenten/Service Tests
  18. System Under Test • Testing “von oben” (Ende-zu-Ende) oder "seitlich"

    gegen einzelne Services • Für Fachseite sind in der Regel nur integrative Tests interessant • Tests einzelner Services zwecks Trouble Shooting (technische Perspektive)
  19. Lars Wolff · @larsvegas Anforderungen ermitteln • Annahmen zu Nicht-funktionale

    Anforderungen (NFA) treffen • Hilfestellung via "Baseline" Performance Tests und Performance Budgets • Einfache Anforderungen könnten sein: “Seiten unter 2s ausliefern”, “10k Checkouts pro Stunde”, … • Auch hier: Einfach anfangen, lernen, verbessern, repeat! • Sanity Checks machen!
  20. Lars Wolff · @larsvegas - Entwicklung Betrieb QA Szenarien •

    Bouncing Visitor • Returning Customer • Walk-In Customer • … Produkt Management Marketing Workloads • Black Friday Peak Hour • Average Peak Hour • 3 Hour Fire Sale • … Wer? Was?
  21. Lars Wolff · @larsvegas Gemeinsam Testen • Vor allem bei

    den ersten Tests alle Stakeholder involvieren! • GO! • Setup, Annahmen und Findings präsentieren • Szenarien Sanity checken oder überarbeiten • Repeat!
  22. Lars Wolff · @larsvegas Wie anfangen? • Pragmatismus über Perfektion

    • von … zu … • simpel zu komplex(er), in kleinen Schritten • punktuell über regelmäßig zu kontinuierlich • Annahmen herleiten, festlegen und dokumentieren • von der Fachseite her an Probleme und Anforderungen herangehen
  23. …ist aber eine Feedback-Loop Aspects System under Test (SuT) Stakeholder

    Requirements Test Strategy Definition
 (test scenario) Implementation
 (test scenario) Execution
 (test case) Result Interpretation & Reporting Business Needs
  24. In SAFe® StormForger empowers to: • Raise, define and validate

    non-function-requirements (NFR) • Collaborate on NFRs, test scenarios and test results in CoP • Create test scenarios in development phase (shift left testing) • Execute test runs in every stage of the continuous delivery pipeline fully automated in the cloud • To deserve a Built-In Quality approach Community of Practise (CoP)
  25. Lars Wolff · @larsvegas Fazit • Performance (Testing) ist ein

    orthogonales Thema • Pragmatismus über Perfektion • Annahmen herleiten, festlegen und dokumentieren • von der Fachseite her an Probleme und Anforderungen herangehen • Anfangen! • Iterieren!
  26. Danke Lars Wolff @larsvegas [email protected] https://stormforger.com Wenn du: • Performance

    Probleme hast • … oder vor einem Event stehst (Black Friday / Xmas) • … der gerade in die Cloud™ transformierst • … oder cloud-native, fully-fledged DevOpsQA bist lasst uns sprechen!
  27. Performance Testing SaaS for DevOps StormForger empowers organizations to do


    continuous performance testing Wollt ihr einen Part II??? :)