Questions tagged «bug»

有关错误的元标记。请不要使用它。

21
在代码中留下故意的错误以供测试人员查找
我们在公司没有这样做,但是我的一位朋友说他的项目经理要求每个开发人员在产品进行质量检查之前添加故意的错误。它是这样工作的: 在产品进行质量检查之前,开发团队在代码中的随机位置添加了一些故意的错误。他们适当地备份了原始的有效代码,以确保最终产品没有附带这些错误。 测试人员也将被告知这一点。因此,他们将进行艰苦的测试,因为他们知道存在错误,并且未找到它们可能被认为是能力不足的标志。 如果发现错误(故意的或其他),则将报告它们,以供开发团队修复。然后,在产品进入第二级质量保证之前,开发团队会在代码的相关部分中添加另一个故意的错误。项目经理说,测试人员应该像开发人员那样思考,并且他/她应该在进行更改的部分中期待新的错误。 好吧,这是怎么回事。他们说这种方法具有以下优点。 测试人员将始终保持警惕,他们将疯狂地进行测试。这可以帮助他们发现隐藏的(非故意的)错误,以便开发人员可以对其进行修复。 测试人员以错误为食。找不到任何错误会影响他们的士气。因此,给他们一个容易找到的人会帮助他们的士气。 如果您忽略了最终产品附带这些故意错误之一的情况,那么在考虑采用这种方法之前,我们还应考虑哪些其他缺陷? 一些说明: 他们在源代码管理中正确备份了原始代码。 当测试人员发现故意的错误时,开发团队将忽略它。如果测试人员发现了非故意(原始)错误,则开发团队首先检查该错误是否由任何故意的错误引起。也就是说,开发团队首先尝试在原始工作代码上重现该代码,并尝试对其进行修复。 只需忽略质量检查和开发团队之间的关系问题。我是在程序员而不是在工作场所上专门问这个问题的。考虑到质量保证和开发团队之间的融洽关系,他们在下班后聚会。项目经理是一位很好的老绅士,他随时准备支持两个团队(Godsend)。

16
有什么方法可以更快地解决错误吗?我刚刚受到老板的警告[关闭]
我的老板刚刚告诉我,我将在星期一收到负面的绩效评估。他想和我谈谈为什么我这么慢,为什么我的错误修复率这么低。 我喜欢编程和解决问题,但实际上确实发现我的工作真的很辛苦。 实际上,我已经当了10年程序员。但这是我的第一个多线程嵌入式linux工作-我已经在这里工作了2年,对每个人来说,我仍然在努力挣扎。而且我认为我已经变得如此沮丧和边缘化,以至于我失去了工作之初的很多热情。 有没有人遇到过类似的情况?如何提高错误修复率? 更新:我进行了审查。我参加了一个为期3个月的“员工发展计划”(Dunk提到的那种)。不知道我是否可以解决这个问题。但是,即使我必须继续前进,我也从这次经历中学到了很多东西。 另一个更新 自第一次审核以来,大约有6周。我对面临同样情况的任何人的建议是要谦虚接受批评并从错误中吸取教训。并且不要害怕看起来愚蠢。提出很多问题。让人们知道您正在尝试学习,并不断询问直到您理解为止。但是要做好准备,使其不起作用。我正在构建代码组合……并尽力而为。 另一个更新 我很犹豫,在这里,因为我担心我无法将未来的雇主介绍给我的stackoverflow个人资料...但是,无论如何,有人读这个问题可能很有趣,但是我却真的迷失了我几周前的工作。我正在重新学习所需的所有技能-我从这里提供的建议中学到了很多。

11
“ goto”语句导致什么样的错误?有历史上重要的例子吗?
我知道,除了打破嵌套在循环中的循环之外,其他方法都是这样。该goto语句是易于出错的编程风格,因此一直被人们回避和谴责。 替代文字: “尼尔·斯蒂芬森(Neal Stephenson)认为给他的唱片公司定名为“ dengo”很可爱”, 请参见以下原始漫画:http://xkcd.com/292/ 因为我很早就学到了 对于什么类型的错误goto实际上导致什么,我真的没有任何见识或经验。那么我们在这里谈论什么: 不稳定吗? 无法维护或无法读取的代码? 安全漏洞? 还有其他东西吗? 实际上,“ goto”语句会导致哪种错误?有历史上重要的例子吗?

