SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Software Qualitätsmetriken
alexander.michehl@gmail.com
Inhalt
1.Anlass
2.Einspruch!
3.Alte Metriken
4.Bessere Metriken?
5.Neue Metriken
6.Durchführung
7.Vorläufiges Fazit
1.Anlass
● Iterative Entwicklung
● „Wie verändert sich die Qualität unserer
Software pro Iteration? Wie können wir das
ausdrücken?“
➔ Qualitätsmetriken
2.Einspruch!
● Metrik = Quantität → Quantität <> Qualität
● Früher: LOC = Produktivität
3.Alte Metriken
● Anzahl Bugs
● Anzahl Tests
● Anzahl Warnungen
● Testabdeckung
3.Alte Metriken
● Anzahl Bugs
● Anzahl Tests
● Anzahl Warnungen
● Testabdeckung
➔ Alle nutzlos, da ambivalent
4.Bessere Metriken?
1.Programmierstil
2.Programmstruktur
3.Wartbarkeit
4.Performance
5.Produktivität pro Iteration
6.Testqualität
4.Bessere Metriken?
1.Programmierstil
● Mittel: Codeanalyse auf Basis fester Regeln
(Programmierkonventionen)
● Ergebnis: Anzahl Verstoße gegen Regeln
● Aussage: Werden Konventionen eingehalten?
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
4.Bessere Metriken?
2.Programmstruktur
● Mittel: Strukturelle Codeanalyse
● Ergebnis: Anzahl bestimmter
Programmierartefakte
● Aussage: Architektur in Ordnung?
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
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?
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
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?
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
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?
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
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?
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
5.Neue Metriken
Maintainability Index
Testabdeckung
Testperformance
Codeanalyse auf Basis fester Regeln
Strukturelle Codeanalyse (absolute Zahlen)
Implementierte Features
Gelöste Bugs
6.Durchführung
● Von Hand?
● Erfassung: Schwer, da untersch. Plugins
● Analyse: Schwer, da untersch. Ausgabeformate
➔ Automatisierung selbst programmieren!
7.Vorläufiges Fazit
● Qualität <> Quantität
● Manuelle Reviews weit besser
Eigene Erfahrungen?
Fragen?

Weitere ähnliche Inhalte

Andere mochten auch

Parts of speech
Parts of speechParts of speech
Parts of speechhaider ali
 
Chapter 12 information system development
Chapter 12   information system developmentChapter 12   information system development
Chapter 12 information system developmenthaider ali
 
Programming presentation
Programming presentationProgramming presentation
Programming presentationhaider ali
 
Teaching tenses
Teaching tensesTeaching tenses
Teaching tenseshaider ali
 
Chapter 4 the components of the system unit
Chapter 4   the components of the system unitChapter 4   the components of the system unit
Chapter 4 the components of the system unithaider ali
 
Chapter 1 introduction to computers
Chapter 1   introduction to computersChapter 1   introduction to computers
Chapter 1 introduction to computershaider ali
 

Andere mochten auch (7)

Parts of speech
Parts of speechParts of speech
Parts of speech
 
La educación digital
La educación digitalLa educación digital
La educación digital
 
Chapter 12 information system development
Chapter 12   information system developmentChapter 12   information system development
Chapter 12 information system development
 
Programming presentation
Programming presentationProgramming presentation
Programming presentation
 
Teaching tenses
Teaching tensesTeaching tenses
Teaching tenses
 
Chapter 4 the components of the system unit
Chapter 4   the components of the system unitChapter 4   the components of the system unit
Chapter 4 the components of the system unit
 
Chapter 1 introduction to computers
Chapter 1   introduction to computersChapter 1   introduction to computers
Chapter 1 introduction to computers
 

Ähnlich wie Swk vortrag metriken

Metrics we can gain from our (Kanban) system and what we can learn from ..
Metrics we can gain from our (Kanban) system and what we can learn from .. Metrics we can gain from our (Kanban) system and what we can learn from ..
Metrics we can gain from our (Kanban) system and what we can learn from .. Martin Putz
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungChristian Baranowski
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP UnitsCadaxo GmbH
 
Exploratives Testen – ein Überblick und Praxisbeispiele
Exploratives Testen – ein Überblick und PraxisbeispieleExploratives Testen – ein Überblick und Praxisbeispiele
Exploratives Testen – ein Überblick und PraxisbeispieleSven Schirmer
 
