Wieviele Bugs darf eine Software haben? (Teil 1 - Fehlerdichte)

Ab wievielen Fehlern gilt eine Software als mangelhaft bzw. nicht einsatzbereit?
Die Antwort auf diese Frage lässt sich an Hand der sogenannten Fehlerdichte (en. defect-density) klären: In der Informatik bezeichnet die Fehlerdichte die Anzahl an Fehlern pro 1.000 Zeilen Code. Die angestrebte Fehlerdichte ist idealerweise vertraglich festgelegt oder zumindest während der Analysephase mit dem Auftraggeber definiert worden. Wenn nicht, gilt der Stand der Technik, der diesbezüglich durch die Fachliteratur klar definiert ist:2
- Unbrauchbar - also nicht einmal für Previews, Teststellungen oder user-acceptance-tests verwendbar - ist eine Software bei einer Fehlerdichte > 10
- Produktionsreif - also der früheste mögliche Zeitpunkt um in Produktivbetrieb gehen zu können - ist eine Software bei einer Fehlerdichte von
- < 2 bei "normaler" Software (auf die die nächsten Punkte nicht zutrifft)
- < 1 bei sicherer Software - also z.B. Software die schützenswerte Daten gemäß DSGVO enthält
- < 0,5 bei Software, wo Fehler Menschenleben kosten könnten
- Stabil - also das was man von Softwareprodukten, Standardsoftware oder COTS Software erwartet - ab einer Fehlerdichte < 0,5 (davor gilt Software noch als "reifend")
Fazit: Wenn man bei einer Software ihre Größe (in Codezeilen) und Anzahl an Fehlern kennt, kann man ihre Fehlerdichte leicht errechnen. Die Fehlerdichte wiederum lässt darauf schließen, ob die Software hinsichtlich ihrer Fehleranzahl den Anforderungen bzw. dem Stand der Technik entspricht.
Es stellt sich nun die Frage, wie man die Anzahl an Fehlern in einer Software errechnen kann, ohne dafür erst alle Fehler finden zu müssen. Diese Frage wird im Teil 2 - Anzahl Fehler abschätzen geklärt.
1. Mittels formaler Spezifikation und Verifikation ist 100% Fehlerfreiheit möglich und beweisbar - allerdings nur zu exorbitant hohen Kosten und auch nur für relativ kleine Software möglich ↩
2. siehe z.B. Linda M. Laird, M. Carol Brennan: "Software Measurement and Estimation: A Practical Approach", S. 135, Frank Witte: "Testmanagement und Softwaretest", S. 288, Capers Jones: "Programming Productivity", S. 268 ↩
Kommentare
Kommentar veröffentlichen
Wenn du auf meinem Blog kommentierst, werden die von dir eingegebenen Formulardaten (und unter Umständen auch weitere personenbezogene Daten, wie z. B. deine IP-Adresse) an Google-Server übermittelt. Mehr Infos dazu findest du in der Datenschutzerklärung von Google (https://policies.google.com/privacy).