Schätzen der Fehlerzahl. in Software-Dokumenten. Dr. Frank Padberg Universität Karlsruhe Mai 2003



Ähnliche Dokumente
Informationsblatt Induktionsbeweis

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

W-Rechnung und Statistik für Ingenieure Übung 11

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Erfolg und Vermögensrückgänge angefertigt im Rahmen der Lehrveranstaltung Nachrichtentechnik von: Eric Hansen, am:

MATHEMATIK 3 STUNDEN. DATUM: 8. Juni 2009

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

Statistische Thermodynamik I Lösungen zur Serie 1

Gibt es einen Geschmacksunterschied zwischen Coca Cola und Cola Zero?

Eine der Aktien hat immer einen höheren Gewinn als die andere Aktie. Ihre Aufgabe ist es diese auszuwählen.

Erfahrungen mit Hartz IV- Empfängern

Anmerkungen zur Übergangsprüfung

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

Kulturelle Evolution 12

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

1 topologisches Sortieren

Ergänzungen zum Fundamentum

Name (in Druckbuchstaben): Matrikelnummer: Unterschrift:

Universität Bonn 28. Juli 2010 Fachbereich Rechts- und Wirtschaftswissenschaften Statistische Abteilung Prof. Dr. A. Kneip. KLAUSUR Statistik B

A Lösungen zu Einführungsaufgaben zu QueueTraffic

R. Brinkmann Seite Schriftliche Übung Mathematik Stochastik II (Nachschreiber) Jan. 2007

Erstellen von x-y-diagrammen in OpenOffice.calc

Primzahlen und RSA-Verschlüsselung

Übungsaufgaben Prozentrechnung und / oder Dreisatz

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Tutorial: Homogenitätstest

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Lichtbrechung an Linsen

Vermögensbildung: Sparen und Wertsteigerung bei Immobilien liegen vorn

Umfrage in den 5er-Klassen zu Hausaufgaben in den Nebenfächern im Schuljahr 2014/15

ε heteroskedastisch BINARY CHOICE MODELS Beispiele: Wahlentscheidung Kauf langlebiger Konsumgüter Arbeitslosigkeit Schätzung mit OLS?

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Funktionaler Zusammenhang. Lehrplan Realschule

V o r w o r t. A n l e i t u n g

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

GEVITAS Farben-Reaktionstest

Pflege Ihrer implantatgetragenen Krone

Geld Verdienen im Internet leicht gemacht

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

i x k k=1 i u i x i v i 1 0, ,08 2 0, ,18 3 0, ,36 4 0, ,60 5 1, ,00 2,22 G = n 2 n i=1

Professionelle Seminare im Bereich MS-Office

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Vorkurs Mathematik Übungen zu Polynomgleichungen

Meinungen der Bürgerinnen und Bürger in Hamburg und Berlin zu einer Bewerbung um die Austragung der Olympischen Spiele

Eigene Dokumente, Fotos, Bilder etc. sichern

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Etikettendruck mit Works 7.0

Repetitionsaufgaben Wurzelgleichungen

In konstanten Modellen wird davon ausgegangen, dass die zu prognostizierende Größe sich über die Zeit hinweg nicht verändert.

Auswertung zu 5510P MES-Praktikum

Auswerten mit Excel. Viele Video-Tutorials auf Youtube z.b.

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

1. LINEARE FUNKTIONEN IN DER WIRTSCHAFT (KOSTEN, ERLÖS, GEWINN)

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

70 Prozent gegen Bahnprivatisierung

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

Data Mining: Einige Grundlagen aus der Stochastik

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Dow Jones am im 1-min Chat

Was meinen die Leute eigentlich mit: Grexit?

Daten sammeln, darstellen, auswerten

Monte-Carlo-Simulationen mit Copulas. Kevin Schellkes und Christian Hendricks

Sparen in Deutschland - mit Blick über die Ländergrenzen

