Diskussion:Off-by-one-Error

message: Hallo,
woher stammt diese "Fehlerkategorisierung"? Wird "um-eins-daneben" auch in der Literatur über Softwarefehler und Testen verwendet?
Ich stoße jetzt zum ersten Mal auf diesen Begriff (was natürlich nicht heißen muss, dass "off-by-one" nicht verwendet wird - der Fehler kommt leider allzu häufig in der Software-entwicklung vor, aber das es dafür einen Begriff gibt war mir bisher nicht bekannt).
Leider keine Quellenangaben dabei...
Grüße
:Der englische Begriff ist gar nicht mal so ungebräuchlich. Er wird in der Praxis häufig verwendet (insbesondere bei Software-Sicherheitsfirmen, die sich mit der Code-Analyse beschäftigen). Er hat sich (natürlich) aus dem englischen Sprachgebrauch entwickelt. Off bezeichnet dabei sowas wie Ende, Aus, Abschalten oder ähnliches Durch by wird nur der "Grund" angegeben. So gibt es zum Beispiel auch "Off by ten", wenn man um Zehn daneben gelegen hat. Da der Fehler "Off-by-one" aber nur allzu häufig begangen wird, ist er sozusagen eine extra Fehler-Kategorie geworden (sozusagen ein Standardfehler, dessen Ursache ja meistens das hier auch referenzierte Zaunpfahlproblem ist). Allerdings, die deutsche Übersetzung habe ich auch erst durch diesen Artikel erfahren und finde ihn, naja, etwas unglücklich. Das liegt wohl daran, dass es keine passende Übersetzung für das "Off by ..." gibt. Eine eher zutreffende Übersetzung für diese Wort-Kombination ist wohl "knapp daneben" (wobei das Englische durch die genaue Angabe des Wertes, um den man daneben liegt, diese Art des Fehlers "besser trifft"). -- M.vossi, 2008-04-15
::"off" ist hier wohl eher im Sinn von "weg" oder "entfernt" verwendet (vgl. "die stimme aus dem off"), so daß die Übersetzung "um eins daneben" gar nicht so schlecht ist. Auch wenn ich zugegebenermaßen bisher immer nur die englische Fassung gelesen und gehört habe. --JokerClz 00:55, 29. Jun. 2008 (CEST)
replies: text:  "Off by (Zahl)" bedeutet "um die genannte Zahl zu groß oder zu klein". Beispiel "Three times seven is 21, so the pupil's answer 31 was off by ten." Entsprechend bedeutet "off by one" soviel wie "um eins zu groß oder zu klein". Mit off im Sinne von Ende, Aus hat es nichts zu tun. --Neitram ✉ 13:34, 13. Jan. 2020 (CET)
thread_title:  Herkunft des Begriffs 

message: Häufig resultiert diese Art der Fehler aus der Verwirrung, die dadurch entsteht, dass Menschen von 1 bis N zählen, Feldindizes in vielen Programmiersprachen aber von 0 bis N–1 gehen
Dieser Satz trifft bei dem ersten Beispiel eigentlich nicht zu, weil dort kann man diese Verwirrung einfach umgehen, indem man halt for (i = 1; i <= 10; ++i) schreibt. --MrBurns 01:51, 9. Jan. 2009 (CET)
replies: text: Wie kommst du denn auf die Idee? Wenn man i mit 1 initialisiert, hat man noch einen Fehler eingebaut ;-) --DownAnUp 11:57, 19. Feb. 2009 (CET)
replies: text: Wieso, es ist doch völlig wurscht, mit welchem Wert du i initialisierst. Wenns dir besser gefällt, kannst du i auch mit dem Wert 3587 initialisieren... --MrBurns 07:17, 20. Feb. 2009 (CET)
replies: text: Äh? Weil i als index eines von 0 bis 9 indizierten Feldes dient!? --DownAnUp 00:05, 21. Feb. 2009 (CET)
replies: text: Nein, sondern weil es darum geht, den selben Vorgang 10x zu wiederholen und dafür ists wurscht, ob man den Index von 0 bis 9, von 1 bis 10 oder von 3587 bis 3596 zählen lässt. --MrBurns 01:27, 17. Jun. 2009 (CEST)
replies: text: Das Problem der Anzahl der Durchläufe mag behoben sein, aber es ist doch keine Lösung für dieses Beispiel. Man will nicht 10x den selben Vorgang machen, sondern 10x die gleiche Operation mit anderen Werten. --Zahnradzacken 00:58, 31. Dez. 2009 (CET)
thread_title:  Beispiel