Definition eines Software-Fehlers. Blizzard Entertainment besteht darauf, dass mein "Bug" überhaupt kein Bug ist. Haben sie recht [geschlossen]

18

Wikipepdia zufolge

Ein Softwarefehler ist der häufig verwendete Begriff, um einen Fehler, einen Defekt, einen Fehler, einen Fehler oder einen Fehler in einem Computerprogramm oder -system zu beschreiben, der ein falsches oder unerwartetes Ergebnis erzeugt oder dazu führt, dass es sich unbeabsichtigt verhält.

Kürzlich habe ich in StarCraft 2 einen "Bug" gefunden, der zu einem unerwarteten Ergebnis führt: http://eu.battle.net/sc2/en/forum/topic/2868627470

Das Problem ist, dass wenn ich StarCraft 2 für längere Zeit minimiere, das Spiel keine Unterbrechung oder ein Timeout erzeugt. Es trennt sich jedoch nach dem ersten Kampf und verliert manchmal auch Spieldaten (Matchstatistiken).

Leider laut Blizzard:

Das Spiel ist nicht so konzipiert, dass es für einen so langen Zeitraum auf ein Minimum beschränkt bleibt. (Blizzard) kann ein solches Verhalten nicht als fehlerhaft ansehen, da StarCraft II nicht stundenlang minimiert werden soll.

Also, ist mein "Bug" wirklich ein Bug?

TeleShoTTgun
quelle
31
Sicher, es ist ein Fehler, aber sie werden ihn nicht beheben, da sie diese Situation nicht als unterstützt ansehen (dh da sie nicht so ausgelegt ist, wenn Sie versuchen, sie so zu verwenden, Sie) sind auf eigene Faust). Und natürlich gibt es eine einfache Umgehungsmöglichkeit - tun Sie das nicht.
Oded
17
Für die Aufzeichnung handhabte der Blizzard Repräsentant die Situation sehr schlecht. Sie hätten sagen sollen: "Vielen Dank, dass Sie diesen Fehler gemeldet haben. Wir werden ihn in unser System eintragen und ihn beheben, sobald unsere Entwickler ihn für vorrangig halten." Die implizite Annahme wäre, dass es niemals eine Priorität werden wird. Meiner Meinung nach sehr schlecht behandelt.
Riwalk
29
@ Stargazer712 Blizzard hat das genau richtig gemacht. Sie sollten nicht die Erwartung aufstellen, dass sie einen Fehler beheben, den sie nicht beheben möchten.
MattBelanger
3
Um fair gegenüber TeleShoTTgun zu sein, sollte Blizzard zumindest definiert haben, was als "eine lange Zeitspanne" gilt. Ich könnte das Spiel minimieren, um ein paar Minuten auf die Toilette zu gehen. Ich glaube nicht, dass das sehr lange dauert, aber Blizzard? Ich würde> 30 Minuten in diesem Zusammenhang als "lange Zeit" betrachten, aber ich weiß nicht, ob Blizzard dem zustimmen würde.
FrustratedWithFormsDesigner
3
Old Vaudeville Act - "Doktor, Doktor, es tut weh, wenn ich das tue" - "Tu das nicht!"
Cyclops

Antworten:

58

Für ein Softwareteam ist ein Fehler ein Softwareproblem, das behoben werden muss. Es müssen nicht alle Softwareprobleme behoben werden.

Das Aktualisieren von Software ist teuer. Blizzard sagt Ihnen, dass Ihr Problem ein Randfall ist. Mit anderen Worten, das von Ihnen entdeckte Edge-Case-Problem ist nicht unbedingt etwas, auf das sie getestet wurden oder das sie auf andere Weise berücksichtigen sollten. Das Problem zu beheben wird Ihnen helfen, aber höchstwahrscheinlich wird es vielen anderen nicht helfen. Die Kosten für die Behebung des Fehlers könnten jedoch hoch sein. Stattdessen können sie ihre Ressourcen in neue Funktionen investieren oder sogar Diablo III beenden.

