软件错误的定义。暴雪娱乐公司坚称我的“错误”根本不是错误。对吗 [关闭]


18

根据Wikipepdia,

软件错误是用于描述计算机程序或系统中的错误,缺陷,错误,故障或错误的通用术语,该错误,缺陷,错误,故障或错误会导致产生错误或意外的结果,或导致其行为异常。

最近,我在《星际争霸2》中发现了一个“错误”,该错误会产生意外的结果:http : //eu.battle.net/sc2/en/forum/topic/2868627470

问题是,如果我长时间保持StarCraft 2最小化,则游戏不会断开连接或产生任何形式的超时。但是它确实会第一次战斗断开连接,有时还会丢失游戏数据(比赛统计信息)。

不幸的是,据暴雪说:

游戏的设计不能让它保持如此长时间的最小化。(暴雪)不能将此类行为视为错误,因为《星际争霸2》并非要在数小时内最小化。

那么,我的“错误”真的是错误吗?


31
当然,这是一个错误,但是他们不会修复该错误,因为他们不认为这种情况是受支持的(例如,由于它并非旨在以这种方式工作,因此,如果您尝试以这种方式使用,由您自己决定)。当然,有一个简单的解决方法-请勿这样做。
Oded

17
根据记录,暴雪代表处理的情况非常差。他们应该说:“谢谢您报告此错误。我们将把它输入我们的系统中,并在开发人员认为优先时将其修复。” 隐含的假设是它将永远不会成为优先事项。我认为处理得很差。
riwalk

29
@ Stargazer712暴雪完全正确地处理了这个问题。他们不应该期望他们会修复无意修复的错误。
MattBelanger

3
为了公平对待TeleShoTTgun,我认为暴雪应该至少定义了“很长一段时间”。我可能会尽量减少游戏,以便去洗手间几分钟。我认为这不会很长时间,但是暴雪会吗?在这种情况下,我认为> 30分钟是“漫长的一段时间”,但我不知道暴雪是否会同意。
FrustratedWithFormsDesigner

3
古老的杂耍表演-“医生,医生,我这样做会很痛 ”-“不要那样做!”
独眼巨人

Answers:


58

对于软件团队而言,错误是需要修复的软件问题。并非所有软件问题都需要修复。

更新软件很昂贵。暴雪告诉你,你的问题是一个极端的情况。 换句话说,您发现的极端案例问题不一定是他们测试过的问题或需要考虑的问题。解决该问题将对您有所帮助,但很可能对其他许多问题均无济于事。但是,修复错误的成本可能很高。相反,他们可以将资源投入到新功能中,甚至可以完成Diablo III。


3
我认为您已经掌握了实际的实践定义。我要回答的是,错误是指与其他发布者一样与规范不同的任何行为。但是现实是,如果错误行为在规范定义之内但对业务产生了重大影响,则公司会予以解决。就像您说的那样,即使规范说它应该工作也不能,但如果投资回报率很低,相关公司也不会解决它。好答案。
Matt Ryan

2
@MattRyan:在现实世界中(如我所见),如果规范导致业务用户称其为“错误”的错误行为,则开发团队通常会将解决方案正式归类为“变更请求”,而不是 “错误修复”。;)
FrustratedWithFormsDesigner

3
换句话说,“错误”或“缺陷”表示未正确实现的要求。在这种情况下,不需要最小化游戏。

22

这让我想起了微波炉中的那只猫,尤其是1983年史密斯夫人的情况。

关键是,希望产品以这种方式工作。通常是因为许多类似的产品都是这样工作的,即,如果将它们最小化几个小时然后打开它们,它们就会起作用(尽管相反的情况并不像您想的那样普遍)。

史密斯太太从她的经验中知道,在烤箱中烘干猫不会伤害它们(当然要谨慎一点)。根据她尝试过的所有烤箱的经验,更准确地说。然后,她认为微波炉和送给她的微波炉是一样的。这个假设是错误的。微波炉不适合干猫。传统烤箱也不是。它们只是在过程中没有杀死猫,这是它们用来产生热量的物理过程的副作用。

