首页 理论教育 系统的测试

系统的测试

时间:2022-11-21 理论教育 版权反馈
【摘要】:需要说明的是,直到目前为止,在程序测试时,还没有一种可供使用的、科学的完全测试法,能将系统中的所有错误全部测试出来。基本处理是系统最基本的、最主要的处理活动,是系统的正常功能。实际上,出错处理的测试就是检查系统是否具有内部控制功能的测试。此项工作称为系统的联调。它的主要目的就是要测试组装后的系统整体性能。模块组通常是由完成系统主要功能的模块组成。

三、系统的测试

程序编好后,可能会有许多语法和逻辑上的错误,所以需要在计算机上以各种可能的数据和操作条件对各程序进行检测,以找出错误并予以纠正;另外,单个的程序没有错误并不等于将程序组装起来也没有错误,所以也要对其进行组装测试,以检查各级系统的结构是否设计合理,模块之间的接口是否存在问题,等等。

(一)程序测试

程序测试是一项复杂的、同时也是挑剔和揭短的工作,稍有不慎就会疏漏错误给系统留下隐患。另一方面我们也应认识到,测试永远只能证明有些错误的存在,但绝不能证明所有的错误都不存在。因此,测试错误只能做到尽可能的完全、彻底。

1.程序测试应注意的事项

程序测试时,应注意以下事项:选择被测试的数据,既要保证能尽可能多地走遍各主要路径、主要模块和主要功能,同时又要防止测试工作量过大;应模拟输入各种错误数据和错误操作,以检查系统的排错、纠错能力;从操作到各种显示输出都应全面检查验证,看其是否与设计要求一致;应对所有的计算和分析结果进行核对。

2.程序测试方法

对程序测试的方法有很多,但较为常用的有黑盒测试(功能测试)法和白盒测试(路径测试或叫逻辑覆盖)法。

(1)黑盒测试法。即把程序视为一个“黑盒”,不考虑程序内部结构和内部特性,只检查程序是否符合它的“功能说明”。使用黑盒法时测试用例完全是根据程序模块说明书来设计的,即按程序的要求输入测试数据,按规定检查输出,如果没有达到预期结果则说明程序有错。想用黑盒法发现程序中的所有错误,就须将所有可能的数据输入并进行测试,这显然是不可能的,因为我们不可能穷举程序的所有数据。因而,黑盒测试法只是一种非完全测试法。

(2)白盒测试法。又称为路径测试法。是设计一组输入数据,以使程序的每个语句都至少执行一次,以检测程序中可能隐含的错误。由于从输入到输出排列组合可能有近乎无数多个路径,因而要使每条语句都执行一次,则至少需使程序中每种可能的路径都被经过一次,这显然也是不可能的。因而,白盒测试法也是一种非完全测试法。

需要说明的是,直到目前为止,在程序测试时,还没有一种可供使用的、科学的完全测试法,能将系统中的所有错误全部测试出来。更多的问题还要在系统投入运行后去慢慢发现和纠正。当然,这也正是软件升级换代其中一方面的意义所在。因此,对程序测试所要达到的目标,我们只能尽量从系统的用途和重要性出发,提出相对高的要求。这些要求主要有:(1)对典型的测试数据要有正确的结果;(2)对无效或错误的数据要有校验和纠错的能力;(3)对设计说明书中的可能测试数据要有正确的结果。

(二)系统测试

1.分调

按照结构化设计思想,系统由模块组成,而模块又由一个或几个更小的模块或程序组成。当单个程序调试工作结束后,尚需进行各个功能模块组装调试,即将一个功能模块内各程序按次序串联起来进行调试。这项工作称为模块的分调。分调的主要目的是检查模块中各程序的接口与模块说明书中的要求是否一致,以查找模块内部的逻辑错误。

在进行模块测试时,应预先在模块中安排测试点,以便能从测试输出结果或从程序中断现象中,比较直接地确定错误的位置。

对模块的测试,包括有三个方面的效果目标:即模块的基本处理、特殊处理和出错处理。基本处理是系统最基本的、最主要的处理活动,是系统的正常功能。测试基本处理的数据必须要完整、系统,以便能使其基本处理的各个方面都测试到;特殊处理虽然不是系统的正常功能,但在数据处理中很可能出现。如文件中无记录,文件不在当前盘上,打印机没有接通电源等。如果系统设计没有考虑到这些特殊处理,就会影响到系统运行的稳定性;出错处理则是对输入错误的数据和误操作进行的处理,如输入非法的会计科目代码或输入借贷不平衡的会计凭证等。实际上,出错处理的测试就是检查系统是否具有内部控制功能的测试。

2.联调

联调是在分调的基础上进行的。当各模块的分调工作完成后,要按系统的整体要求将各个模块组装起来进行测试。此项工作称为系统的联调。它的主要目的就是要测试组装后的系统整体性能。系统联调的主要方法有“自顶向下”和“自底向上”两种。下面我们重点介绍一下“自顶向下”的联调方法思路。

“自顶向下”的方法,要求首先测试顶层(即主控模块),然后再逐步一层一层将下级模块添加上去进行测试,直到将所有的模块都联结起来进行测试完毕为止。按照这种测试方法,在测试上层模块时,暂不要把下层模块连接起来。当需要上层模块调用下层功能模块时,可在上层模块中设计模拟下层模块功能的桩模块,桩模块主要是模拟下层模块的输入、输出参数和显示信息,而模块本身的处理过程省略。当上层模块调用桩模块时,桩模块根据上层模块传过来的参数进行判断,并回送相应的参数给上层模块。当顶层模块测试完后,就可以将其中的一个桩模块用实际模块替代,同时为这个实际模块再配上所需要的桩模块。通过这样的逐步替换。直到将所有的实际模块联结起来,测试才算完成。

“自底向上”是把一个或多个模块组成模块组,先测试这个模块组,再联入软件系统中。模块组通常是由完成系统主要功能的模块组成。

在实践中,通常很多时候对系统的联调,往往是将“自顶向下”和“自底向上”两种方法结合起来进行。需要说明的是,无论分调还是联调,若使用了应用生成系统进行自动编程,则程序的调试过程将会大大缩短,因为自动生成的程序都是经过反复验证的,因而一般不需要调试。而此时系统调试的主要侧重点将集中在某些特殊功能模块的分调和系统联调上。

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

我要反馈