SPIELBESCHREIBUNGEN DART RADIKAL SYSTEM

Individuelles Qualifikationsprofil für

Die Gesellschaftsformen

Datenbank LAP - Chefexperten Detailhandel

Anzeige von eingescannten Rechnungen

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Definition und Begriffe

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

1.Unterschied: Die Übungen sind nicht von deinem Mathe-Lehrer...

Südbaden-Cup. Ausstieg Champions

Mathematik 1: (ohne Taschenrechner) Korrekturanleitung. Kanton St.Gallen Bildungsdepartement. BMS/FMS/WMS/WMI Aufnahmeprüfung Frühling 2015

Kreativ visualisieren

Elexis-BlueEvidence-Connector

Wachstum 2. Michael Dröttboom 1 LernWerkstatt-Selm.de

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

SharePoint Demonstration

SEK II. Auf den Punkt gebracht!

Algorithmen und Datenstrukturen

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

Zeichen bei Zahlen entschlüsseln

Inhalt. Allgemeine Einführung. Argumentationsvermögen. Räumliches Vorstellungsvermögen. Begabungen und Fähigkeiten messen

Aktienbestand und Aktienhandel

Übersicht Die Übersicht zeigt die Zusammenfassung der wichtigsten Daten.

Lösung. Prüfungsteil 1: Aufgabe 1

Vorgehensweise bei Lastschriftverfahren

Informatik-Sommercamp Mastermind mit dem Android SDK

Die Interferenz von flexiblen Arbeitszeiten mit der Nutzbarkeit arbeitsfreier Zeit Ein Prädiktor für soziale Beeinträchtigungen

Energetische Klassen von Gebäuden

4 Aufzählungen und Listen erstellen

Packard Bell Easy Repair

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Mathematik Serie 2 (60 Min.)

Transkript:

Schätzen der Fehlerzahl in Software-Dokumenten Dr. Frank Padberg Universität Karlsruhe Mai 2003

Motivation beim Testen oder bei Inspektionen werden nicht alle Fehler gefunden Anzahl der unentdeckten Fehler ist nie genau bekannt Fehlerzahl ist wichtige Größe für Qualitätssicherung und Projektmanagement

Motivation beim Testen oder bei Inspektionen werden nicht alle Fehler gefunden Anzahl der unentdeckten Fehler ist nie genau bekannt Fehlerzahl ist wichtige Größe für Qualitätssicherung und Projektmanagement schätze die Fehlerzahl in einem Software-Dokument möglichst genau!

Lösungsansatz: Testreihen für Code nutze Information aus den Software-Tests zum Schätzen; z.b. Anzahl der Fehler je Test baue stochastisches Modell für Testreihen, das durch die Fehlerzahl m parametrisiert ist wende statistische Techniken an, um m aus konkreten Testergebnissen zu schätzen

Capture-Recapture-Methoden kommen aus der Biologie: Schätzen der Größe einer Tierpopulation fange Tiere, markiere sie und lasse sie wieder frei fange nochmal Tiere und zähle, wieviele markiert sind schätze die Gesamtpopulation aus dem Verhältnis zwischen markierten und nicht markierten Tieren im zweiten Fang

Urnenmodell m Fehler finde c markieren und zurück c markierte Fehler finde w Fehler davon x neue

Stochastisches Modell hypergeometrische Verteilung: p m, w ( x, c) = ( m c x ) ( ( m w ) ) c w x im Beispiel: c =3, w =4, x =2 p m, 4 (2, 3) = ( m 3 2 ) ( ( m 4 ) ) 3 4 2

Likelihood-Funktion wie wahrscheinlich ist die Beobachtung ( w, x) wenn vorher schon c Fehler gefunden wurden? die Antwort hängt von m ab definiere die Likelihood-Funktion L ( m ) = p m, w ( x, c ) w, x und c sind gemessen (also fest)

Max-Likelihood-Schätzung Schätzwert ist dasjenige m, für welches die Beobachtung ( w, x) am wahrscheinlichsten ist ein ML-Schätzwert m maximiert also die Likelihood-Funktion: L ( m ) L ( m ) m muß nicht eindeutig sein

Beispiel einer Likelihood-Funktion 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 4 L(m) = 0.0 5 0.60 6 0.60 7 0.51 8 0.43 L(m) 9 0.36 10 0.30 zwei markierte Fehler im zweiten Test ( c =3, w =4, x =2) Max-Likelihood-Schätzwert: 5 oder 6

Anderes Beispiel 0.6 0.5 0.4 0.3 0.2 0.1 0 L(m) 6 8 10 12 14 16 18 20 nur ein markierter Fehler im zweiten Test ( c =3, w =4, x =3) Max-Likelihood-Schätzwert: 11 oder 12

Noch ein Beispiel 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 L(m) 10 20 30 40 50 60 70 80 90 100 kein markierter Fehler im zweiten Test ( c =3, w =4, x =4) Max-Likelihood-Schätzwert: unendlich

Verallgemeinerung auf Testreihen Y. Tohma, R. Jacoby, Y. Murata, M. Yamamoto,... 1989 1995 R.-H. Hou, S.-Y. Kuo, Y.-P. Chang, I.-Y. Chen 1994 1997 Hypergeometric Reliability Growth Model

Notation w k : Anzahl der gefundenen Fehler in Test k x k : Anzahl der neu entdeckten Fehler in Test k c k : Summe der in den ersten k Tests gefundenen verschiedenen Fehler c k = x 1 + x 2 +... x k

Allgemeines Hypergeometrisches Modell einzelner Test k p m, wk ( x k,c k 1 ) = ( ) ( ) m ck 1 x k ck 1 w x k ( m w k ) Likelihood-Funktion für Serie von n Tests L ( m ) = p m, w1 ( x 1, 0) p m, w2 ( x 2,c 1 ) p m, w3 ( x 3,c 2 )... p m, wn ( x n,c n 1 )

Ableiten der Likelihood Funktion?! p m, w ( x, c) = ( m c )! c! w! (m w )! x! (m c x )! ( w x )! ( c w + x )! m! d p m, w ( x, c) d m =... viel zu kompliziert!

Wachstums-Quotient Q ( m ) = L ( m ) L ( m 1) = ( m w 1 ) ( m w 2 )... ( m w n ) m n 1 ( m c n ) L ( m ) wächst genau dann wenn Q ( m ) > 1 ist Q ( m ) hängt nicht von den einzelnen x k ab, und nicht von der Reihenfolge der Tests

Typischer Graph des Quotienten 1 c n Q =1 Q =0 der Graph schneidet die Gerade y =1 genau einmal für x>c n ( Padberg 2001)

Algorithmus Q schneidet y =1 einmal für x>c n Schätzwert ist die größte ganze Zahl links vom Schnittpunkt probiere Q ( c n +1), Q ( c n +2),... einfach, schnell, genau, numerisch stabil

Ein größeres Beispiel: T 19 k x k w k 1 15 15 2 29 29 3 22 22 4 37 37 5 2 21 6 5 43 7 36 56 k x k w k 8 29 48 9 4 15 10 27 30 11 27 46 12 22 24 13 21 57 14 22 69 k x k w k 15 6 72 16 7 45 17 9 36 18 5 41 19 3 64 Testreihe der Länge n =19

Schätzung für T 19 Testreihe der Länge n =19 beim Testen entdeckte Fehler: c 19 = 328 erst später entdeckte Fehler: 30 Gesamtzahl enthaltener Fehler: 358 hypergeometrischer Schätzwert: m = 366

Graph des Quotienten für T 19 2.5 2 1.5 1 0.5 328 366 536 Schätzwert 366, wahrer Wert 358

