Testing 我们是否应该总是复制bug来验证修复?
有时我们会在生产中遇到bug,这些bug可以通过更改配置、禁用部分逻辑等方式修复 我和我的经理争论过,我们应该在本地复制bug,以确保修复工作正常进行,更重要的是,这样开发人员和QA可以将这些情况的检查作为常规版本的一部分 我的经理认为这是浪费时间,因为解决方案有效,因此没有必要在本地复制 因此: 我们是否应该尝试在本地复制以验证修复?Testing 我们是否应该总是复制bug来验证修复?,testing,qa,Testing,Qa,有时我们会在生产中遇到bug,这些bug可以通过更改配置、禁用部分逻辑等方式修复 我和我的经理争论过,我们应该在本地复制bug,以确保修复工作正常进行,更重要的是,这样开发人员和QA可以将这些情况的检查作为常规版本的一部分 我的经理认为这是浪费时间,因为解决方案有效,因此没有必要在本地复制 因此: 我们是否应该尝试在本地复制以验证修复? 如果你同意我的观点,有没有关于如何向我的经理推销这一点的建议?我非常相信在经济上可行的情况下复制bug(例如,不只是为了复制环境而将某个用户的整个硬盘复制到本地
如果你同意我的观点,有没有关于如何向我的经理推销这一点的建议?我非常相信在经济上可行的情况下复制bug(例如,不只是为了复制环境而将某个用户的整个硬盘复制到本地机器上) bug的不幸本质是,修复bug的方法通常只有一种,但有许多方法可以掩盖它,而且许多修复实际上掩盖而不是修复。您可能永远也找不到根本原因,因此该错误会再次出现,或者稍后会出现另一个看似不同的错误
如果你能找到一个发生这种情况的例子(例如,来自同一根源的两个不相关的bug),你可能会赢得老板的支持。必须在本地复制bug的最重要原因是确保在修复它时没有弄坏任何其他东西。如果修复只是一个配置或任何不需要重新编译的东西,那么这个参数就没有那么强大了,因为编译的任何东西都应该已经过测试
如果您的经理不明白这一点,那么除了向他展示实际案例,说明修复一个bug实际上会导致一些问题,这会导致比在本地复制bug更严重的延迟之外,您没有什么办法说服他。
- 您可能会在修复过程中无意中引入新的bug
- 您不能100%确定修复程序在没有测试的情况下确实修复了bug(可能在最简单的情况下除外)
你修复了这个错误。考试通过了。和所有其他测试一样。实际上,您已经修复了该错误,但没有产生其他问题。我认为这一问题的答案取决于您如何测试您的错误
- 您是否使用自动测试工具(如xUnit框架、Fit/Fitnesse等)李>
- 您是否使用自动构建过程李>
- 这个自动构建过程是否调用测试并记录结果李>
对于我的项目,我们使用subversion进行源代码控制,Jira进行活动管理,Hudson进行构建,Fitnesse和MSTest进行测试。所有这些都通过持续集成连接在一起。Fitnesse进行验收测试,MSTest进行单元测试,每次执行构建时,它们都会自动运行,为我们提供构建“良好”程度的定量指标。如果您没有重现该缺陷,您的“修复”只不过是猜测而已 虽然说单元测试是解决方案,如果你使用它们听起来不错,你就不必重现bug,但我认为它在现实世界中不起作用。事实上,他们并没有在网站上复制这个bug,这意味着复制可能不是微不足道的。这可能意味着来源很复杂。如果问题在单元测试中表现得微不足道,那么该单元测试将是bug的复制品。如果他们没有复制它,他们可能无法为它编写简单的单元测试
如果你没有复制这个bug,你就不会真正理解它。您可能在系统中发现了一个bug,但这并不保证您已经找到了客户看到的bug
如果你不能复制这个bug,你就不能确定它是否真的被修复了。您可能只是在治疗问题的症状,而不是核心问题。客户可能对同一个核心问题有不同的看法,他们的问题不会得到解决。我发现不复制错误来解决问题的想法非常奇怪 毕竟,除非你能重现问题,否则你无法确定问题出在哪里。到那时为止,这只是猜测(即使消息灵通,也只是猜测) 现在,您是否进行单元测试,我认为与本次讨论无关,因为可复制性只是一个问题,您是否发现了bug?。如果您正在测试错误的东西,在一些错误的假设下工作,或者只是误解了(可能是模糊的)关于实际发生的错误的报告,那么单元测试将不会帮助您
这就是你重现问题的原因。是的,如果可能/可行;请参见该缺陷的性质也有疑问: