CQSE Software Intelligence Talk 2021-2 - "Schnell Feedback trotz langsamer Tests"
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
CQSE Software Intelligence Talk 2021-2
»Schnell Feedback trotz langsamer Tests«
Wir starten pünktlich um 10:33 UhrAgenda Begrüßung Pareto-Testing & Test-Impact-Analyse – Grundidee & Forschungsergebnisse Dr. Elmar Juergens (CQSE GmbH), Raphael Nömmer (CQSE GmbH) Q&A Session Erfahrungsbericht zu Pareto-Testing & Test-Impact-Analyse bei der BVK Jeannette Wernicke (Bayerische Versorgungskammer), Fabian Streitel (CQSE GmbH) Q&A Session
Pareto-Testing & Test-Impact-Analyse? Grundidee & Forschungsergebnisse Dr. Elmar Jürgens Raphael Nömmer
Welchen Einfluss hat die Reihenfolge der Ausführung von Software Tests?
Test Gaussian Blur
Test Lens Blur
Test Motion Blur
Test Smart Blur
Time vs Code Coverage
100%
90%
80%
Relative Coverage
70%
60%
50%
40%
30%
20%
10%
0%
0 40 80
Relative RuntimeTest Create and Modify
SelectionTest Change View Settings
Test Second Layer
Test Save Image
Time vs Code Coverage
100% Test Create and
90% Modify Selection
80%
Relative Coverage
70%
60%
50%
40%
30%
20%
10%
0%
0 40 80
Relative Runtime
Test Gaussian BlurWie wählen wir die besten Tests aus?
Optimierte Test Suite
Testumgebung
Volle Test Suite Priorisierungs-
verfahren
Test Daten
Vollständige Test SuitePotentielle Einschränkungen in der
AusführungsreihenfolgeWie gut funktioniert das ganze für echte Test
Suites?Open-Source Project SLOC # Tests Code Coverage AC Collections 62,934 15,183 86% AC Lang 75,467 3,484 95% AC Math 174,522 4,828 92% AssertJ 161,306 14,685 91% EBean 170,656 2,618 77% JoptSimple 9,433 838 98% Spoon 112,650 1,619 83% Closed-Source Project Siemens >>203,964 5,366 75% CQSE 516,949 2,979 76%
Siemens
Apache Spoon
ProjektMath
Commons
CQSE Projekt
100%
100%
100%
90%
90%
90%
80%
80%
80%
70%
70%
70%
Relative Coverage
60%
60%
60%
50%
50%
50%
40%
40%
40%
30%
30%
30%
20%
20%
20%
10%
10%
10%
0%
0%
0%
0%
0%
0% 10%
10%
10% 20%
20%
20% 30%
30%
30% 40%
40%
40% 50%
50%
50% 60%
60%
60% 70%
70%
70% 80%
80%
80% 90%
90%
90% 100%
100%
100%
Relative Laufzeit
Relative Laufzeit
Standardreihenfolge
Standardreihenfolge
Standardreihenfolge Optimierte
Optimierte Reihenfolge
OptimierteReihenfolge
ReihenfolgeÜberblick
100%
97,29%
93,84%
90%
80%
Relative Coverage
70%
60%
50%
15%
40%
30%
20%
10%
0%
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Relative Runtime
AC Coll AC Lang AC Math AssertJ Ebean Jopt-Simple Jsoup SpoonMutant Generator Testumgebung Mutation Report
Source Code Mutanten
Test SuiteSpoon Math
Apache Commons
100%
100%
90%
90%
80%
80%
Mutation Score
70%
70%
Relativer Mutaiton
60%
60%
50%
50%
40%
40%
30%
30%
20%
20%
10%
10%
0%
0%
0%
0% 10%
10% 20%
20% 30%
30% 40%
40% 50%
50% 60%
60% 70%
70% 80%
80% 90%
90% 100%
100%
Relative Laufzeit
Relative Laufzeit
Standardreihenfolge
Standardreihenfolge Optimierte Reihenfolge
Optimierte ReihenfolgeÜberblick
100%
95,30%
90% 88%
Relativer Mutation Score
80%
70%
60%
50%
15%
40%
30%
20%
10%
0%
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Relative Laufzeit
AC Coll AC Lang AC Math AssertJ Ebean Jopt-Simple Jsoup SpoonTest-Impact-Analyse
Schritt 1: Selektion betroffener Testfälle
Schritt 1: Selektion betroffener Testfälle
Schritt 1: Selektion betroffener Testfälle
Schritt 2: Priorisierung selektierter Testfälle
Schritt 2: Priorisierung selektierter Testfälle
Schritt 2: Priorisierung selektierter Testfälle
Change coverage
Execution timeSchritt 2: Priorisierung selektierter Testfälle
1% 80 %
2% 90 %
Test-Impact-
Pareto-Testing Analyse
Tests werden unabhängig von Tests werden für jeden Lauf passend
Änderungen ausgewählt. zu Änderungen ausgewählt
95% der Mutanten in 15% der Zeit 90% der Mutanten in 2% der Zeit
ermittelt ermittelt
Einmalige Messung der Coverage Erfordert kontinuierliche Messung der
reicht aus (ggf. quartärliche Coverage und Integration der Test-
Wiederholung) Auswahl in die CI /
Testautomatisierung.
Weniger Aufwand & breiter Stärkere Beschleunigung des
Anwendbar FeedbacksDie Bayerische Versorgungskammer
12 Versorgungs-
Deutschlands größte öffentlich-rechtliche einrichtungen
Versorgungsgruppe
100 Jahre Erfahrung
• verwaltet zwölf Einrichtungen der berufsständischen sowie der
kommunalen und kirchlichen Altersversorgung 2,4 Mio. Versicherte und
• unterstützt die Selbstverwaltungsgremien bei ihren Aufgaben und Versorgungsempfänger
vollzieht deren Beschlüsse
97,2 Milliarden Euro
• ist organisationsrechtlich eine Staatsbehörde, unterliegt als Organ
Kapitalanlagevolumen*
der Versorgungsanstalten jedoch keinen staatlichen Weisungen
1. 420 Mitarbeiterinnen
Denninger Straße 37, 81925 München E-Mail: info@versorgungskammer.de
und Mitarbeiter
* Marktwert
Tel.: 089 9235 6 Fax: 089 9235 8104 www.versorgungskammer.deWer wir sind...
Jeannette Wernicke
Innovation Managerin
jwernicke@versorgungskammer.de
• Bis 2019: Softwareentwicklerin und –architektin
Schwerpunkt: Software Qualität
Christoph Kühn • Seit 2020: Aufbau des Innovation Lab der BVK
Technischer Chef Designer • Organisation und fachliche Begleitung bei Umsetzung
POC
ckuehn@versorgungskammer.de
• Softwareentwickler und –architekt
Schwerpunkt: technische Infrastruktur
• Ansprechpartner zu technischen Fragen bei
Umsetzung POCIn-house Anwendung „Futura“
für die Verwaltung und Administration im Bereich der Altersversorgung
Individuelle Anpassung durch Fachabteilung
Parametrierung
Bildet zentrale Businessprozesse
Fachmodul Fachmodul Fachmodul Fachmodul ab, u.a.
Betriebsrente Beamten- Bühne und Berufs-
öffentlicher versorgung Orchester ständische
Fachmodule • Mitgliederverwaltung
Dienst Versorgung
• Versicherungsverlauf
Fachfunktionen der Plattform: Partner, In-/Exkasso Externe • Rentenberechnung
Fachliche Grundfunktionalität Kommunikation
Basisfunktionen Plattform
Technische Plattform / BasistechnikSoftware Individuelle Anpassung durch Fachabteilung
Fachabteilung
• Gesamtsystem: Fachmodul Fachmodul Fachmodul Fachmodul
Betriebsrente Beamten- Bühne und Berufs-
• Plattform + 4 Fachmodule öffentlicher versorgung Orchester ständische
Dienst Versorgung
• ~1 Mio RLOC (Java) Intern
• Verteilte Entwicklung (extern und intern) Extern
Fachfunktionen der Plattform: Partner, In-/Exkasso Externe
Kommunikation
• produktiv seit 2007 Fachliche Grundfunktionalität
Basisfunktionen
Technische Plattform / Basistechnik
Tests:
• Unit-Test und Funktionale Tests
• Integrationstests (GeVo*-Tests, Testketten)
• Manuelle Tests
*Geschäftsvorfall (GeVo)
Eine Folge fest definierter Ereignis-Schritte, die
versicherungsrelevante Veränderungen auf einem Partner abbildet.Testframework für Integrationstests
Testframework
Pro Test:
Aufbau der Datenbank
Befüllen der DB mit Testdaten Testvoraussetzungen
Ausführung des spezifizierten
DB Test Tests (ein oder mehrere GeVos)
Testspezifikation
Prüfung ob Daten in der DB mit
Testerwartung
Testerwartung übereinstimmen
Löschen der testfallspezifischen
Daten aus der DB
Testergebnisse,
CoveragedatenAutomatisierte Integrationstests
• Tests werden automatisiert über Nacht ausgeführt
• Testlaufzeiten: Ø 12 h
(in Ausnahmefällen bis 26 h) Typ Anzahl Laufzeit *
Einzel-GeVo 3060 3h 41min
Testketten 4095 6h 34min
Batch 1860 1h 54min
Lange Feedbackzyklen Summe 9015 12h 09min
Unit + Functional 6994 < 2min
Tests
*Beispieldaten für Fachmodul „Bühne und Orchester“
(Stand 03.05.2021)Wie können wir Testlaufzeiten reduzieren?
? Hardware
Änderung am Testframework
Reduzieren der Testanzahl
Brauchen wir immer alle Tests um Änderungen abzudecken?
? Annahme 1: Änderungen betreffen selten komplette Codebasis
Annahme 2: Einzelne Test decken nur Teile des Gesamtcodes ab
Wie entscheiden wir, welche Tests ausgeführt werden?
? Manuelle Selektion der Tests Aufwand bei 9000 Tests???Beteiligte am POC für die Test-Impact-Analyse
Continuous Quality in
Anwendungsentwicklung Software Engineering
Futura VBO
(Fachmodul Bühne und Orchester)
TeamscaleVision & Mission
„Das Innovation Lab soll einen Rahmen für Innovationen bereitstellen und Freiräume schaffen, sodass Mitarbeiter eigene Ideen ausprobieren können. Wir wollen
gemeinsam Probleme identifizieren und innovative Ideen entwickeln, um daraus Mehrwerte für Mitarbeiter und Unternehmen zu schaffen.“
Woher kommen die Das Team: Veranstaltungen: Timing & Rollout:
Themen? • Separates Team unter der • Impulsvorträge, z.B. zu KI-Themen Start Januar 2020
Trend- und Marktanalysen Bereichsleitung bei IV • Ideenfindungsworkshops
im Innovation Lab, • 2 Innovation Manager
Ideensammlung in Standort & Infrastruktur:
• 3 Werkstudenten
Workshops, Ideen von In der BVK, nah am MA
Mitarbeitern, Innovation
Beirat, Zusammenarbeit Netzwerk (Partner):
mit Startups, Netzwerk InsurTech Hub Munich,
Plug&Play
Inhaltliche
Schwerpunkte? Finanzierung:
Für BVK relevante Projekte: Investition durch IV
Innovationsthemen und – • KI gestützte Text- und
Technologien, z.B. Sprachverarbeitung
Künstliche Intelligenz, • Intelligente Prozessautomatisierung
Virtuelle Realität, Internet • Internet of Things
of Things, Intelligent • Testanalyse und -automatisierung
Process Automation
Weitere Informationen:
Im Intranet: https://intranet.bvk.int/organisation/bereiche/informationsverarbeitung/innovationlab Kontakt:
Blog: https://intranet.bvk.int/zusammenarbeit/mitreden/blogs/innovationlab Innovation-Lab@versorgungskammer.deTest Impact Analyse und Pareto Tests bei der BVK
Software Intelligence Talk
Fabian Streitel, 14.07.2021Testfall-spezifische
Coverage
Pareto-Testen
Selektierte & priorisierte
TestfälleTestfall-spezifische
Änderungen Coverage
Test-Impact-Analyse
Selektierte & priorisierte
TestfälleBei der BVK
Historische Änderungen Testfall-spezifische
Einmaliger Export aus CVS-Repository Coverage
Test-Impact-Analyse
Selektierte & priorisierte
TestfälleJVM
Test 1 Start
Anwendung Application.java Zeile 5
Test 1 Ende ausgeführt
Test 2 Start
... Test 1, Test 2, Test 3, ...
Testwise Coverage
ProfilerJVM
Test 1 Start
Anwendung Application.java Zeile 5
Test 1 Ende ausgeführt
Test 2 Start
...
Testwise Coverage
Profiler
„was wäre wenn…“Selbstgeschriebenes Bei der BVK
GeVo Tests
Testframework
Kettentests
+ Test-Wise Coverage Library
JVM
Test 1 Start
Anwendung Application.java Zeile 5
Test 1 Ende ausgeführt
Test 2 Start
...
Testwise Coverage
Profiler
„was wäre wenn…“Unit Tests
Es gibt noch weitere Testarten, die wir hier nicht vermessen haben, sowie generierten Code, der nicht getestet wird.GeVo Tests
Es gibt noch weitere Testarten, die wir hier nicht vermessen haben, sowie generierten Code, der nicht getestet wird.Kettentests
Es gibt noch weitere Testarten, die wir hier nicht vermessen haben, sowie generierten Code, der nicht getestet wird.Validierung: Stimmen die Daten?
Issue Erwartete Testfälle
VBO-6630 GV_VBO_04_003F
GV_VBO_04_004F
GV_VBO_04_009F
GV_VBO_04_309F
TK-I-VersRiesterAnteil-001
TK-I-VersRiesterAnteil-002
TK-I-VersRiesterAnteil-003
TK-I-VersRenteAendSchaedlVerw-001
TK-I-VersRenteAendSchaedlVerw-002
VBO-6873 GV_VBO_05_041F
GV_VBO_05_042F
GV_VBO_05_342F
TK-I-BESG-BU-TOD-001
TK-I-BESG-BU-TOD-002
TK-I-BESG-BU-TOD-003
TK-I-BESG-BU-TOD-004
TK-I-BESG-BU-ERW-AR-TOD
TK-I-BESG-NZ-ANNU-004
TK-I-VersAusgleichsrente-005
TK-I-VersAusgleichsrente-006
TK-I-VersAusgleichsrente-007
TK-I-BESG-NM-WAISE-001
TK-I-BESG-NM-WAISE-002
VBO-6942 GV_VBO_05_041F
GV_VBO_05_042F
GV_VBO_05_342F
TK-I-BESG-NM-001
TK-I-BESG-NM-002
TK-I-BESG-NM-007
TK-I-BESG-NM-WAISE-001
TK-I-BESG-NM-WAISE-002
TK-I-BESG-NM-WAISE-003
TK-I-BESG-NM-WAISE-004
TK-I-BESG-NM-WAISE-005
TK-I-BESG-NM-WAISE-006
TK-I-BESG-NM-WITWE-001
TK-I-BESG-NM-WITWE-002
TK-I-BESG-NM-WITWE-003
TK-I-BESG-NM-WITWE-004
TK-I-BESG-AR-TOD-001
TK-I-BESG-AR-TOD-002
+5 weitere Issues… Teamscale schlägt an vielen Stellen noch zusätzliche Tests vor, die von den Änderungen betroffen sind
Auswertung: Was bringt‘s? Wieviel Testzeit sparen wir uns?
Laufzeit der Laufzeit aller Tests
ausgewählten Tests
1 TagAlle Tests ohne TIA
An 93% der Tage: Testlaufzeit < 17%
!
< 10h
< 11h
< 1h
< 2h
< 3h
< 4h
< 5h
< 6h
< 7h
< 8h
< 9h
< 20min
< 40min
Nur Intervalle berücksichtigt, die Impacted Tests enthalten100%
80%
Vergleich mit TIA
Relative Methoden-Coverage In allen Fällen ist mindestens ein
60%
änderungsrelevanter Testfall enthalten.
Im Schnitt enthält die Paretoliste 17% der
40%
änderungsrelevanten Testfälle.
20%
!
0%
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
Relative Testlaufzeit
Pareto
Mit 1h Testlaufzeit erreichen wir bereits 99,2% relative Methoden-CoverageVorschlag für den Einsatz Aktuell: nächtlich „Re-run all“ Feedback erst spät am nächsten Tag Build Test
Vorschlag für den Einsatz Tagsüber schnelles Feedback: TIA Timeboxing Erstes Feedback auf eingecheckte Änderungen nach spätestens 2h Build Test max. 1h
Vorschlag für den Einsatz Tagsüber schnelles Feedback: TIA Timeboxing Erstes Feedback auf eingecheckte Änderungen nach spätestens 2h Build Test max. 1h
Vorschlag für den Einsatznach der Git-Umstellung Tagsüber schnelles Feedback: TIA Timeboxing Erstes Feedback auf eingecheckte Änderungen nach spätestens 2h Build Test max. 1h Weiterhin: nächtlich „Re-run all“, um die TIA-Daten zu aktualisieren
Vorschlag für den Einsatz vor der Git-Umstellung: Pareto-Testliste Tagsüber schnelles Feedback: Statisch berechnetes Testset Pareto-Testliste: Erstes unvollständiges Feedback auf eingecheckte Änderungen nach spätestens 2h Build Test 1h Weiterhin: nächtlich „Re-run all“, um die TIA-Daten zu aktualisieren Monatlich: Pareto-Liste aktualisieren
Aktueller Stand: ! Testwise-Coverage-Erhebung automatisiert ! Erste Pareto-Testliste für die BVK generiert
Interesse an Test-Impact-Analyse oder Pareto-Testen? Ich unterhalte mich gern bei einem virtuellen Kaffee dazu mit Ihnen! Fabian Streitel ∙ streitel@cqse.eu ∙ +49 159 04046270 CQSE GmbH Centa-Hafenbrädl-Straße 59 81249 München
Evaluation von Pareto-Testing & Test-Impact-Analyse
Anmeldung zur Q&A Session
»Schnell Feedback trotz langsamer Tests«
28. Juli 2021, 10:30 Uhr
cqse.eu/si-talks/2/qandaVielen Dank für Ihre Teilnahme!
Feedback zum Anmeldung zum
Software Intelligence Talk 2021-2 Software Intelligence Talk 2021-3
»Quality Control einführen« - 29. Sep. 2021
cqse.eu/si-talks/2/feedback cqse.eu/si-talks/3Sie können auch lesen