【正确答案】调试是在进行了成功的测试之后才开始的工作。调试的目的是确定错误的原因和位置,并改正错误,因此调试也称为“纠错”。
常用的调试技术如下。
(1)简单的调试方法。
①在程序中插入打印语句。该方法的优点是能显示程序的动态过程,较易检查源程序中的有关信息。缺点是低效率,可能输出大量的无关的数据,发现错误带有偶然性,同时因插入打印语句要修改程序,这种修改可能会掩盖错误,改变关键的时间关系或把新的错误引入程序。
②运行部分程序。有时为了测试某些被怀疑有错的程序段,整个程序反复执行多次,使很多时间浪费在执行已经是正确的程序段上。在此情况下,应设法使被测程序只执行需要检查的程序段,以提高效率。可通过注释程序或开发语言所带的调试工具来查找错误。
(2)归纳法调试。归纳法调试从调试结果发现的线索(错误迹象、征兆)入手,分析它们之间的联系,导出错误原因的假设,然后再证明或否定这个假设。归纳法调试的具体步骤如下。
①收集有关数据:列出程序做对了什么,做错了什么的全部信息。
②组织数据:整理数据以便发现规律,使用分类法构造一张线索表。
③提出假设:分析线索之间的关系,导出一个或多个错误原因的假设。如果不能推测一个假设,再选用测试用例去测试,以便得到更多的数据。如果有多个假设,首先选择可能性最大的一个。
④证明假设:假设不是事实,需证明假设是否合理。不经证明就根据假设改错,只能纠正错误的一种表现(即消除错误的征兆)或只纠正一部分错误。如果不能证明这个假
(3)演绎法调试。演绎法调试是列出所有可能的错误原因的假设,然后利用测试数据排除不适当的假设,最后再测试数据验证余下的假设确实是出错的原因。
演绎法调试的具体步骤如下:
①列出所有可能的错误原因的假设。
②排除不适当的假设。
③精化余下的假设。
④证明余下的假设。
(4)回溯法调试。该方法从程序产生错误的地方出发,人工沿程序的逻辑路径反向搜索,直到找到错误的原因为止。例如,从打印语句出错开始,通过看到的变量值,从相反的执行路径查询改变量值从何而来。该方法是对小型程序寻找错误位置的有效方法。
【答案解析】