Gibt es eine Obergrenze für die Anzahl der Fehler in einem bestimmten Programm? Wenn die Anzahl der Anweisungen bekannt ist, könnte man sagen, dass das Programm nicht mehr als 'n' Fehler enthalten kann? Zum Beispiel, wie viele Fehler könnte die folgende Funktion enthalten?Obergrenze der Fehler in einem bestimmten Programm
double calcInterest(double amount) {
return -O.07/amount;
}
Ein Parser vier Begriffe in der Funktion zählen würde, und ich diese Fehler zählen kann:
- falsche Nummer Syntax
- falschen Zinssatz (Geschäftsanforderungen Fehler)
- falsche Berechnung (sollte multiplizieren)
- Potential durch Null teilen
Offensichtlich ist die Anzahl der Fehler bei einer endlichen Anzahl von Anweisungen nicht unendlich. Alternativ könnte man sagen, dass die Funktion 2^64 Eingänge akzeptiert, und von denen, wie viele die korrekte Ausgabe erzeugen. Gibt es jedoch eine Möglichkeit, eine Obergrenze formal nachzuweisen?
Was definieren Sie als eine Anweisung? –
Uhh, es gibt viel mehr als 2^8 = 256 Doppelgänger !? –
Sie verwenden die Wörter "Bug" und "Error" als gleichwertig. Der Parser enthält Syntaxfehler, Laufzeitfehler (Bugs), Logikfehler (Bugs) und Designfehler (Defects). Meine Definitionen stimmen möglicherweise nicht mit Ihren überein, aber die Probleme und ihre Erkennung unterscheiden sich. Wann und was Sie als Fehler zählen, wird die ultimative Antwort auf Ihre Frage ändern. Es gibt mindestens zwei separate "Bug" -Zahlen für Ihre Frage, Fehler im Quellcode, die die Ausführung des Programms stoppen und solche, die zur Laufzeit auftreten. – Paxic