Schätzung der Anzahl der Fehler im Programm. Mühlenmodell

Wie viele Fehler enthält das Programm? Dies ist eine Frage, die jeden Programmierer beunruhigt. Von besonderer Bedeutung ist das Prinzip der Fehlergruppierung , wonach das Auffinden von Fehlern in einigen Modulen die Wahrscheinlichkeit erhöht, dass in diesem Modul andere Fehler vorliegen. Es ist sehr oft unmöglich, eine genaue Antwort auf die Frage nach der Anzahl der Fehler im Programm zu geben, aber es ist möglich, eine Schätzung zu erstellen. Hierfür gibt es mehrere statische Modelle. Betrachten Sie eines davon: das Mills-Modell.

1972 schlug IBM-Supervisor Harlan Mills die folgende Methode zur Schätzung der Anzahl von Fehlern in einem Programm vor. Lassen Sie uns ein Programm haben. Angenommen, es sind N Fehler darin . Wir nennen sie natürlich . Wir führen darin zusätzliches M künstlich einFehler. Lassen Sie uns das Programm testen. Lassen Sie n natürliche Fehler und m künstliche Fehler während des Testens gefunden werden . Angenommen, die Erkennungswahrscheinlichkeit ist für natürliche und künstliche Fehler gleich. Dann gilt das Verhältnis:



Wir haben den gleichen Prozentsatz an natürlichen und künstlichen Fehlern gefunden. Daher die Anzahl der Fehler im Programm: Die



Anzahl der nicht erkannten Fehler ist gleich (Nn).

Lassen Sie beispielsweise 20 künstliche Fehler in das Programm einführen, während des Tests wurden 12 künstliche und 7 natürliche Fehler festgestellt. Wir erhalten die folgende Schätzung der Anzahl der Fehler im Programm: Die



Anzahl der nicht erkannten Fehler beträgt (Nn) = 12 - 7 = 5.

Es ist leicht zu erkennen, dass das oben beschriebene Mills-Verfahren einen wesentlichen Nachteil aufweist. Wenn wir 100% künstliche Fehler finden, bedeutet dies, dass wir 100% natürliche Fehler gefunden haben. Aber je weniger wir künstliche Fehler machen, desto größer ist die Wahrscheinlichkeit, dass wir sie alle finden. Wir werden den einzigen künstlichen Fehler einführen, ihn finden und auf dieser Grundlage bekannt geben, dass wir alle natürlichen Fehler gefunden haben! Um dieses Problem zu lösen, fügte Mills den zweiten Teil des Modells hinzu, um die Hypothese des Werts von N zu testen:

Angenommen, das Programm weist N natürliche Fehler auf. Wir führen M künstliche Fehler ein. Wir werden das Programm testen, bis wir alle künstlichen Fehler gefunden haben. Lassen Sie bis zu diesem Moment n gefunden werdennatürliche Fehler. Basierend auf diesen Zahlen berechnen wir den Wert von C :



Der Wert von C drückt ein Maß für das Vertrauen in das Modell aus. Dies ist die Wahrscheinlichkeit, dass das Modell die falsche Annahme korrekt ablehnt. Nehmen wir zum Beispiel an, dass das Programm keine natürlichen Fehler enthält (N = 0). Wir führen 4 künstliche Fehler in das Programm ein. Wir werden das Programm testen, bis wir alle künstlichen Fehler gefunden haben. Angenommen, wir finden keinen einzigen natürlichen Fehler. In diesem Fall beträgt das Maß für das Vertrauen in unsere Annahme (dass das Programm keine Fehler enthält) 80% (4 / (4 + 0 + 1)). Um es auf 90% zu bringen, muss die Anzahl der künstlichen Fehler auf 9 erhöht werden. Das Vertrauen der nächsten 5% in Abwesenheit natürlicher Fehler kostet uns 10 zusätzliche künstliche Fehler. M muss auf 19 gebracht werden.

Wenn wir annehmen, dass das Programm nicht mehr als 3 natürliche Fehler (N = 3) hat, fügen Sie 6 künstliche Fehler (M = 6) hinzu, finden Sie alle künstlichen und einen, zwei oder drei (aber nicht mehr!) Natürliche, dann das Maß Das Vertrauen in das Modell beträgt 60% (6 / (6 + 3 + 1)).

Die Werte der Funktion C für verschiedene Werte von N und M in Prozent:
Tabelle 1 - mit Schritt 1;
Tabelle 2 - in Schritten von 5;

Aus den Formeln zur Berechnung des Konfidenzmaßes lässt sich leicht eine Formel zur Berechnung der Anzahl der künstlichen Fehler erhalten, die in das Programm eingegeben werden müssen, um das erforderliche Vertrauen in die resultierende Schätzung zu erhalten:



Die Anzahl der künstlichen Fehler, die in das Programm eingeführt werden müssen, um das gewünschte Konfidenzmaß für verschiedene Werte von N:
Tabelle zu erreichen 3 - in Schritten von 1;
Tabelle 4- mit Schritt 5;

Das Mills-Modell ist recht einfach. Sein Schwachpunkt ist die Annahme der Gleichwahrscheinlichkeit, Fehler zu finden. Damit diese Annahme gerechtfertigt ist, muss das Verfahren zur Einführung künstlicher Fehler einen gewissen Grad an „Intelligenz“ aufweisen. Ein weiterer Schwachpunkt ist die Anforderung des zweiten Teils des Mills-Modells, alle künstlichen Fehler unbedingt zu finden . Und das kann nicht lange passieren, vielleicht nie.

Jetzt auch beliebt: