swk vortrag metriken

23
Software Qualitätsmetriken [email protected]

Upload: alexander-michehl

Post on 14-Apr-2017

208 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Swk vortrag metriken

Software Qualitätsmetriken

[email protected]

Page 2: Swk vortrag metriken

Inhalt

1.Anlass

2.Einspruch!

3.Alte Metriken

4.Bessere Metriken?

5.Neue Metriken

6.Durchführung

7.Vorläufiges Fazit

Page 3: Swk vortrag metriken

1.Anlass

● Iterative Entwicklung● „Wie verändert sich die Qualität unserer

Software pro Iteration? Wie können wir das ausdrücken?“

➔ Qualitätsmetriken

Page 4: Swk vortrag metriken

2.Einspruch!

● Metrik = Quantität → Quantität <> Qualität● Früher: LOC = Produktivität

Page 5: Swk vortrag metriken

3.Alte Metriken

● Anzahl Bugs● Anzahl Tests● Anzahl Warnungen● Testabdeckung

Page 6: Swk vortrag metriken

3.Alte Metriken

● Anzahl Bugs● Anzahl Tests● Anzahl Warnungen● Testabdeckung➔ Alle nutzlos, da ambivalent

Page 7: Swk vortrag metriken

4.Bessere Metriken?

1.Programmierstil

2.Programmstruktur

3.Wartbarkeit

4.Performance

5.Produktivität pro Iteration

6.Testqualität

Page 8: Swk vortrag metriken

4.Bessere Metriken?

1.Programmierstil● Mittel: Codeanalyse auf Basis fester Regeln

(Programmierkonventionen)● Ergebnis: Anzahl Verstoße gegen Regeln● Aussage: Werden Konventionen eingehalten?

Page 9: Swk vortrag metriken

4.Bessere Metriken?

1.Programmierstil● Mittel: Codeanalyse auf Basis fester Regeln

(Programmierkonventionen)● Ergebnis: Anzahl Verstoße gegen Regeln● Aussage: Werden Konventionen eingehalten?➔ ABGELEHNT, obsolet durch automatische

Refactorings

Page 10: Swk vortrag metriken

4.Bessere Metriken?

2.Programmstruktur● Mittel: Strukturelle Codeanalyse● Ergebnis: Anzahl bestimmter

Programmierartefakte● Aussage: Architektur in Ordnung?

Page 11: Swk vortrag metriken

4.Bessere Metriken?

2.Programmstruktur● Mittel: Strukturelle Codeanalyse● Ergebnis: Anzahl bestimmter

Programmierartefakte● Aussage: Architektur in Ordnung?➔ ABGELEHNT, da Absolutwerte, die i.d.R. nur

steigen

Page 12: Swk vortrag metriken

4.Bessere Metriken?

3.Wartbarkeit● Mittel: „Maintainability Index“

MAX(0, (171-5.2*ln(H)-0.23*C-16.2*ln(L)*100/171)● Ergebnis: Codeanalyse-Ergebnisse miteinander

korreliert● Aussage: Ist der Code einfach wartbar?

Page 13: Swk vortrag metriken

4.Bessere Metriken?

3.Wartbarkeit● Mittel: „Maintainability Index“

MAX(0, (171-5.2*ln(H)-0.23*C-16.2*ln(L)*100/171)● Ergebnis: Codeanalyse-Ergebnisse miteinander

korreliert● Aussage: Ist der Code einfach wartbar?➔ OK, trotz öffentlicher Zweifel

Page 14: Swk vortrag metriken

4.Bessere Metriken?

4.Performance● Mittel: Dauer von Testdurchläufen messen● Ergebnis: Geschwindigkeit jedes Tests● Aussage: Wurde durch ein neues Feature

bestehende Funktionalität verlangsamt?

Page 15: Swk vortrag metriken

4.Bessere Metriken?

4.Performance● Mittel: Dauer von Testdurchläufen messen● Ergebnis: Geschwindigkeit jedes Tests● Aussage: Wurde durch ein neues Feature

bestehende Funktionalität verlangsamt?➔ OK, leider schwer umsetzbar

Page 16: Swk vortrag metriken

4.Bessere Metriken?

5.Produktivität pro Iteration● Mittel: Implementierte Features & gelöste Bugs

pro Iteration zählen● Ergebnis: Anzahl abgeschlossener Aufgaben● Aussage: Gibt es Fortschritt?

Page 17: Swk vortrag metriken

4.Bessere Metriken?

5.Produktivität pro Iteration● Mittel: Implementierte Features & gelöste Bugs

pro Iteration zählen● Ergebnis: Anzahl abgeschlossener Aufgaben● Aussage: Gibt es Fortschritt?➔ ABGELEHNT, da Aufwand von Aufgabe zu

Aufgabe variiert

Page 18: Swk vortrag metriken

4.Bessere Metriken?

6.Testqualität● Mittel: Testabdeckung● Ergebnis: Testabdeckung pro Projekt, reduziert

auf Testdurchläufe aus dazugehörigem Testprojekt

● Aussage: Machen wir TDD richtig?

Page 19: Swk vortrag metriken

4.Bessere Metriken?

6.Testqualität● Mittel: Testabdeckung● Ergebnis: Testabdeckung pro Projekt, reduziert

auf Testdurchläufe aus dazugehörigem Testprojekt

● Aussage: Machen wir TDD richtig?➔ OK

Page 20: Swk vortrag metriken

5.Neue Metriken

Maintainability Index

Testabdeckung

Testperformance

Codeanalyse auf Basis fester Regeln

Strukturelle Codeanalyse (absolute Zahlen)

Implementierte Features

Gelöste Bugs

Page 21: Swk vortrag metriken

6.Durchführung

● Von Hand?● Erfassung: Schwer, da untersch. Plugins● Analyse: Schwer, da untersch. Ausgabeformate➔ Automatisierung selbst programmieren!

Page 22: Swk vortrag metriken

7.Vorläufiges Fazit

● Qualität <> Quantität● Manuelle Reviews weit besser

Page 23: Swk vortrag metriken

Eigene Erfahrungen?Fragen?