Vergleich mit anderen Schätzmodellen Modell Schätzwert Fehler (%) exponential MLE 455 + 27.1 delayed S-shaped MLE 351 2.0 inflection S-shaped MLE 347 3.1 hypergeometric MLE 366 +2.2 hypergeometric LSE 388 + 8.4 Max-Likelihood-Schätzer für das hypergeometrische Modell schneidet gut ab

Eigene Veröffentlichungen zum Hypergeometrischen Modell A Fast Algorithm to Compute Maximum Likelihood Estimates for the Hypergeometric Software Reliability Model Asia-Pacific Conference on Quality Software APAQS (2001) 40 49, IEEE Computer Society Press Maximum Likelihood Estimates for the Hypergeometric Software Reliability Model International Journal of Reliability, Quality and Safety Engineering IJRQSE (2003) erscheint in Kürze, World Scientific Publishing

Software Inspektionen [1] mehrere Inspektoren (2 bis 8) untersuchen unabhängig voneinander dasselbe Software Dokument gefundene Defekte ( Fehler, Schwachstellen, Unklarheiten) werden aufgeschrieben gemeinsames Durchsprechen der Defekte Probleme identifizieren, nicht lösen

Software Inspektionen [2] anwendbar auf alle Software Dokumente: Pflichtenhefte, Spezifikationen, Entwürfe, Code, Testfälle,... jederzeit und frühzeitig durchführbar sehr effektiv in der industriellen Praxis aufwendig von Hand, also teuer Schätzen der Fehlerzahl?

Lösungsansatz: Inspektion als Testreihe jeder Inspektor entspricht einem Test w k ist die Anzahl der Defekte, die Inspektor k gefunden hat c n ist die Anzahl der verschiedenen Defekte, die das Inspektionsteam insgesamt gefunden hat kann alles aus der 0/1 Matrix abgelesen werden

0/1 Matrix zeigt, welcher Inspektor welchen Defekt gefunden hat Inspektor Defekt A B C D Meet 5:40 1 6:29 1 1 9:32 1 4:17 1

Empirischer Datensatz 16 Inspektionen aus kontrollierten Experimenten bei NASA SEL ( Basili e.a. 1994/95 ) jeweils 6 bis 8 Inspektoren Spezifikationen als untersuchte Dokumente wahre Zahl der enthaltenen Fehler genau bekannt Datensatz ist Standard-Benchmark

Schätzung mit Hypergeometrischem Modell 34 30 26 22 18 14 10 6 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 durchschnittlicher Fehler von 24 Prozent; maximaler Fehler von - 67 Prozent

Schätzwert versus Anzahl der Inspektoren 30 25 20 15 Schätzwert A1 gefundene Fehler 10 1 2 3 4 5 6 7 Werte schwanken mit Anzahl der Inspektoren; Schätzwert deutlich zu niedrig (25 statt 30)

Schätzwert versus Länge der Testreihe 450 T 400 19 350 Schätzwert 300 250 200 gefundene Fehler 150 100 4 6 8 10 12 14 16 18 20 Wert stabilisiert sich bei längerer Testreihe; deutliche Schwankung bei den ersten paar Tests

Warum Capture Recapture fehlschlägt Mathematik: Testreihe ist zu kurz nur das Ergebnis dieser Inspektion geht in die Schätzung ein mit anderen Worten: kein Lernen aus der Erfahrung

Neuer Ansatz nutze Wissen aus früheren Inspektionen zum Schätzen der Fehlerzahl im neuen Dokument

Neuer Ansatz nutze Wissen aus früheren Inspektionen zum Schätzen der Fehlerzahl im neuen Dokument lerne Zusammenhang zwischen Merkmalen einer Inspektion und der Zahl der tatsächlich im Dokument enthaltenen Fehler

