浅谈如何去捕捉无规律的异常
作者:管理员 发布时间:[ 2010/2/20 16:06:31 ] 推荐标签:
预备:黑盒测试――请把它简单理解为你不知道程序内部结构,只注重输入和输出的测试方法。好像你知道吃饭是通过胃来消化,但你从来看不见你自己的胃那样。 阶段:项目进入到第8个月了,等过完春节后还有1周用来清理后续,宣告结束这场胜仗了。
投靠阵营:软件测试组;
内部对立阵营:软件开发组;
外部对立阵营:客户
场景:在完成了大量重复操作和回归测试之后,以为胜利在望的时候,突然发现程序有不稳定现象。征兆为“退出程序时的内存异常”。有些使用时间长久的WINDOWS操作系统,莫名奇妙会出现这个懊恼提示。这犹如吃米饭吃到后一口时,发现里面有石子儿那般破坏快感。
由于项目对于程序稳定性没有特殊要求,2个旧版本中的不稳定概率很低,导致这次的意外没有被提早发现。 无论如何,作为测试人员,既然“吃石子儿”的好运降临在我的头上,不能辜负这次机会。 作战方案:的确,采取纯粹的黑盒测试方法,很难捕捉问题的源头。因此这样的硬骨头是很有挑战意义的。还是这样,按照换位思考的方法来综合出一个合适的解决方案,而非的解决方法。从客户角度来思考,在不影响功能的状态下,不要出现这个吓唬人的框框行了;从开发人员的角度思考,在项目末期出现这个故障,是比较头大的,如果不影响主要功能的稳定,想办法让框框消失可以了,尽量不要大兴土木重新来过;因此,作为测试人员,找到问题的大致方向,给开发人员提供思路,即可。不必刨根问底显示你的“艰苦奋斗”而影响全队的作战士气。
第一阶段:没有规律,没有重现方法。 首先我们知道,这个内存错误提示框,是WINDOWS为了保护硬件而组织程序驻留在非法内存中抛出的。因此,在这个阶段,想要开发人员简单的屏蔽这个框框是不现实的,也是不负责任的。你肚子痛,医生叫你随便吃药,也不告诉你吃的什么药,反正你付钱拿药行。那还有没有天理呢,呵呵。――不过这个阶段情绪挺差,组合了很多测试用例和方法,依然没有找到任何规律,也不能确定如何才能重现。有至少2天,处于这种状态。
第二阶段:没有规律的重现。 被动防御了2天,战局没有进展,开发人员却给了一个新的版本。在这个版本中关于这个程序异常,可以说没有任何实质性的进展。不过似乎在夹缝中有了转机,这个版本中加强了对新功能模块的修改,使得使用并关闭程序之后,WINDOWS报错的概率大幅度提高。
这样一来,有了2条模糊的思路:
1,是否和新功能修改有关;
2,是否有内存泄漏。
即使如此,出错的规律依旧没有找到。这样,每天打开内存监视工具,尝试寻找规律。可能医学上的临床观测,也是类似如此吧,哈哈。
第三阶段:寻找资料,逐步沟通。 在网络上搜索内存泄漏的技术资料,并再次熟悉程序架构:C++编程,新功能中外挂了一个DELPHI开发的DLL。在这两种语言编写出来的程序中,前者对于指针的把握问题很普遍,而后者对于程序关闭时的内存回收机制也同样具有很多先例性问题。有了这些资料作为后盾,我对于内存泄漏的猜测有了更足够的信心。跑去和开发人员沟通,次日便得到回复:代码中存在部分导致内存泄漏的错误。逐一修改,得到了新版本的程序再测试。临床检验有了初步诊断,但是仍旧没有摆脱危险。
第四阶段:水落石出。 某早晨,开发人员主动过来告之,该新模块中调用的DLL存在关闭程序时回收机制的问题。(不搜不知道,网络上一搜索,资料一大堆)在察看了程序代码之后,可以轻而易举地找到出错规律,并能每次重现。开发人员友好地提供了重现方法,为了新版本的测试而提供方案。这样,我们从第一阶段的毫无头绪到现在的水落石出,终于把症结给捕捉。石头从嘴里吐出,漱漱口再吃一颗口香糖吧。
:) 总结:冷静、整理、规划、沟通、探讨、总结。在合作竞争的环境下,共同努力,促进良性循环,完成工作,增进感情。好像这次干得不错。哈哈。
本文来自http://bbs.itest.cc/viewthread.php?tid=2659&extra=page%3D1
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11