现在,作为微波生产商,您可以在微波中放置加热线圈和多个传感器。后者将确定当前内容是否为猫,并使用线圈代替微波。

以同样的方式,可以产生适合猫干的微波炉,暴雪可以制造出一种SC2,该SC2适合在最小化状态下长时间保持。

就我个人而言,我愿意为它的乐趣而花更多的钱来购买支持猫干燥的微波炉(假设我可以自豪地指出前面有一个很大的适合猫干燥的徽标)。但是我不会在乎可以持续几个小时保持最小状态的游戏。

SC2旨在满足某些要求。您的期望不属于这些期望。您可以根据自己的期望自由地测量SC2。但是,暴雪是否将所有这些对象都包括在其要求范围内,最终是他们的选择。

您真正可以争论的是,这是设计失败。常识表明,除非相当一部分用户对设计感到困惑或不满意,否则就足够了。我敢肯定,如果有足够多的用户声明他们分享您的期望,暴雪会屈服并将其纳入设计中。这将使您的问题成为实际的错误,暴雪将对其进行修复。


好的答案,令人恐惧的隐喻。我真的很高兴有人没有足够愚蠢的能力来做到这一点!
德鲁

11

我认为这是软件未按规范定义使用的情况。他们说

游戏的设计不能让它保持如此长时间的最小化。

这意味着它们在“长时期”内具有某些定义。如果将程序最小化的时间超过了“很长一段时间”,则它超出了他们的规格和他们所测试的范围(假设他们正式接受了此测试),并且他们不保证会发生什么。当然,如果某处的手册说:“我们只测试了该程序的最小化时间不超过10分钟,最小化时间长于此,后果自负,那就太好了!”。

所以,不,我认为这不是一个错误。在我的办公室,这被称为“用户培训问题”(我认为这是沟通问题的一种形式,因为在这种情况下,因为没有向用户传达最短时间的最大期限),没有正确使用该程序。除非他们将其放在手册中,否则对暴雪没有太大帮助。


3
对于关键任务系统,我们有一个要求说“该系统必须保持n小时”,并且我们在外部测试并记录该系统n小时。我们可能还会在内部记录我们进行了m> n小时的测试,并且系统仍然运行。对于不是关键任务的游戏,您不一定需要从外部正式捕获它,因为大多数人可能永远不会遇到此问题。
Thomas Owens

8

不是错误。错误是不符合规范的行为。如果规范说用例不受支持,那么该用例中的任何行为(无论是否有效)都是“设计使然”。

在这种情况下,完全可以运行的游戏将被视为不确定的行为。


这是一个巨大的闪避。每次听到它我都会鄙视它。因为它仅在“规格”不完整时出现。
肖恩·麦克米兰

2
@SeanMcMillan:如果没有这样的功能,蠕变会杀死我们所有人。无论哪种方式,这都不是躲闪,因为这是一种特别指出不支持的方案。
史蒂文·埃弗斯

1
@SnOrfus:已经指出。之后的事实。您是否真的相信有一个规范明确说明“不支持将应用程序最小化超过x分钟”?显然,这是一个错误。
ThomasX 2011年

问题是没有足够完整的规范来描述一个真正的软件。“符合规格”的目标不会产生好的软件,这只是当软件中的某些问题是“不是我的错”时的借口。也许这不值得修复,但是“规范”不是原因。
肖恩·麦克米兰

@ThomasX考虑到我所在的项目,页面规格为200-400,并且确实为运行时定义了边界。是的,我愿意。
史蒂文·埃弗斯

5

如果我是该项目的开发团队负责人,我会称它为Bug,但称其为次要错误,因为它远远超出了软件的正常运行预期。如果将它付诸实践,我可能会把它分配给初级程序员或新员工,作为他们的学习练习,而不是其他。