P. Brian Mackey
quelle
3
Ich denke, Sie haben die tatsächliche, in der Praxis verwendete Definition erfasst. Ich wollte antworten, dass ein Fehler ein Verhalten ist, das sich von den Spezifikationen anderer Poster unterscheidet. Die Realität ist jedoch, dass ein Unternehmen das Problem beheben würde, wenn ein fehlerhaftes Verhalten innerhalb der Spezifikationsdefinition liegt, aber erhebliche Auswirkungen auf das Geschäft hat. Und wie Sie sagten, würde das betreffende Unternehmen das Problem nicht beheben, selbst wenn die Spezifikation besagt, dass es funktionieren sollte und nicht, wenn der ROI niedrig ist. Gute Antwort.
Matt Ryan
2
@MattRyan: Und in der realen Welt (wie ich gesehen habe) klassifiziert das Entwicklungsteam die Lösung in der Regel als "Änderungsanforderung" neu, wenn die Spezifikationen zu einem fehlerhaften Verhalten führen, das von den Geschäftsbenutzern als "Fehler" bezeichnet wird. nicht als "Bugfix". ;)
FrustratedWithFormsDesigner
3
Mit anderen Worten, ein "Fehler" oder "Defekt" stellt eine Anforderung dar, die nicht korrekt implementiert ist. In diesem Fall ist es nicht erforderlich, das Spiel auf ein Minimum zu beschränken.
Ray
22

Diese Art erinnert mich an die Katze in der Mikrowelle , insbesondere an den Fall von Frau Smith im Jahr 1983.

Der Punkt ist, Sie erwarten , dass das Produkt so funktioniert. Meistens, weil eine Reihe ähnlicher Produkte so funktionieren, dh wenn Sie sie stundenlang minimieren und dann öffnen, funktionieren sie (obwohl das Gegenteil nicht so ungewöhnlich ist, wie Sie vielleicht denken).

Frau Smith wusste aus ihrer Erfahrung, dass das Trocknen ihrer Katzen im Ofen ihnen keinen Schaden zufügen würde (vorausgesetzt natürlich, einige Vorsicht). Genauer gesagt aus Erfahrung mit all den Öfen, die sie ausprobiert hatte. Sie ging dann davon aus, dass es für den Mikrowellenherd, den sie erhielt, dasselbe sein würde. Diese Annahme war falsch. Mikrowellen sind nicht zum Trocknen von Katzen geeignet. Weder sind herkömmliche Öfen. Zufällig töten sie die Katze dabei nicht als Nebeneffekt der physikalischen Prozesse, die sie zur Wärmeerzeugung einsetzen.

Als Hersteller von Mikrowellen können Sie jetzt eine Heizschlange und eine Reihe von Sensoren in die Mikrowelle einlegen. Letztere würden feststellen, ob der aktuelle Inhalt eine Katze ist und die Spule anstelle von Mikrowellen verwenden.

Auf die gleiche Art und Weise, wie man eine Mikrowelle herstellen könnte, die zum Trocknen von Katzen geeignet ist, könnte Blizzard eine Version von SC2 entwickeln, die geeignet ist, über einen längeren Zeitraum im minimierten Zustand zu bleiben.

Persönlich wäre ich bereit, mehr Geld für eine katzentrocknungsfähige Mikrowelle zu zahlen (vorausgesetzt, ich habe ein großes Logo für die Eignung zum Trocknen von Katzen im Vordergrund, auf das ich stolz verweisen kann). Aber ich würde mich nicht für ein Spiel interessieren, das stundenlang minimiert bleiben kann.

SC2 wurde entwickelt, um bestimmte Anforderungen zu erfüllen. Ihre Erwartung gehört nicht dazu. Es steht Ihnen frei, SC2 in Bezug auf Ihre Erwartungen zu messen. Ob Blizzard sie alle in den Umfang ihrer Anforderungen einbezieht oder nicht, ist letztendlich ihre Wahl.

