Wo entstehen Softwarefehler?
Fehler in der Software sind unvermeidlich. Eine häufige Fehleinschätzung ist, dass die Fehler nur durch fehlerhaften Code verursacht werden. Dies ist NICHT der Fall. Tatsächlich werden mehr Fehler durch schlechte Anforderungen, schlechte Architektur oder schlechtes Design (insgesamt) verursacht als durch schlechten Code.
Normalerweise wird das Konzept eines Defekts oder Fehlers als „Nichtkonformität mit Anforderungen“ betrachtet. Wenn die Anforderungen jedoch falsch sind, könnte dann trotzdem ein Fehler vorliegen? Ja! Ein Fehler oder Defekt ist die Nichterfüllung des gewünschten Ergebnisses. Wenn das gewünschte Ergebnis schlecht beschrieben ist (z. B. schlechte Anforderungen), liegt immer noch ein Fehler vor, selbst wenn der Code genau das tut, was die spezifische Anforderung beschreibt.
Wir müssen ganzheitlicher über Qualität und die Art und Weise nachdenken, wie wir die Ziele oder Ergebnisse erreichen können.
Was sind also die Hauptursachen für Softwarefehler und warum sollte uns das interessieren?
Indem wir die Grundursachen von Softwarefehlern untersuchen und herausfinden, wo und wann die Fehler zuerst auftreten, können wir bessere Möglichkeiten finden, sie in Zukunft zu vermeiden. Unser Ziel ist es Finden und beheben Sie die Probleme so früh wie möglich, sodass sie von Benutzern nicht wahrgenommen werden.
Aus der obigen Grafik lässt sich interessanterweise erkennen, dass mehr Fehler auf die Arbeit vor der Codierung zurückzuführen sind als auf die Codierung selbst. Das heißt, die Summe der Mängel aus Anforderungen, Architektur und Design ist größer als die Codierungsfehler. Da der Code auf der Grundlage der vorherigen drei aufgebaut ist, werden wir am Ende das Falsche oder auf die falsche Weise codieren, es sei denn, wir beheben zuerst diese Fehler vor der Codierung.
Fehlerpotenzial
Das Fehlerpotenzial ist die wahrscheinliche Anzahl der in jedem Artefakt erzeugten und latenten Fehler. Wenn wir beispielsweise einen Tag damit verbringen, Anforderungen zu schreiben, ist es unvermeidlich, dass wir ein paar Fehler machen. Wir können dann sagen, dass aufgrund der Größe der Anforderungen ein Fehlerpotenzial besteht. Mithilfe einer universellen Metrik für die Größe (dem Funktionspunkt) können wir Fehlerpotenziale verschiedener Artefakte vergleichen.
Wenn Sie das Fehlerpotenzial verstehen, können Sie den nächsten Schritt unternehmen und die Schritte in Betracht ziehen, die erforderlich sind, um diese Fehler zu erkennen, zu beseitigen und dann zu überprüfen, ob sie beseitigt wurden.
Fehlerursprünge
Fehlerursprung (Fehler pro Funktionspunkt) | Am besten | Durchschnitt | Am schlimmsten |
---|---|---|---|
Anforderungen | 0.34 | 0.70 (16.5%) | 1.35 |
Architektur und Design | 0.67 | 1.05 (25%) | 1.78 |
Code | 0.44 | 1.15 (27%) | 2.63 |
Sicherheitsmängel | 0.18 | 0.25 (6%) | 0.4 |
Unterlagen | 0.20 | 0.45 (10.5%) | 0.54 |
Schlechte Korrekturen | 0.39 | 0.65 (15%) | 1.26 |
Gesamt | 2.22 | 4.25 | 7.96 |
Gemessen in Fehlern pro Funktionspunkt für ein 1000-FP-System. Quelle: S. 256. Capers Jones, Quantifying Software, 2018 CRC Press.
Wir sollten von der Prämisse ausgehen, dass ein Team, das Software entwickelt, keine perfekte Arbeit leisten wird, aber hervorragende Arbeit leisten kann. Im Durchschnitt werden sie jedoch durchschnittliche Arbeit leisten. Und bei jeder Wissensarbeit schleichen sich Fehler ein. Es ist sehr nützlich, die Idee des Fehlerpotenzials zu berücksichtigen. Unter Fehlerpotenzial versteht man die Vorstellung, dass ein bestimmtes Stück Software wahrscheinlich eine bestimmte Anzahl von Fehlern aufweist, sofern diese Fehler nicht beseitigt werden. Das Fehlerpotential variiert je nach Größe. Das bedeutet, dass eine große Anwendung eher fehlerhaft ist als eine kleine.
Erreichen Sie eine bessere Qualität
Der zeitaufwändigste Aspekt der Softwareentwicklung ist das Finden und Beheben von Fehlern.
Bei agilen Projekten können wir feststellen, dass bis zu 40% des Gesamtaufwands Nacharbeiten sind, die größtenteils auf schlechte Qualität der Vorcodierungsarbeiten zurückzuführen sind. Der größte Teil dieses verschwendeten Aufwands lässt sich vermeiden, indem man von Anfang an – bevor mit der Codierung begonnen wird – mehr auf die Qualität achtet. Alles, was getan werden kann, um Fehler zu vermeiden, sollte ernst genommen werden. Fehlervermeidung und Fehlerprävention erfordern Proaktivität.
Um vollständig zu verstehen, wie wir den Weg zu hervorragender Qualität beschleunigen können, müssen wir Folgendes berücksichtigen:
- Fehlerpotenziale
- Fehlererkennung
- Fehlervermeidung
- Mängelbeseitigung
Diese müssen zumindest im Kontext von Anforderungen, Design, Code und Tests berücksichtigt werden. Mit anderen Worten, beginnend mit den Anforderungen:
- Was ist der Anforderungsmangel? Potenzial?
- Wie werden wir entdecken die Anforderungen Mängel?
- Wie können wir vermeiden die Anforderungen Mängel?
- und wie können wir entfernen die Anforderungen Mängel?
Wiederholen Sie dieselben Fragen für Design, Code und Tests. Erfahren Sie, wie ScopeMaster potenzielle Anforderungsmängel findet, sodass Sie diese problemlos beheben können.
ScopeMaster hilft Ihnen dabei Fehler verhindern, indem Sie sicherstellen, dass Ihre Anforderungen von hoher Qualität sind.
Bis zu 35%-Produktionsfehler sind auf mangelhafte Anforderungen zurückzuführen
Im Januar 2021 würdigte Accenture den Software-Intelligence-Forum das so viele wie 35% der Produktionsfehler werden durch Anforderungsprobleme verursacht, nach ihren Daten basierend auf 1000 Projekten. Dies bedeutet, dass bei den meisten Projekten die Qualitätssicherung der Anforderungen fehlschlägt. Darüber hinaus gehören weitere Anforderungsprobleme zu den teuersten, die nach Beginn der Codierung behoben werden müssen. Wege zur Behebung von Anforderungsproblemen lassen sich durch eine Kombination aus Bildung, Zeit, Aufmerksamkeit für Qualität und Automatisierung erreichen. Hier kann ScopeMaster helfen, ScopeMaster findet zuverlässig 50% von Anforderungsproblemenund helfen Ihnen auch dabei, diese schnell zu beheben. Insgesamt hilft Ihnen die Verwendung von ScopeMaster dabei, Probleme zu finden und zu beheben zehnmal schneller als zu versuchen, dasselbe manuell zu tun.
Um potenzielle Anforderungsmängel zu erkennen, müssen wir die Anforderungen sehr detailliert untersuchen. Glücklicherweise übernimmt ScopeMaster, das weltweit erste und fortschrittlichste Software-Anforderungsanalysetool, die schwere Arbeit für uns.