Refactoring: Mythen & Fakten
Refactoring: Mythen & FaktenRefactoring: Mythen & Fakten
Refactoring: Mythen & FaktenNETUserGroupBern
 
SAP Solman und Testing 2019
SAP Solman und Testing 2019SAP Solman und Testing 2019
SAP Solman und Testing 2019Allgeier ES
 
SAP Solman und Testing 2019
SAP Solman und Testing 2019SAP Solman und Testing 2019
SAP Solman und Testing 2019Allgeier ES
 
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...QAware GmbH
 
Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungGerrit Beine
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererTobias Schlüter
 
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpfStefan Jobst
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenGjero Krsteski
 
Die nächste Generation des Unit Testing
Die nächste Generation des Unit TestingDie nächste Generation des Unit Testing
Die nächste Generation des Unit TestingDaniel Lehner
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Florian Wolters
 
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?René Spengler
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungChristian Baranowski
 
Next Level Unit Testing
Next Level Unit TestingNext Level Unit Testing
Next Level Unit TestingDaniel Lehner
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesChristian Güdemann
 

Ähnlich wie Swk vortrag metriken (20)

Metrics we can gain from our (Kanban) system and what we can learn from ..
Metrics we can gain from our (Kanban) system and what we can learn from .. Metrics we can gain from our (Kanban) system and what we can learn from ..
Metrics we can gain from our (Kanban) system and what we can learn from ..
 
Einführung in die Software-Qualitätssicherung
Einführung in die Software-QualitätssicherungEinführung in die Software-Qualitätssicherung
Einführung in die Software-Qualitätssicherung
 
TDD mit ABAP Units
TDD mit ABAP UnitsTDD mit ABAP Units
TDD mit ABAP Units
 
Exploratives Testen – ein Überblick und Praxisbeispiele
Exploratives Testen – ein Überblick und PraxisbeispieleExploratives Testen – ein Überblick und Praxisbeispiele
Exploratives Testen – ein Überblick und Praxisbeispiele
 
Refactoring: Mythen & Fakten
Refactoring: Mythen & FaktenRefactoring: Mythen & Fakten
Refactoring: Mythen & Fakten
 
SAP Solman und Testing 2019
SAP Solman und Testing 2019SAP Solman und Testing 2019
SAP Solman und Testing 2019
 
SAP Solman und Testing 2019
SAP Solman und Testing 2019SAP Solman und Testing 2019
SAP Solman und Testing 2019
 
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...
Bewertung von Qualitätsschulden mit dynamischen Daten aus Test und Betrieb - ...
 
Softwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue VorlesungSoftwarequalität - Einführung in eine neue Vorlesung
Softwarequalität - Einführung in eine neue Vorlesung
 
Scrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für ProgrammiererScrum als agiles Vorgehensmodell für Programmierer
Scrum als agiles Vorgehensmodell für Programmierer
 
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
20191113 dev ops und continuous delivery_testautomatisierung ist trumpf
 
Software-Tests in PHP-Anwendungen
Software-Tests in PHP-AnwendungenSoftware-Tests in PHP-Anwendungen
Software-Tests in PHP-Anwendungen
 
Die nächste Generation des Unit Testing
Die nächste Generation des Unit TestingDie nächste Generation des Unit Testing
Die nächste Generation des Unit Testing
 
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
Automatisiertes Testen von Software in C++ (mit dem Test Framework Google Test)
 
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
 
Einführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software EntwicklungEinführung Vorgehensmodelle und Agile Software Entwicklung
Einführung Vorgehensmodelle und Agile Software Entwicklung
 
Next Level Unit Testing
Next Level Unit TestingNext Level Unit Testing
Next Level Unit Testing
 
Agiles Testen - Überblick
Agiles Testen - ÜberblickAgiles Testen - Überblick
Agiles Testen - Überblick
 
Die 7 Wege zum Clean Code
Die 7 Wege zum Clean CodeDie 7 Wege zum Clean Code
Die 7 Wege zum Clean Code
 
Das funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPagesDas funktionierte doch schon einmal! - JUnit Testing in XPages
Das funktionierte doch schon einmal! - JUnit Testing in XPages
 

Swk vortrag metriken