Alles, worüber Sie wirklich streiten könnten, ist, dass es ein Designfehler ist. Der gesunde Menschenverstand gibt vor, dass es gut genug ist, wenn nicht ein wesentlicher Teil der Benutzer durch das Design verwirrt oder damit unzufrieden ist. Ich bin sicher, wenn genügend Benutzer angeben, dass sie Ihre Erwartungen teilen, würde Blizzard nachgeben und dies in das Design einbeziehen. Dies würde Ihr Problem zu einem echten Fehler machen und Blizzard würde es beheben.

back2dos
quelle
Schöne Antwort, schreckliche Metapher. Ich bin so froh, dass jemand nicht dumm genug war, das zu tun!
Drew
11

Ich denke, dies ist ein Fall von Software, die nicht gemäß den Spezifikationen verwendet wird. Man sagt

Das Spiel ist nicht so konzipiert, dass es für einen so langen Zeitraum auf ein Minimum beschränkt bleibt.

Was bedeutet, dass sie irgendwo eine Definition dessen haben, was als "lange Zeitspanne" gilt. Wenn Sie das Programm für mehr als einen "langen Zeitraum" minimieren, geht es über seine Spezifikationen und über das hinaus, was er getestet hat (vorausgesetzt, er hat dies formal überprüft), und er garantiert nicht, was passieren wird. Natürlich wäre es schön gewesen, wenn im Handbuch irgendwo steht: "Wir haben dieses Programm nur getestet, um es für Zeiträume von nicht mehr als 10 Minuten auf ein Minimum zu beschränken. Längeres Reduzieren auf eigenes Risiko!".

Also nein, ich denke nicht, dass dies wirklich ein Fehler ist. In meinem Büro würde dies als "Benutzerschulungsproblem" bezeichnet (was ich als eine Art Kommunikationsproblem bezeichnen würde, da in diesem Fall dem Benutzer keine maximale Zeitspanne für die Minimierung der Zeit mitgeteilt wurde), da dies der Benutzer ist Verwenden Sie das Programm nicht richtig. Nicht, dass es für Blizzard viel hilft, es sei denn, sie haben es in das Handbuch aufgenommen ...

FrustratedWithFormsDesigner
quelle
3
Für ein unternehmenskritisches System haben wir eine Anforderung, die besagt, dass "dieses System n Stunden lang betriebsbereit sein muss", und wir testen und dokumentieren extern, dass das System n Stunden lang arbeitet. Wir können auch intern dokumentieren, dass wir einen Test für m> n Stunden durchgeführt haben und das System noch funktioniert hat. Für ein Spiel, das nicht geschäftskritisch ist, muss dies nicht unbedingt formal extern erfasst werden, da die meisten Leute wahrscheinlich nie auf dieses Problem stoßen werden.
Thomas Owens
8

Kein Fehler. Ein Fehler ist ein Verhalten, das nicht der Spezifikation entspricht. Wenn die Spezifikation besagt, dass der Anwendungsfall kein unterstütztes Verhalten ist, ist jedes Verhalten, das als gültig oder nicht gültig wahrgenommen wird, in diesem Anwendungsfall „beabsichtigt“.

In diesem Szenario könnte das Spiel überhaupt als undefiniertes Verhalten wahrgenommen werden.

Steven Evers
quelle
Dies ist ein gewaltiger Ausweichmanöver. Ich verachte es jedes Mal, wenn ich es höre. Weil es nur herauskommt, wenn "die Spezifikation" unvollständig ist.
Sean McMillan
2
@ SeanMcMillan: Ohne solche Dinge würde Feature Creep uns alle umbringen. In beiden Fällen handelt es sich nicht um einen Ausweichmanöver, da auf dieses Szenario ausdrücklich hingewiesen wird, dass es nicht unterstützt wird.
Steven Evers
1
@ SnOrfus: Es wurde darauf hingewiesen. Nach dem Fakt. Glauben Sie wirklich, dass es eine Spezifikation gibt, die ausdrücklich besagt, dass das Minimieren der Anwendung für mehr als x Minuten nicht unterstützt wird? Klar, es ist ein Fehler.
ThomasX
Das Problem ist, dass es keine Spezifikation gibt, die vollständig genug ist, um ein echtes Stück Software zu beschreiben. Ein Ziel von "Entspricht der Spezifikation" erzeugt keine gute Software, es ist nur eine Ausrede, dass es "nicht meine Schuld" ist, wenn etwas in der Software schlecht ist. Vielleicht lohnt es sich nicht, das Problem zu beheben, aber "die Spezifikation" ist nicht der Grund dafür.
Sean McMillan
@ThomasX Wenn man bedenkt, dass das Projekt, an dem ich arbeite, eine Seitenspezifikation von 200 bis 400 Seiten hat und tatsächlich Grenzen für die Laufzeit definiert sind. Ja, ich will.
Steven Evers
5

Wenn ich ein Entwickler-Team für dieses Projekt wäre, würde ich es einen Fehler nennen, der jedoch geringfügig ist, da er weit außerhalb der normalen Betriebserwartungen der Software liegt. Wenn überhaupt daran gearbeitet werden sollte, würde ich es wahrscheinlich eher als Lernübung für einen Junior-Programmierer oder einen neuen Mitarbeiter einsetzen als für alles andere.

Es ist eine gute Idee, diese kleinen Fehler zu verfolgen, da sie auf potenziell weiterreichende Probleme hinweisen können. Zum Beispiel der Datenspeicherungsfehler, auf den Sie gestoßen sind. Es scheint geringfügig zu sein, da es passiert ist, aber es kann auch Fälle geben, in denen Daten verloren gehen. Mithilfe eines Fehlerberichts-Systems können Sie alle Fälle finden, in denen ein ähnliches Problem aufgetreten ist, und feststellen, ob ein gemeinsames Element vorliegt. In einem komplexen System kann die Dokumentation derartiger Dinge dazu beitragen, schwerwiegendere und subtilere Fehler zu finden.

jfrankcarr
quelle
5

Ich werde mit den meisten Leuten hier nicht einverstanden sein.

Als ehemaliger Starcraft-Spieler kann ich bezeugen, dass dies ein sehr verbreitetes Verhalten ist (oder war). Benutzer verlassen das Spiel rund um die Uhr, um ihre Position in Chatrooms zu halten und an Spielen teilzunehmen, wenn sie wieder zurück sind. Ich bin mir sicher, dass das aktualisierte Battle.net einige Verbesserungen enthält, die die Notwendigkeit verringern könnten, aber es passiert immer noch viel.

Es wäre viel sinnvoller, wenn Sie nicht an einem Spiel teilnehmen könnten, ohne erneut eine Verbindung herzustellen, wenn Ihre Sitzung in irgendeiner Form oder Form abgelaufen wäre. Die Tatsache, dass Sie an Spielen teilnehmen können, nachdem Ihre Sitzung abgelaufen ist, ist ein Fehler für mich. Das Beunruhigende dabei und etwas, das noch nicht wirklich angesprochen wurde, ist, dass die Entwickler ihre Benutzer verstehen müssen. Dies mag ein Vorteilsfall sein, aber es ist ein Vorteilsfall für die sehr engagierten Spieler, auf die sie eingestellt sein sollten.

Technisch können sie behaupten, dass dies beabsichtigt ist und nicht beabsichtigt ist, es zu reparieren. Es ist immer noch ein Fehler in meinen Augen, was letztendlich an ihnen liegt, ob sie es als Fehler einstufen oder nicht. Das heißt nicht, dass sich die Spieler einig sind.

Wie auch immer, ich dachte, ich würde eine etwas andere Antwort geben als bisher.

Adrian Schneider
quelle
1
Ich würde den Bildschirm für längere Zeit minimieren, wenn ich tatsächlich Starcraft spielen würde. Ich denke, die Frage, ob es sich um einen Fehler handelt, ist irrelevant, aber es scheint, als ob etwas in Ordnung wäre, und es würde mich wirklich ärgern, wenn es nicht so wäre.
PSR
Einverstanden - dies sollte als Fehler eingestuft werden, egal ob es sich um einen Fehler mit sehr niedriger Priorität handelt. Während sie vielleicht sagen, dass es nicht unterstützt wird, das Spiel über einen längeren Zeitraum hinweg minimiert zu lassen, was genau macht einen langen Zeitraum aus? Woher wissen sie, dass dasselbe Problem nicht auftritt, wenn es 10 Minuten lang minimiert wird? Zumindest sollte ein Spiel-Timeout entworfen und implementiert werden, das den Benutzer trennt, wenn es länger als x Minuten minimiert bleibt, wenn er nicht beabsichtigt, solche Aktionen zu unterstützen.
Gavin Coates
4

Ein Fehler könnte vernünftigerweise als "jede Abweichung vom beabsichtigten Verhalten der Software" definiert werden.

Offensichtlich haben sie (und es ist ihre Software, damit sie bestimmen können, wie sie sich verhalten soll) nie beabsichtigt, dass die Software dieses Szenario handhabt, so dass diese Definition eines Fehlers nicht erfüllt wird.

Was ich jedoch sagen würde, ist, dass zumindest die Art und Weise, wie mit dieser Bedingung umgegangen wird, suboptimal ist.

Müll rein, Müll raus (das heißt, der Benutzer tut etwas Dummes oder Schlechtes oder Unerwartetes und als Ergebnis passiert etwas Schlechtes) wurde als schlechter Verhaltensstandard angesehen. Ich würde zumindest sagen, dass es eleganter sein sollte, wie es mit dieser Bedingung umgeht.

Also nicht unbedingt ein Bug, sondern eine schlechte Handhabung eines Edge-Cases.

Das heißt, wenn ich sie wäre, würde ich es wahrscheinlich nicht für angebracht halten, dies zu reparieren (zu teuer für zu wenig Nutzen), obwohl ich es dem Team zur zukünftigen Bezugnahme erwähnen könnte, dass es etwas war, mit dem sie möglicherweise besser umgegangen sind.

Jon Hopkins
quelle
1

Die Definition eines Fehlers hat nichts mit dem Verhalten der Software zu tun. Ein Fehler wird basierend darauf definiert, ob das Verhalten der Software seiner Absicht entspricht. Und wer soll sagen, was die Absicht war? (Da ich hier mit Programmierern zu tun habe, werde ich den ersten Satz klarstellen - es gibt kein mögliches Softwareverhalten, das an und für sich einen Fehler darstellt).

Denken Sie daran, dass ein Fehler in der Regel von Software-Entwicklern behoben werden soll. Die Definition eines Fehlers basiert also auf dem, was behoben werden soll. Zum Beispiel ist "mehr als 50% der Zeit korrekt zu arbeiten eine Funktion, die wir in zukünftigen Versionen veröffentlichen wollen". Etwas kann so definiert werden, als wäre es kein Fehler, wenn man so tut, als ob die Software dieses spezielle Problem niemals lösen würde. In der Praxis ist das, was einen Bug ausmacht, eine rein politische Überlegung.

(Nebenbei bemerkt, dies ist beides. Für einen Client, der nicht für Fehlerbehebungen, sondern für Neuentwicklungen bezahlen muss ", bedeutet dies nichts, woran ich gerade gedacht habe, aber was ich jetzt habe ist zu 100% impliziert von den Dingen, die ich erwähnt habe "ist eindeutig ein Fehler.)

bA
quelle
Ist es nicht OpenBSD, das alles, was nicht richtig dokumentiert ist, als Fehler deklariert, egal was es ist?
Canageek
1

Ich würde nicht in Betracht ziehen, einen Fehler nicht zu entfernen. Es ist nur ein Fehler, wenn die Verbindung (beabsichtigt, beabsichtigt) getrennt werden sollte und dies nicht der Fall ist. Ich würde anrufen, was Sie eine Feature-Anfrage eingereicht haben.

Das heißt, Datenverlust nach dem Kampf - das könnte der Fehler sein. Ich weiß nicht viel über Starcraft, aber ich vermute, das ist nicht beabsichtigt.

GroßmeisterB
quelle