Posts

Posts mit dem Label "Bugs" werden angezeigt.

Vertraglicher Umgang mit Fehlern

Bild
Software hat üblicherweise Fehler - auch produktionsreife Software am Stand der Technik muss nicht völlig fehlerfrei sein . Fehler sind Mängel und gehören daher allesamt im Rahmen der Gewährleistung oder Wartung behoben. Doch welche zuerst? Was, wenn ein Fehler sich nicht beheben lässt. Und wie Fehler von Verbesserungswünschen abgrenzen? Das (und viel mehr) fehlt üblicherweise in Wartungsverträgen . Kritische Fehler müssen immer zeitnah gelöst werden. Tatsächlich?  Gemäß IEEE 1 ist die Kritikalität (impact bzw. severity) eines Fehlers: "Die aus Sicht des Software-Engineerings stärkste Auswirkung, die der Fehler hat bzw. haben könnte". Auch die ISTQB berücksichtigt die Kritikalität für Anwender nicht. 2   →  Möchte man sicherstellen, dass für die Anwender kritische Fehler zeitnah gelöst werden, so muss man das vertraglich festhalten. Dabei kann man sich einer Kategorisierung der Fehler nach Fehlerfolgen angelehnt an DIN 55350-31 bzw DIN 40080 bedienen und diesbe...

Wieviele Bugs darf eine Software haben? (Teil 2 - Fehleranzahl abschätzen)

Bild
Kann man wissen, wie viele Fehler sich in einer Software verstecken? Exakt kann man das mit akzeptablem Aufwand nie wissen – aber es lässt sich abschätzen. Das ist notwendig zur Bewertung potentieller Risiken einer Software, aber auch zur Abschätzung der Fehlerdichte (siehe Wieviele Bugs darf eine Software haben? (Teil 1 - Fehlerdichte) ). Dazu kann man sich folgender Erkenntnisse aus der Literatur bedienen: Während der Entwicklung entstehen programmiersprachenunabhängig zwischen 30 und 50 Fehler pro 1.000 Zeilen Sourcecode (= KSLOC). 1 Mittels Unit-Tests bzw. TDD können im Schnitt 30 - 45 % der Fehler gefunden bzw. vermieden werden. 2 Formale Code-Inspections finden/verhindern 45-70% der restlichen Fehler 3 Gutes Pair-Programming findet/verhindert 40- 60 % der (restlichen) Fehler 3 Code-Reviews finden/verhindern 20- 40 % der restlichen Fehler 3 Basierend auf diesen Erkenntnissen kann man nun abschätzen, wieviele Fehler in der Software nach den typ...

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

Bild
"Fehlerfreie Software gibt es nicht" - dieser Ausspruch ist zwar nicht korrekt 1 , üblicherweise aber verlangt der Stand der Technik (da er zielgerichtet und somit wirtschaftlich sein muss) keine Fehlerfreiheit bei Software. Aber ist es deshalb ok, wenn eine Software beliebig viele Fehler enthält? 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 Produkti...
CC BY-NC-SA 3.0 AT Sebastian Dietrich, e-movimento