9
我们可以在测试软件时假设用户不会对软件执行此类愚蠢的操作吗?
例如:在Web应用程序中执行表单的功能测试时,我们将通过输入不同种类的随机输入值来测试字段。 通常,作为Web应用程序的用户,我们实际上并未在字段中输入随机值。 那么,当生产中出现此类问题的可能性较小时,合并所有可能/可能不会导致错误的测试用例有什么用呢? 注意:上面的示例仅是示例案例;此类问题可能发生在任何种类的功能/模块中。 我问这个问题只是为了知道是否要遵循任何标准做法,或者它完全取决于产品,领域和所有其他因素。

15
大型软件是否有可能达到绝对零错误状态?
我说的是20-30 +百万行代码,例如Autodesk Maya规模和复杂性的软件。 如果您只要需要就冻结开发,就可以实际修复所有错误,直到没有一个单独的错误为止(如果可以通过计算机验证此错误)?支持和反对无错误系统的存在是什么? 因为有人认为您所做的每个修复都会产生更多的错误,但是我认为那不是真的。 错误是指从用户界面中最简单的错字,到没有解决方法的更严重的预防性错误。例如,特定的脚本功能无法正确计算法线。同样,即使有解决方法,该问题仍必须解决。因此,您可以说可以手动执行此特定操作,而不使用提供的功能,但是该功能仍必须修复。

17
在诊断和修复缺陷之前坚持重现每个缺陷是否合理?
我在一家软件产品公司工作。我们拥有实施我们产品的大型企业客户,我们为他们提供支持。例如,如果有缺陷,我们会提供补丁等。换句话说,这是一个非常典型的设置。 最近,针对客户在日志文件中发现的与我方产品的集群实现中的并发数据库访问有关的异常,已发出并分配了票证给我。因此,此客户的特定配置对于此错误的发生可能很关键。我们从客户那里得到的只是他们的日志文件。 我向我的团队建议的方法是尝试在类似于客户的配置设置中重现该错误并获得可比的日志。但是,他们不同意我的方法,即我不需要重现该错误,因为该错误过于耗时,并且需要在VM上模拟服务器集群。我的团队建议我只是“遵循代码”以查看线程和/或事务不安全代码的位置,然后将更改放入简单的本地开发工作中,而不是像发生事件的环境那样的集群实现错误的来源。 对我来说,要制定一个抽象的蓝图(程序代码)而不是一个有形的,可见的表现形式(运行时再现)似乎很困难,所以我想问一个普遍的问题: 在诊断和修复缺陷之前坚持重现每个缺陷并对其进行调试是否合理? 要么: 如果我是高级开发人员,我是否应该能够阅读多线程代码并对其在所有用例场景中的工作情况有一个清晰的了解,而不是需要运行应用程序,亲自测试不同的用例场景并逐步完成代码一行一行?还是我对这种工作环境的要求很差? 调试sissies吗? 我认为,响应事故单提交的任何修复程序都应在模拟的环境中进行测试,该环境应尽可能接近原始环境。您还怎么知道它将真正解决该问题?这就像发布一款新车型时一样,没有用假人对它进行碰撞测试即可证明安全气囊确实有效。 最后但并非最不重要的一点,如果您同意我的看法: 我应该如何与我的团队交谈,以说服他们我的方法是合理,保守和防弹的?

19
编译器为何如此可靠?
我们每天都在使用编译器,就像它们的正确性一样,但是编译器也是程序,并且可能包含错误。我一直想知道这种可靠的鲁棒性。您是否曾经在编译器中遇到错误?这是什么,您如何意识到问题出在编译器本身? ...怎么做他们让编译器非常可靠?

12
哪种编程语言生成最少的难以发现的错误?[关闭]
您认为哪种语言可使普通程序员输出具有最少数量的难以发现的错误的功能?当然,这是一个非常广泛的问题,我对非常广泛和笼统的答案和智慧感兴趣。 我个人发现我花很少的时间在Java和C#程序中寻找奇怪的错误,而C ++代码具有其独特的重复性错误集,而Python /类似的语言具有其自己的一组常见和愚蠢的错误,编译器可以检测到它们用其他语言。 同样,我发现在这方面很难考虑函数式语言,因为我从未见过用完全函数式代码编写的大型复杂程序。请输入您的意见。 编辑:完全任意地澄清难以发现的错误:花费15分钟以上才能重现,或者花费1小时以上才能找到原因并修复。 如果这是重复的内容,请原谅我,但是在这个特定主题上我什么都没找到。

10
什么是schrödinbug?
这个维基页面告诉: schrödinbug是一个错误,只有在有人阅读源代码或以异常方式使用该程序后,该错误才显现出来,而该错误最初并没有起作用,这时该程序立即停止为每个人工作,直到修复。术语表补充说:“尽管……这听起来不可能,但它确实发生了;有些程序已经隐匿了schrödinbugs多年了。” 谈论的内容非常模糊。 有人可以提供一个例子说明schrödinbug的情况吗(例如在虚构的/真实的情况下)?
52 bug 

