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?
quelle
Antworten:
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.
quelle
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.
quelle
Ich denke, dies ist ein Fall von Software, die nicht gemäß den Spezifikationen verwendet wird. Man sagt
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 ...
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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.)
quelle
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.
quelle