如何纠正软件中的错误?
作者:网络转载 发布时间:[ 2011/11/7 11:11:24 ] 推荐标签:
1、试凑法
这是一种不甚严格的纠错策略。根据测试中暴露达到错误征兆,首先可设定一个可疑区。然后采用一些简单的纠错手段(例如在程序中插入打印语句),进一步获取与可疑区有关的信息,借以肯定或修改原来的设想。如果可疑区没有找准,便再来一遍,重置新的可疑区。这种“边试边瞧”的做法,纠错的效率一般较低(这也是试凑(trial and error)一名的由来),故仅适用于结构比较简单的小程序。
2、跟踪法
跟踪执行可疑的程序段,是对小型程序纠错又一种常用的策略。它的要求是,是让带错的程序“分步执行”,即每执行完一条语句(或指令),暂时停下检查执行的结果,确认正常后再继续进行。许多高级语言都设有专用于跟踪纠错的语句或命令。他们都具有让程序分步执行的功能。
对于较小的程序,用跟踪执行来确定错误部位是相当有效的。例如:倘若再某一PASCAL程序中把语句FOR I:=1 to 10 中的10 误写为-10,则程序执行到语句会直接跳过循环体中的语句,转到for循环之后的语句去执行。
但有些时候,发现程序出错的语句其本身并无错误,问题倒出在位于它前面的一些语句上。例如,当某FORTRAN程序执行到语句ix=iy/(k/n)时发生了运行出错,屏幕上显示“整数上溢”。顺着这条语句返回寻找,在它的前数行找到了给k,n赋值的语句:
k=5
n=6
则不难想到,由于k/n整除所得结果为0,才导致iy被0除后发生上溢。像这样从出错处逐句返回探寻错误的根由,一般称为回溯(back tracking)或反向跟踪。而通常高级语言所设置的跟踪命令都只提供正向跟踪,反向跟踪只能人工进行。
当程序较长,包含的分支与嵌套又相当多时,跟踪尤其是反向跟踪的路径变得多而且复杂。这是使用跟踪法纠错不仅效率不高,而且会变得难于执行,好改用推理法进行纠错。
3、推理法
推理法来源于定理证明,又可区分为归纳法和演绎法两大类。
归纳法是从个别到整体的推理过程。它从收集个别的故障症状开始,分析各种症状的相互关系后,有可能将它们归纳为某一些假想的错误。如果这一些假想能被证实,找到了真实的病根。
演绎法是从一般到特殊的推理过程。根据测试获得的错误症状,可以先列出一批可能的病因。接着在这一大范围的设想中,逐一的排除根据不足或与其他测试结果有明显矛盾的病因,然后对余下的一种或数种病因作详细的鉴别,确定真正的病因。由于真正的病因是从大量可能病因中筛选得来的,所以此法有时也称为“病因排除法(Cause Elimination)”
相关推荐
更新发布
功能测试和接口测试的区别
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