8
错误修复任务的故事要点:它适合Scrum吗?
我只是想知道我们是否应该将故事点分配给错误修复任务。我们的问题跟踪软件JIRA没有Bug类型问题的故事点字段(仅适用于Story和Epic)。 我们是否应该将Bug问题类型添加到Story Points字段的适用问题类型中?优缺点都有什么?它适合Scrum吗?
50 agile  scrum  bug  user-story 

1
什么是未分类的错误?
我是本科生,学习计算机科学。当我尝试向多个项目报告错误时,我遇到了很多未经分类的分类。网络搜索并没有真正解释这意味着什么。 你能告诉我什么是未分类的错误吗?

13
我的故事点数比平均水平高4-5倍,但错误产生率却是平均水平的一半。图说它的错误多出2倍,如何处理?
因此,通常公认的是,顶级程序员可以比普通程序员产生更多/更好的代码。 人们也普遍认为,对于程序员而言,代码中的错误率相对恒定。 相反,它倾向于受到编写代码时和编写代码后使用的过程的影响。(据我了解)人类倾向于以相当恒定的速度犯错误-更好的程序员只会注意到更多的错误,并且会更快地解决它们。 请注意,以上两个断言都来自史蒂夫·麦康奈尔(Steve McConnell)的Code Complete,因此这不是不同观点的问题。 因此,我最近开始在代码中看到这一点。我可以像其他同等人(以团队估计的故事点来衡量)的代码量提高大约4-5倍,并且质量更高(基于性能指标和签入后所做的更改数量)。但是我仍然会犯错误。在进行更好的单元测试,更好地理解代码的功能以及更好地了解代码审查时的问题之间,我没有产生4-5倍的错误数。 但是我仍然产生的质量保证发现的错误是我团队中其他开发人员的两倍。您可能会想到,这会导致非技术人员进行度量标准测量时出现一些问题(请参阅:我的老板)。 我试图指出,我的错误产生率是同龄人的一半(并且修复了两倍),但是当图表显示我产生的错误数目却是两倍时,这是很难的。 那么,如何应对生产率提高会导致错误数量增加这一事实呢?

9
代码维护:要在代码中添加注释还是仅将其留给版本控制?
我们被要求在我们对代码进行的每个更改中添加带有开始标签,结束标签,描述,解决方案等的注释,作为修复错误/实现CR的一部分。 我担心的是,这会带来任何附加值吗?实际上,我们具有版本控制历史记录中的所有详细信息,这将有助于我们跟踪每个更改? 但是我的领导者坚持将注释作为一种“好的”编程习惯。他们的论据之一是,当必须对CR进行范围界定/更改时,如果没有评论,那将很麻烦。 考虑到这些更改将主要在代码之间进行,是否真的有助于为我们所做的每一个更改添加注释?我们不应该把它留给版本控制吗?

14
修复错误,还是等待客户找到它们?
其他人看到错误时会修复错误,还是等到崩溃/数据丢失/人死后才修复错误? 例子1 Customer customer = null; ... customer.Save(); 该代码显然是错误的,而且无法解决-在空引用上调用方法。它碰巧不会崩溃,因为Save碰巧不访问任何实例数据;因此就像调用静态函数一样。但是任何地方的任何微小更改都可能突然导致不会崩溃的代码损坏:开始崩溃。 但是,更正代码也是不可想象的: Customer customer = null; ... customer = new Customer(); try ... customer.Save(); ... finally customer.Free(); end; 可能会导致崩溃;一个没有通过全面测试的单元测试和手动用户测试发现的。 例子2 float speed = 0.5 * ((G * mass1 * mass2) / R) * Pow(time, 2); 认识物理学的人会认识到分母应该是R 2。 代码是错误的,这是绝对错误的。高估速度会导致反火箭发射得太早,杀死所有飞船上的人。 但是也有可能过高估计速度掩盖了另一个问题:在航天飞机移动得太快时,安全气囊无法展开。如果我们突然修改了代码: float speed = …
35 code-quality  bug 

7
谁应该为修复/错误付费?[关闭]
因此,我刚刚开始从事台式机/网站开发方面的自由职业,并且这位已经接受了我的工作的客户开始为我付费,每次他发现错误等时,都会付钱给我。自由。这样可以吗,还是应该开始收取抚养费? 哪种方法最好地处理可能已经接受并完成的修复程序?

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.