第7章软件测试技术 - PowerPoint プレゼンテーション.pptVIP

第7章软件测试技术 - PowerPoint プレゼンテーション.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章软件测试技术 - PowerPoint プレゼンテーション

7.3 软件调试技术 一、调试的目的 软件测试的目的是尽可能多地发现程序中的错误, 而调试则是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为纠错。 调试是程序员自己进行的技巧性很强的工作,要确定发生错误的内在原因和位置不是一件容易的事,它占整个调试工作量的90%左右。调试工作的困难与人的心理因素和技术因素都有关系,需要繁重的脑力劳动和丰富的经验。与测试比较,调试技术缺乏系统的理论研究,因此介绍的调试方法多是实践中的经验积累。 二、调试技术 1. 简单的调试方法 1) 在程序中插入打印语句 该方法的优点是显示程序的动态过程,比较容易检查源程序的有关信息。缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性。同时还要修改程序,这种修改可能会掩盖错误、改变关键的时间关系或把新的错误引入程序。 2) 运行部分程序 有时为了测试某些被怀疑为有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测试程序只执行需要检查的程序段,以提高效率。可采用以下方法: (1) 把不需要执行的语句段前和后加上注释符,使这段程序不再执行。调试过后,再将注释符去掉。 (2) 在不需要执行的语句段前加判定值为“假”的IF语句或者加GOTO语句,使该程序不执行。调试结束后,再撤销这些语句,使程序复原。 3) 借助于调试工具 目前大多数程序设计语言都有专门的调试工具,可以利用这些工具分析程序的动态行为。例如借助“追踪”功能可以追踪子程序调用、循环与分支执行路径、特定变量的变化情况等,利用“置断点”可以执行特定语句或改变特定变量值引起的程序中断,以便检查程序的当前状态。还可借助调试工具观察或输出内存变量的值,大大提高调试程序的效率,缺点是也会产生大量的无关信息,也会走弯路。 以上几种简单的调试方法的共同特点是比较“省劲”,这些方法不需要人们去研究出现的错误,基本上都是“碰运气”的方法。实践表明,对于较为复杂的程序,查出错误的速度和精确度而言,有时用“脑”比用“机器”更有成效。 2. 回溯法调试 该方法从程序产生错误的地方出发,人工沿程序的逻辑路径返向搜索,直到找到错误的原因为止。例如,从打印语句出错开始,通过看到的变量值,从相反的执行路径查询该变量值从何而来。该方法是对小型程序寻找错误位置的有效方法。 3. 归纳法调试 归纳法是一种从特殊到一般的思维过程,从对个别事例的认识当中,概括出共同特点,得出一般性规律的思考方法。归纳法调试从测试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。 归纳法调试的具体步骤如下: (1) 收集有关数据:列出做对了什么、做错了什么程序的全部信息。 (2) 组织数据:整理数据以便发现规律,使用分类法构造一张线索表。 (3) 提出假设:分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。 (4) 证明假设:假设不是事实,需要证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现(即消除错误的征兆)或只纠正一部分错误。如果不能证明这个假设成立,需要提出下一个假设。 例如,在一个“考试评分”程序中出现了一个错误:在某些情况下,学生分数中间值不正确,即51个学生评分,正确地打印出平均值是73.2,中间值却是26而不是期望的82,检查这个测试用例和其他几个测试用例的执行结果,得到如下表所示的线索表。 下面通过寻找现象的矛盾来建立有关错误的假设。矛盾是取偶数个学生,计算不出错,奇数个学生计算出错,同时总结出中间值总是小于或等于学生人数(26≤51和1≤1),这时的处理可给学生换一个分数,把51个学生的测试再做一遍,中间值仍是26,因此在“how-no”栏中填写“中间值似乎与实际分数无关”这样一个范围。随后分析线索表,根据“中间值≥学生人数一半的最小整数”这一情况判断出好像程序把分数放在一个顺序表中,打印的是中间那个学生的编号而不是他的分数。因此就有了发生错误原因的假设,再通过检查源程序或额外多执行几个测试用例来证明这个假设。 4. 演绎法调试 演绎法是一种从一般的推测和前提出发,运用排除和推断过程作出结论的思考方法。演绎法调试是列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再用测试数据验证余下的假设确实是出错的原因。演绎法调试的具体步骤如下: (1) 列出所有可能的错误原因的假设:把可能的错误原因列成表,不需要完全解释, 仅是一些可能因素的假设。

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档