首页 理论教育 软件测试的实施

软件测试的实施

时间:2022-02-28 理论教育 版权反馈
【摘要】:软件系统的开发过程是一个自顶向下逐步细化的过程,而测试过程则是以相反顺序进行的集成过程。软件测试的组成包括:单元测试、集成测试、有效性测试、系统测试、验收测试。集成测试是在组装软件模块的同时,进行测试以查找与接口有关的错误。经过全部模块的集成测试,已经得到一个完整的软件包。为了证实软件的有效性,要通过一系列的黑盒测试以证明软件特性与要求是相符的。

3.4.3 软件测试的实施

软件系统的开发过程是一个自顶向下逐步细化的过程,而测试过程则是以相反顺序进行的集成过程。软件测试的组成包括:单元测试(模块测试)、集成测试、有效性测试、系统测试、验收测试。

1.单元测试

通过测试发现该模块单元的子程序或过程的实际功能与该模块的功能和接口的描述是否相符,以及是否存在编码错误。测试人员应该根据设计文档或源程序了解模块的功能和逻辑结构,采用黑盒测试法以测试其功能,然后辅以白盒测试法以测试其结构,使之对所有合理或不合理的输入都能正确地进行判别和响应。高耦合性的模块是组成可靠系统的坚实基础。

(1)模块接口测试

接口测试的主要内容有:

输入参数的数目是否与模块数目相同,参数属性与变元属性是否一致,次序是否一致,本模块输出给被调用的子模块参数与子模块变元的数目、属性、单位和次序是否匹配,内部函数的属性、数目和变元次序是否正确,对参数的访问是否与当前的入口点无关,输入是否会影响变元,全局变量的定义是否一致等,当I/O涉及外设时,需要对文件属性,Open/Close语句,格式说明与I/O语句的匹配,缓冲区容量与记录长度的匹配,正文错误及I/O错误的处理进行必要的测试和排错,然后再做其他的测试。

(2)局部数据结构测试

局部数据结构可能出现的错误有:不正确或不一致的说明,初始化错误,变量名错误,数据类型不一致以及上溢、下溢,地址错等。

(3)路径测试

选择适当的实例对模块中重要的执行路径进行测试,用以发现不正确的计算,错误的比较或不适当的控制流向。常见的不正确计算有:不正确的运算优先次序或理解错,运算方式错,算法错,初始化不正确,精度不够,表达式错;常见的控制与比较错误有:不同的数据类型的比较,不正确的逻辑运算符,由运算精度造成的两值不等,比较式中不正确的变量和比较符,循环出错等。

(4)错误处理测试

在模块功能中应该包括错误处理部分,以便通过人—机交互为排错提供帮助。但有时可能出现:错误描述难以理解,难以对错误定位,显示的错误与实际错误不符,错误处理不当等,这些都表明模块的错误处理功能出现错误或缺陷。

(5)边界测试

往往在边界上出现错误,假如某模块含有一个f次循环,则当遇到第f次重复时有可能有错,也就是要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出现错误的可能性。因为模块并不是一个孤立的程序,为了进行模块测试必须设计出驱动模块和替代其他模块的虚拟模块。驱动模块起到主程序的作用,它接受测试情况的数据后把数据传给被测模块,并打印出有关结果。虚拟模块的用途是替代那些被测试模块调用的子模块,虚拟模块采用原来子模块的接口,可做象征性的数据处理、打印入口检验信息,并把控制返回到被测试的单元。

2.集成测试

在模块测试之后,要考虑将模块集成为系统的过程中可能出现的问题。比如,模块之间传递的数据是否会丢失,一个模块是否可能破坏另一模块的功能。子功能的组合是否达到预期要求的主功能,全程数据结构是否有问题,单个模块的误差集成放大是否会达到不能接受的程度。所以需要在模块集成的同时进行整体测试,发现并清除模块连接中出现的问题。

集成测试是在组装软件模块的同时,进行测试以查找与接口有关的错误。组装模块的过程可以分为自顶向下组装法和自底向上组装法。

(1)自顶向下法

自顶向下组装法是按照控制结构,从主控模块开始,向下地逐个把模块连接起来。组装的过程可以分为下面五步:

①将主控模块作为测试驱动器,直接属于主控模块的各个模块全部用虚拟模块代替。

②按照所选的组装法,即深度优先或宽度优先方法,每次用一个实模块替代一个附属的虚拟模块。

③当装入每个实模块时都要进行测试。

④完成一组测试后再用一个实模块替代另一个虚模块。

⑤可以进行重复测试(即重新再做过去做过的全部或部分测试),以便确定没有新的错误发生。

(2)自底向上法

自底向上组装法是从软件最底层的基本模块开始进行组装及测试,这样在处理上层模块时所需要的子模块总是可以得到的,因而就不再需要虚拟模块。

自底向上的集成测试可以按下面步骤进行:

①低层的模块可以组成簇,以执行某个特定的软件子功能。

②需要编写一个驱动程序作为测试的控制程序,以便安排测试情况的输入及输出。

③对簇进行测试。

④去掉小簇的驱动程序,将几个小簇合并成大簇,再重复②、③、④步,这样在软件结构中逐步向上组装。

应根据软件特性及软件的开发进度选择组装的策略。通常,可以对软件结构的高层采用自顶向下的方法,同时对低层模块采取自底向上的组装法,同时采用两种方法是最好的折中方案。

在集成测试以后应该完成集成测试文档,其中包括:测试范围、测试计划、测试步骤和实际测试结果。

3.有效性测试

经过全部模块的集成测试,已经得到一个完整的软件包。这时进行最后的软件测试,即有效性测试。所谓有效性测试是指:当软件的运行达到了用户的期望时,则认为软件是有效的。用户的期望应包括在软件需求说明书中。

为了证实软件的有效性,要通过一系列的黑盒测试以证明软件特性与要求是相符的。需要制定一个测试计划来规定要进行测试的种类和步骤,看它们是否能达到:

(1)全部的功能要求都得到满足;

(2)全部的性能都达到要求;

(3)文件与数据库均正常;

(4)其他的要求,如可移植性、兼容性、出错自动恢复等。

有效性测试的结果可能包括:

(1)功能和性能要求得到满足,因此系统被接受;

(2)发现有的功能或性能达不到要求,这时应记录列表。

软件工程的这个阶段发现的错误或不一致,不大可能在预定进度完成期限之前得到改正,往往需要开发和使用双方协商解决。

4.系统测试

系统测试是指将软件系统与硬件、外设或其他系统元素结合在一起,对整个软件系统进行测试。测试内容包括:

(1)功能测试——系统能完成哪些功能。

(2)吞吐量测试——系统能完成的最大数量的任务。

(3)可用性测试——界面出错信息,响应方式的可用性。

(4)保密性测试——考察系统对数据和程序的保密性。

(5)安装测试——对安装规程进行测试。

(6)可恢复性测试——模拟硬、软件故障,查看恢复能力。

(7)资料测试——测试整个系统资料的准确性。

(8)程序测试——测试各类使用人员的操作程序。

系统测试的具体实施一般包括:功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。

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

我要反馈