跟踪这些小错误是一个好主意,因为它们可能表示潜在的更深远的问题。例如,您遇到的数据保存错误。由于它是如何发生的,因此似乎不太重要,但在其他情况下,数据可能会丢失。通过使用错误报告系统,您可以找到所有出现类似问题的情况,并查看是否存在共同点。在复杂的系统中,将这种情况记录在文档中可以帮助您发现更严重和细微的错误。


5

我不同意这里的大多数人。

作为前星际争霸(原始)玩家,我可以证明这是(至少曾经)非常普遍的行为。用户在24/7离开游戏,以保持他们在聊天室中的位置,并在再次回来时加入游戏。我敢肯定,更新后的Battle.net会有一些改进,可能会减少对此的需求,但仍然会发生很多。

如果会话以某种方式,形状或形式过期,则不允许您不重新连接就加入游戏更加有意义。它允许您在会话期满后加入游戏,这对我来说是个错误。这里令人不安的是,开发人员需要了解他们的用户,而实际上还没有提出。这很可能是一个边缘案例,但是对于那些应该让他们满意的非常敬业的游戏玩家来说,这是一个边缘案例。

从技术上讲,他们可以说这是设计使然,而不是他们打算修复的东西。在我看来,这仍然是一个错误,最终取决于他们是否将其归类为错误。这并不意味着玩家同意。

无论如何,我认为我提出的答案与迄今为止发布的答案略有不同。


1
实际上,如果我实际玩过《星际争霸》,我会长时间缩小屏幕。我认为这是否是错误的问题无关紧要,但似乎应该处理,如果没有的话,确实会给我带来麻烦。
psr

同意-应该将其归类为错误,所有错误均属于低优先级。尽管他们可能会说“不支持长时间保持游戏最小化”,但究竟是什么构成长时间呢?他们怎么知道最小化10分钟不会发生相同的问题?至少应该设计和实现一个游戏超时功能,如果用户不打算将其最小化超过x分钟(如果他们不打算支持此类操作),则该超时将断开用户的连接。
加文·科茨

4

错误可以合理地定义为“与软件预期行为的任何偏差”。

显然,他们(以及他们的软件,以便他们确定其行为方式)从未打算让软件来处理这种情况,因此它不符合此bug的定义。

但是,我要说的至少是次优的是它处理这种情况的方式。

垃圾回收,垃圾回收(即用户做一些愚蠢或不良或意外的事情,并因此而发生不良事情)被认为是不良的行为标准。我至少要说它在处理这种情况时应该更优雅。

因此,严格来说并不是错误,而是对边缘情况的处理不善。

就是说,如果我是他们,那不是我应该考虑解决的问题(为了太少的利益而付出昂贵的代价),尽管我可能会提请团队参考,以备将来参考,他们可能会更好地解决。


1

错误的定义与软件的行为无关。 根据软件的行为是否符合其意图来定义错误。谁在说什么呢?(由于我在这里与程序员打交道,所以我将澄清第一句话-没有可能构成错误的软件行为)。

请记住,通常,错误是软件开发人员应该修复的问题。因此,错误的定义基于他们想要修复的问题。例如,“我们计划在将来的版本中发布超过50%的时间正常工作的功能”。 通过假装该软件从未打算解决该特定问题,可以将任何情况定义为不是错误。因此,实际上,构成错误的原因纯粹是出于政治考虑。

(顺便说一句,这是双向的。对于不必支付错误修复费用但必须支付新开发费用的客户,“它没有我刚刚想到的某些功能,但是我现在已经拥有确定确实是我提到的内容所隐含的100%”显然是一个错误。)


是OpenBSD声明任何未正确记录的东西都是bug,无论它是什么吗?
Canageek

1

我不会考虑不断开错误。如果它应该(通过设计,意图)断开连接而没有断开连接,则这只是一个错误。我称呼您提交的功能请求。

也就是说,在战斗之后丢失数据- 可能是错误。我对星际争霸并不了解,但我怀疑那不是设计使然。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.