软件测试策略和调试
作者:网络转载 发布时间:[ 2011/1/25 15:08:01 ] 推荐标签:
2.2.2 调试
调试一般分为两个步骤:发现/找出错误所在的模块/接口/编码位置;修正/规避错误。其中第一个步骤一般大致占用调试工作量的90%以上。
1. 错误定位
错误定位是调试的第一个步骤。发现错误后首先要根据错误现象、错误症状(同时也称为错误征兆)利用各种调试技术、调试工具/平台结合各种调试方案来分析、定位分析,找出问题原因所在。
2. 错误修正
错误原因位置确定后,下一阶段的工作则是针对错误原因、错误地点进行修正,使问题得到解决。
考虑到实际问题原因的复杂性,实际工作中一个暴露问题的原因可能使多种因素共同作用的结果,即导致问题的原因可能不止一种;同时也有可能前期错误定位的原因/位置判断有误,导致错误修正后问题不能解决或者导致新问题。
实际工作中错误定位和错误修正是相互结合的一个过程;针对每一次修正后的被测对象都要进行相应测试验证;通过测试验证确保问题已经得到解决并不会带来新问题。
总结:
调试过程分为调试准备、调试两个阶段。
调试分为错误定位、错误修正两个步骤;其中错误定位的工作量约占调试总工作量的90%以上。
2.3 调试策略
调试一般采用逐步排除可能出错原因的思路:即根据问题征兆列出错误所有可能的原因,逐个排除,后找出真正的问题所在。针对错误可能原因的判断和排错方法形成了不同的调试策略,具体工作中可能采用的调试策略大致包含如下几类:
2.3.1 试探法
调试人员(一般是程序开发人员)分析错误征兆,根据错误表现初步分析、猜想故障的大致位置,然后重点针对错误地点源代码进行代码检视、或者利用前述几种调试技术,逐步定位问题。这种方法比较依赖于程序员对程序的理解、熟悉程度以及问题原因的复杂程度,对于比较复杂的问题这种方法效果比较差,该种测试策略也通常是缓慢而低下的。
2.3.2 回溯法
回溯法是在小程序中常用的非常有效的纠错方法。
调试人员检查错误现象及征兆,确定先发现“错误症状”的地方,然后人工回溯源程序代码,沿程序的控制流往后(反方向)回溯跟踪,直到征兆消失处为止;然后在相关邻接的代码段进行查找和分析,找出错误原因。
回溯法对于小程序或者简单问题是一种比较有效的调试策略;但是随着程序规模扩大、逻辑复杂度增加以及问题复杂度增加,回溯法在问题定位中变得几乎不可能。
2.3.3 对分查找法
如果已经明确每个变量再程序内若干个关键点的正确值,则可以用赋值语句或输入语句在程序中间点附近“注入”这些变量的正确值,然后执行程序、检查程序的输出。如果输出结果是正确的,则故障在程序的前半部分;反之,程序在故障的后半部分。对于程序有故障的部分再重复使用这个方法,直到把故障范围缩小到容易判断的程度为止。

sales@spasvo.com