软件工程-第5章第5节_第1页
软件工程-第5章第5节_第2页
软件工程-第5章第5节_第3页
软件工程-第5章第5节_第4页
软件工程-第5章第5节_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.5调

试5.5.1调试的定义

程序调试是指将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编写完计算机程序,必须在计算机中运行测试。根据测试时所发现的错误进一步进行诊断,找出原因和具体的位置后进行修正。因此程序调试活动分为以下两部分:①根据错误迹象确定程序中错误的确切性质、原因和位置;②对程序进行修改,排除这个错误。因此说程序调试的目的是诊断和修正程序中的错误。5.5.2调试技术1.简单的调试方法1)在程序中插入打印语句

该方法的优点是显示程序的动态过程,比较容易检查源程序的有关信息。其缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性。同时还要修改程序,这种修改可能会掩盖错误、改变关键的时间关系或把新的错误引入程序。2)运行部分程序

有时为了测试某些被怀疑为有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测试程序只执行需要检查的程序段,以提高效率。可采用以下方法:5.5.2调试技术(1)把不需要执行的语句段前和后加上注释符,使这段程序不再执行。调试过后,再将注释符去掉。(2)在不需要执行的语句段前加判定值为“假”的IF语句或者加GOTO语句,使该程序不执行。调试结束后,再撤销这些语句,使程序复原。3)借助于调试工具

目前大多数程序设计语言都有专门的调试工具,可以利用这些工具分析程序的动态行为。例如借助“追踪”功能可以追踪子程序调用、循环与分支执行路径、特定变量的变化情况等,利用“设断点”可以执行特定语句或改变特定变量值引起的程序中断,以便检查程序的当前状态。还可借助调试工具观察或输出内存变量的值,大大提高调试程序的效率,缺点是也会产生大量的无关信息,也会走弯路。

实践表明,对于较为复杂的程序,就查出错误的速度和精确度而言,有时用“脑”比用“工具”更有成效。5.5.2调试技术5.5.2调试技术2.归纳法调试

归纳法是一种从特殊到一般的思维过程,从对个别事例的认识当中,概括出共同特点,得出一般性规律的思考方法。归纳法调试从测试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。归纳法调试的具体步骤如下:(1)收集有关数据:列出做对了什么、做错了什么程序的全部信息。(2)组织数据:整理数据以便发现规律,使用分类法构造一张线索表。5.5.2调试技术(3)提出假设:

分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。(4)证明假设:

假设不是事实,需要证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现(即消除错误的征兆)或只纠正一部分错误。如果不能证明这个假设成立,需要提出下一个假设。5.5.2调试技术

例如,在一个“考试评分”程序中出现了一个错误:在某些情况下,学生分数中间值不正确,即51个学生评分,正确地打印出平均值是73.2,中间值却是26而不是期望的82,检查这个测试用例和其他几个测试用例的执行结果,得到如表5-6所示的线索表。5.5.2调试技术

下面通过寻找现象的矛盾来建立有关错误的假设。矛盾是取偶数个学生,计算不出错,奇数个学生计算出错,同时总结出中间值总是小于或等于学生人数(26≤51和1≤1),这时的处理可给学生换一个分数,把51个学生的测试再做一遍,中间值仍是26,因此在“how-no”栏中填写“中间值似乎与实际分数无关”这样一个范围。随后分析线索表,根据“中间值≥学生人数一半的最小整数”这一情况判断出好像程序把分数放在一个顺序表中,打印的是中间那个学生的编号而不是他的分数。因此就有了发生错误原因的假设,再通过检查源程序或额外多执行几个测试用例来证明这个假设。5.5.2调试技术3.演绎法调试

演绎法是一种从一般的推测和前提出发,运用排除和推断过程作出结论的思考方法。演绎法调试是列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再用测试数据验证余下的假设确实是出错的原因。

演绎法调试的具体步骤如下:(1)列出所有可能的错误原因的假设:把可能的错误原因列成表,不需要完全解释,

仅是一些可能因素的假设。(2)排除不适当的假设:应仔细分析已有的数据,寻找矛盾,力求排除前一步列出的所有原因。如果都排除了,则需补充一些测试用例,以建立新的假设;如果保留下来的假设多于一个,则选择可能性最大的原因做基本的假设。5.5.2调试技术(3)精化余下的假设:利用已知的线索,进一步求精余下的假设,使之更具体化,以便可以精确地确定出错位置。(4)证明余下的假设:做法同归纳法。5.4.4集成测试4.回溯法调试

该方法从程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论