理论教育 如何进行系统调试及方法

如何进行系统调试及方法

更新时间:2025-01-03 理论教育 版权反馈
【摘要】:图7—7动态白盒子测试与调试有不同目标动态白盒子测试的目标是寻找软件缺陷,调试的目标是修复它们。在白盒子测试中,甚至还要包括那些值得怀疑的代码行信息。(二)调试方法1.简单调试法有经验的系统设计人员借助人工转储、打印并人工检查,确定错误的性质和位置,在此基础上对系统进行修改和调试。其目的就是保证调试的系统能够适应运行环境。系统总调是实施阶段的最后一道检验工序,通过后即可进入程序的试运行阶段。

(一)调试与测试的关系

1.调试与测试的关系

测试与调试是互相联系但又性质不同的两类活动,它们的差别对比如表7—2所示。

表7—2 测试与调试的区别

从中我们可以看到,测试已经形成了一定的理论基础,建立了一套可行的测试方法和测试程序,并且对测试时的各种文档规定了一系列的标准和规范,这些都是因为测试的对象比较固定,可以忽视对象的细节。而调试也叫排错,必须了解对象的具体细节,由于系统内部构件的复杂性导致调试对象的多种可能性,加上各种部件自由组合也能导致出现不兼容、冲突、不规范等问题,所以尚未建立成熟的理论基础,调试方法也在很大程度上依赖程序员的经验和直觉,而且很难对调试做详细的进度安排。

2.动态白盒子测试与调试

白盒子测试和调试技术在表面上很相似,因为它们都包括处理软件缺陷和查看代码的过程,但是它们的目标不同,如图7—7所示。

图7—7 动态白盒子测试与调试有不同目标

动态白盒子测试的目标是寻找软件缺陷,调试的目标是修复它们。然而,它们在由软件错误产生根源相同的隔离区域确实存在交叉现象。测试员应该把问题缩减为能够演示软件错误的最简化测试案例。在白盒子测试中,甚至还要包括那些值得怀疑的代码行信息。进行调试的程序员从这里继续,判断到底是什么导致软件缺陷,并设法修复。如果进行底层测试,就要使用与程序员相同的工具。如果程序已经编译过,就要使用同样的编译器,但是采用不同的设置,以加强错误检测功能。对于要求合法性检查的独立代码模块,还应该编写测试程序进行测试。

(二)调试方法

1.简单调试法

有经验的系统设计人员借助人工转储、打印并人工检查,确定错误的性质和位置,在此基础上对系统进行修改和调试。简单调试法是调试方法的一种,由于其大部分依赖于人的直觉和经验,所以有效性较差,效率不高。

2.归纳调试法

归纳调试法就是从特殊到一般地归纳问题,对问题进行分析和思考。其过程可归结为:通过实例运行结果,寻找线索,从线索(一个或多个测试实例的执行结果所反映的错误征兆)和线索之间的联系出发进行归纳分析,从而确定错误。其步骤具体归纳如下:

(1)寻找适当数据。通过实例运行,查找与错误征兆有关的信息,并集中为线索。主要内容是列出系统已经正确做了什么的全部信息。

(2)组织数据。设定一个表格,列出错误征兆数据结构或配置结构,其中包括如下信息:错误征兆、观察到征兆的位置、发生征兆的时间、征兆范围和数量。

(3)研究线索,给出猜想。利用线索及线索间的关系,给出一个或多个引起错误的猜想。(www.daowen.com)

(4)证明猜想。将猜想线索做分析对比,使全部的错误征兆和线索都得到解释,否则猜想失效。

3.演绎调试法

从一般推测出发,使用逐步求精方法去获得错误的性质和位置。其步骤可归纳为:

(1)列出全部想到的原因/推测,它们可能是不完全的、猜测性的。通过猜测收集和构造有用的解决方案

(2)通过对已有情况的分析,寻找矛盾,消除全部可能的原因,如全消除,则需考虑新的原因、设计和运行新的测试,如果尚有未消除的原因,则选择可能性最大的原因。

(3)定义和完善还未消除的原因,对系统做有针对性的调试。

4.反向搜索调试法

就是从系统产生不正确的结果处,沿逻辑路径反向搜索,直到发现系统错误为止。

5.测试调试法

从测试实例发现的错误征兆出发,对实例做某些修改,再做测试,通过两次测试结果比较,常可找到有用的调试信息。

(三)调试的过程

管理信息系统开发的各个阶段,都有可能产生错误。为了发现这些错误,调试过程可以分解为与系统开发过程方向相反的三个阶段,即分调、联调和总调。

1.分调

对模块分别进行的调试。系统的应用软件是按照处理功能分成模块的,一个处理功能由一个或一个以上的程序构成。对模块进行全面调试时应着重检查如下几个方面:(1)模块运行是否正常、无死机;(2)模块的功能是否符合设计的要求;(3)模块的技术性能如何;(4)界面是否友好。

2.联调

对与本子系统有关的各模块实行联调,以考查各模块外部功能、接口以及各模块之间调用关系的正确性,即检查各子系统内部的接口是否匹配,数据传递是否正确,联合操作的正确性及运行的效率。

3.总调

在实际环境或模拟环境中调试系统是否正常。总调主要检查各子系统之间接口的正确性、系统运行功能是否达到目标要求、系统的再恢复性等。其目的就是保证调试的系统能够适应运行环境。系统总调是实施阶段的最后一道检验工序,通过后即可进入程序的试运行阶段。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