• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

纠正软件中错误的方法

发布: 2010-10-18 11:33 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 175次 | 进入软件测试论坛讨论

领测软件测试网

  纠正软件中错误的方法   软件测试

  1、跟踪法

  跟踪执行可疑的程序段,是对小型程序纠错又一种常用的策略。它的要求是,就是让带错的程序“分步执行”,即每执行完一条语句(或指令),就暂时停下检查执行的结果,确认正常后再继续进行。许多高级语言都设有专用于跟踪纠错的语句或命令。他们都具有让程序分步执行的功能。

  对于较小的程序,用跟踪执行来确定错误部位是相当有效的。例如:倘若再某一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)或反向跟踪。而通常高级语言所设置的跟踪命令都只提供正向跟踪,反向跟踪只能人工进行。

  当程序较长,包含的分支与嵌套又相当多时,跟踪尤其是反向跟踪的路径变得多而且复杂。这是使用跟踪法纠错不仅效率不高,而且会变得难于执行,最好改用推理法进行纠错。

  2、推理法

  推理法来源于定理证明,又可区分为归纳法和演绎法两大类。

  归纳法是从个别到整体的推理过程。它从收集个别的故障症状开始,分析各种症状的相互关系后,就有可能将它们归纳为某一些假想的错误。如果这一些假想能被证实,就找到了真实的病根。

  演绎法是从一般到特殊的推理过程。根据测试获得的错误症状,可以先列出一批可能的病因。接着在这一大范围的设想中,逐一的排除根据不足或与其他测试结果有明显矛盾的病因,然后对余下的一种或数种病因作详细的鉴别,确定真正的病因。由于真正的病因是从大量可能病因中筛选得来的,所以此法有时也称为“病因排除法(Cause Elimination)”

  3、试凑法

  这是一种不甚严格的纠错策略。根据测试中暴露达到错误征兆,首先可设定一个可疑区。然后采用一些简单的纠错手段(例如在程序中插入打印语句),进一步获取与可疑区有关的信息,借以肯定或修改原来的设想。如果可疑区没有找准,便再来一遍,重置新的可疑区。这种“边试边瞧”的做法,纠错的效率一般较低(这也是试凑(trial and error)一名的由来),故仅适用于结构比较简单的小程序。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 软件


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网