Meine Frage ist nun, wird ein Computerprogramm plötzlich ohne logischen Grund schief gehen?
Wenn Sie genau dieselbe Computerumgebung haben, führt eine Eingabe X für ein Programm immer zu demselben Ergebnis R. In der Praxis ist es selten, dass ein einzelnes Programm isoliert ausgeführt wird. Die einfachste Anwendung läuft heute unter einem Betriebssystem und teilt den Speicher mit anderen Programmen, die möglicherweise gleichzeitig in den Speicher geladen werden. Diese Programme können den Speicher so verändern, dass ein bestimmtes Programm fehlerhaft funktioniert. Dies ist beispielsweise ein bekanntes Problem bei Variablen vom Typ 'Zeiger'. Normalerweise verursachen solche Fehler ein abnormales Systemverhalten und keine falschen Berechnungsergebnisse.
In Ihrem Fall gehe ich davon aus, dass das Problem möglicherweise nicht das ist, was ich oben beschrieben habe (und normalerweise auch nicht). Das Problem kann sein, dass:
- Das Programm hat die falschen Datentypen verwendet, um das Ergebnis zu berechnen. Dieser Fehler tritt nur dann auf, wenn spezielle Werte verwendet werden.
- Das Programm hat einen Berechnungsfehler (aufgrund einer logischen Bedingung) festgestellt, den Fehler jedoch nicht behandelt und trotzdem das Ergebnis erstellt. (zB Mischen von Float und Integer-Arithmetik)
- Eine Geschäftsregel oder eine logische Bedingung wurde nicht korrekt codiert. Die eingegebenen Daten stellen diese Bedingung dar, es wurde jedoch die falsche Berechnung verwendet. (z. B. Betrag vom Kontobetrag abziehen, bevor zuerst der Betrag auf dem Konto überprüft wird).
- Verwenden von Formeln, die nur für bestimmte Zahlenbereiche gelten, die Daten jedoch unterschiedliche Bereiche enthalten. (zB Berechnung eines Zinssatzes anhand eines Wertebereichs)
Aus den oben genannten und vielen anderen Gründen geben Software-Leute so viel Ressourcen aus, um korrekte Software zu erstellen. Es treten jedoch immer noch Softwarefehler auf, aber die Fehler sind "logisch" und haben einen Grund. Der Grund ist nur nicht offensichtlich zu einigen ohne gute Forschung. Im Allgemeinen ist getestete Software vorhersehbar und führt nicht zu zufälligen Ergebnissen. Aufgrund der Komplexität einiger Programme und anderer Faktoren können sogar getestete Programme schief gehen. In diesem Fall sind Fehler jedoch logisch.
Wenn ich auf dem Server-Computer zuschlage, wird eine der vom Computer berechneten Zahlen zu einer anderen Zahl und macht die Berechnung falsch?
Die Antwort lautet im Allgemeinen Nein, Software ist in diesem Sinne nicht fragil.
Sie können die Fälle isolieren, in denen der Fehler auftritt, die Ähnlichkeit zwischen diesen Datensätzen ermitteln, die den Fehler verursachen, und den Unterschied zwischen diesen Sätzen und den anderen Sätzen ermitteln, die das richtige Ergebnis liefern. Möglicherweise können Sie die spezifischen Werte identifizieren, die das Problem verursachen. Beispielsweise stellen Sie möglicherweise fest, dass jedes Mal, wenn eine Variable einen negativen Wert hat, das Ergebnis falsch ist.
Aktualisierte Informationen zu Speicherbeschädigungsfehlern: Weitere Informationen finden Sie unter Speicherbeschädigung