软件测试修炼之道之——诊断

发表于:2013-3-27 13:13

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Ribbon    来源:51Testing软件测试网采编

  向他人学习:许多缺陷只在你的代码中发生,但有时缺陷设计广泛的使用技术,这些技术可能其他人在你之前就已经遇到过,此时,你需要做的就是向他人学习。

  奥卡姆剃刀:其他条件相同的情况下,最简单的解释是最好的。

  调试器:在代码运行的时候对代码进行检验、设置断点、单步调试、检查程序运行状态。

  为什么要使用调试器?

  1、在开发过程的初期,调试器是非常有帮助的,对代码进行单步调试由助于使我们确信软件运行的结果和我们想要的实现时一致的。

  2、如果我们想让代码以一种特定的方式运行,就可以使用调试器来确认或反驳这个想法。

  3、最后,调试器可以帮助我们探究看不懂的代码。

  然而,随着时间的推移,会发现我们使用调试器的时间越来越少,而更多的是编写一个测试程序,因为调试会话是短暂的,而测试是永久性的。测试不仅现在证明了代码是工作的,而且今后仍能证明,还能被其他的团队成员运行甚至改善。

  在诊断期间有无数的方法会误导人,因此这里我们来一起看看所谓的陷阱。

  你做的修改是正确的吗?如果你做的修改似乎没有任何效果,那么你并没有改到点子上,因此要在潜意识里时刻提高警惕。

  验证假设:了解你正在做什么样的假设,对它们进行严格的检验。

  多重原因:面临多种原因的最常见信号是一种你处于模糊状态的感觉——发生了一些似乎没有明显解释的怪事情,最富有成效的解决多原因缺陷的办法是对问题进行隔离,并找到一个方法来重现缺陷,重现的缺陷产生的原因只依赖于多个原因中的一个,而不依赖于其他原因。另一个方法是开始先找寻同一区域内其他较明显的缺陷,处理这些缺陷有时可以扫清障碍,让你理解得更透彻,使初始问题更加凸显。

  流沙:模糊感觉产生的另一个原因是一个不断变化的基础系统。面对一个不断变化的基础系统,停下手头工作并弄清是什么在变化,为什么在变化。

  调试是很艰苦的,有时简直苦不堪言,当你看不清前进的方向的时候可以试试以下的技巧:

  旁观调试法:最有效的一个扫除障碍的策略就是向其他人求助,解释问题会帮助你理清思路。

  角色扮演:角色扮演在解释和探讨问题时十分有用,特别在涉及那些互相独立的系统之间相互作用的问题时。

  换换脑筋:让潜意识帮助自己。

  做些改变:有时候,完全陷入困境之中,做些改变是十分必要的,任何改变都可以,也许它不会告诉你任何东西,但有时它会让你感到惊奇,让你惊奇的事总会教给你一些东西。

  福尔摩斯原则:当你排除了一切不可能后,无论剩下什么,无论它多么不可思议,也一定是真相。

  坚持:虽然有时候看起来不是这样,但实际上任何一个缺陷都是可以被诊断的。只要有足够的时间,付出足够的精力和决心,一定会解决的。

  无论如何,当你诊断出了问题的所在,在进行修复之前,务必要验证诊断,可以向其他人解释你的诊断,也可以检查源代码的原始副本,尝试和他人讨论并假设自己是错误的,这样可以让你信任自己所做的诊断,也就可以开始着手进行修复了。

  本章至此告一段落,一旦确诊,接下来的我们就该聊聊修复的问题了~

相关链接:

软件测试修炼之道之——重现问题

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号