6.10.2 软件调试策略
在实际调试过程中可灵活采用多种方法来高效地查错排错。例如内存信息检查和程序执行信息跟踪方法。
(1)内存信息检查。在程序执行过程中发现问题,输出内存数据作静态检查分析。
(2)程序执行信息跟踪。实际程序中存在多种输出或者人工在程序中设置输出,对照输出检查程序执行路径和出错原因。
在软件调试过程中常用的五种调试策略如下。
(1)试探法。猜测试探。调试人员分析错误征兆,猜测故障的大致位置,然后检测程序中被怀疑位置附近的信息,由此获得对程序错误的准确定位。这种方法效率很低,适合于结构比较简单的程序。
(2)回溯法。人工沿程序控制流道向追踪。调试人员分析错误征兆,确定最先发现“症状”的位置,然后人工沿程序的控制流程往回追踪源程序代码,直到找出错误根源或确定故障范围为止。这种方法适合于小型程序,对于大规模程序,由于其需要回溯的路径太多而变得不可操作。
(3)对分查找法。区分程序段查找。如果已经知道每个变量在程序内若干个关键点的正确值,则可以用赋值语句或输入语句在程序中点附近“注入”这些变量的正确值,然后检查程序的输出。如果输出结果是正确的,则故障在程序的前半部分;反之,故障在程序的后半部分。对于程序中有故障的那部分再重复使用这个方法,直到把故障范围缩小到容易诊断的程度为止。
(4)归纳法。归纳错误信息发生的因果特性,提出假设的错误原因,用这些数据来证明或反驳,从而查出错误所在。其步骤如下:
①收集有关资料;(https://www.daowen.com)
②组织数据;
③导出假设;
④证明假设。
(5)演绎法。根据测试结果,列出所有可能的错误原因。分析已有的数据,排除不可能和彼此矛盾的原因。对余下的原因,选择可能性最大的,利用已有的数据完善该假设,使假设更具体,其步骤如下:
①列出所有可能的原因;
②用已有的数据排除不正确的假设;
③精化剩余的假设;
④证明剩余假设。