Neuer Ansatz nutze Wissen aus früheren Inspektionen zum Schätzen der Fehlerzahl im neuen Dokument lerne Zusammenhang zwischen Merkmalen einer Inspektion und der Zahl der tatsächlich im Dokument enthaltenen Fehler Schätzen der Fehlerzahl als Regressionsaufgabe Padberg e.a. 2002

Kandidaten für Merkmale abgeleitet aus der 0/1 Matrix TDD, AVE, MIN, MAX, STD Beispiel Inspektion A1: ( 9, 7, 6, 13, 9, 6 ) und 23 ergibt TDD AVE MIN MAX STD 23 8.3 6 13 2.4

Eingabedaten für Lineare Regression Korrelationsanalyse ergibt Rangfolge einige Stützpunkte: TDD > AVE > MIN > MAX > STD Inspektion TDD AVE Zielwert A1 23 8.3 30 B1 20 6.0 28 C1 10 3.2 18 D1 6 1.3 15

Regressionsebene Fehlerzahl 30 25 20 15 0 2 4 AVE 6 8 10 30 25 20 10 15 TDD 5 einige Datenpunkte weichen deutlich von der Ebene ab

Schätzwerte mit Linearer Regression 34 30 26 22 18 14 10 6 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Jackknife-Validierung ( leave one out ) durchschnittlicher Fehler von 11 Prozent; maximaler Fehler von 40 Prozent

Schätzwerte mit Linearer Regression 34 30 26 22 18 14 10 6 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Jackknife-Validierung ( leave one out ) durchschnittlicher Fehler von 11 Prozent; maximaler Fehler von 40 Prozent

Nicht-Lineare Regression: Neuronale Netze logist ( x ) = 1 1 + e x s i = logist ( j w ji s j ) y 1 0.9 0.8 0.7 0.6 0.5 w 35 0 w 45 0.4 0.3 0 0 0.2 0.1 0-4 -2 0 2 4 w 13 w 14 w 23 w 24 x 1 x 2

Eingabedaten für Nicht-Lineare Regression Informationsgehalt ergibt Rangfolge TDD > STD > MAX > MIN > AVE einige Trainingspunkte: Inspektion TDD STD Zielwert A1 23 2.4 30 B1 20 1.7 28 C1 10 1.5 18 D1 6 1.4 15

Nicht-Lineare Regressionsfläche Fehlerzahl 30 25 20 15 30 25 20 15 TDD 10 5 5 4 3 2 1 0 STD Netz mit zwei versteckten Neuronen; Fläche paßt sich den Datenpunkten gut an

Schätzwerte mit Neuronalen Netzen 34 30 26 22 18 14 10 6 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Jackknife-Validierung ( leave one out ) durchschnittlicher Fehler von nur 6 Prozent; maximaler Fehler von - 17 Prozent

Schätzwerte mit Neuronalen Netzen 34 30 26 22 18 14 10 6 A1 A2 A3 A4 B1 B2 B3 B4 C1 C2 C3 C4 D1 D2 D3 D4 Jackknife-Validierung ( leave one out ) durchschnittlicher Fehler von nur 6 Prozent; maximaler Fehler von - 17 Prozent

Vergleich mit anderen Schätzverfahren Methode mittlerer abs. Fehler maximaler Fehler Capture Recapture 24 % - 67 % Detection Profile 36 % + 113 % Lineare Regression 11 % + 40 % Interval Estimates 7 % + 14 % Neuronale Netze 6 % - 17 % der Regressionsansatz ist vielversprechend; weitere Validierung mit empirischen Daten ist nötig

Eigene Veröffentlichungen zum Fehlerschätzen nach Inspektionen Empirical Interval Estimates for the Defect Content After an Inspection International Conference on Software Engineering ICSE (2002) 58 68, IEEE Computer Society Press Applying Machine Learning to Solve an Estimation Problem in Software Inspections International Conference on Artificial Neural Networks ICANN (2002) 516 521, Springer LNCS 2415 (mit T. Ragg und R. Schoknecht)

Vielen Dank!