软件测试的步骤

来源:互联网 发布:ubuntu启动项修改 编辑:程序博客网 时间:2024/05/03 20:55

与开发过程类似,测试过程必须分步进行,后一个步骤在逻辑上是前一个步骤的继续。软件从编码结束到交付到用户使用,需要经过单元测试、组装测试、验收测试和系统测试四个步骤。

一、单元测试

单元测试是软件测试的第一步,针对软件设计的最小单位——程序模块,进行正确性检验的测试工作。通常,单元测试和编码属于软件工程工程的同一个阶段。在编写出源程序代码并通过编译程序的语法检查之后,就可以进行单元测试工作,目的在于发现模块内部可能存在的各种出错。多个模块可以进行平行地独立进行单元测试。

1)、单元测试的内容

(1)、模块接口测试

I、模块的形参和其驱动模块送来的参数的个数、类型、次序是否一致;

II、模块i传送给被调用模块的参数与其装模块的参数的个数、类型和次序是否一致;

III、模块传送给库函数的变量个数、类型次序是否正确;

IV、全局变量的定义和用法在各个模块中时候一致;

V、所使用的外部文件的属性是否正确,打开文件的语句是否正确,缓冲区大小是否与记录长度相匹配,文件结束判断处理是否一致。

(2)、局部数据结构测试

模块内部数据是否完整,内容、形式、相互关系是否有错常常是软件错误的主要来源。

I、错误或不相容的数据说明或使用了尚未初始化的变量;

II、错误的初始值或不正确的缺省值;

III、错误变量名或数据类型不相容;

IV、溢出(上溢或下溢)或地址异常;

V、全局数据对模块i测试的影响。

(3)、重要路径测试

由于通常不能进行穷尽测试,因此,在单元测试期间应选择最有代表性、最可能发现错误的执行路径进行测试。重要路径测试方案应重点测试由于错误计算、不正确的比较或不适当的控制流而造成的错误。常见错误如下:

I、运算的次序错误(误用了运算符的优先级);

II、混合运算对象的类型彼此不相容;

III、变量初始值不正确;

IV、精度不够,或由于精度问题两个量不可能相等时,程序中却期待着相等条件的出现;

V、错误地修改循环变量,错误的或不可能达到的循环终止条件;

VI、“差1”错(多循环1次或少循环1次)

VII、当遇到发散的循环迭代时循环不能制止。

(4)、错误处理测试

好的模块设计应能预见出错的条件,并设置相应的储蓄哦处理。这样,程序一旦发生错误就会按照预定的方法进行处理,保证逻辑上的正确性。这种错误处理应当是模块功能的一部分,也应是测试的内容之一。对错误处理进行测试时应重点考虑下列问题:

I、对可能出现错误的描述是否难以理解;

II、出错的描述不足以对错误定位,或足以确定出错的原因;

III、显示的错误与实际的错误不符;

IV、对错误的条件处理不正确;

V、在对错误进行处理之前,错误条件已经引起系统的干预。

(5)边界测试

边界测试是单元测试中最后的、也肯能是最重要的工作。程序常常在边界上出现错误。

例子:在一段程序内有一个n次循环,当达到第n次循环时就有可能出错。因此,要特别注意数据流、控制流中恰好等于、大于或下于确定的比较值时出错的可能性。要精心设计测试用例对这些地方进行测试。

2)、单元测试的步骤

当每个模块模块的代码编制完成,并经过评审和验证确认没有语法错误后,就可以进行单元测试。单元测试的步骤:

(1)、配置测试环境

模块是软件中的一个单独的编译单位,而不是一个单独的执行单位。因此,测试时要为模块设计两类附加模块——驱动模块和桩模块。构成测试环境。

(2)、编写测试数据

主要采用白盒测试用例,以路径覆盖为最佳测试准则,同时辅助以黑盒测试用例,使之对任何合理的输入和不合理的输入都能鉴别和相应。

(3)、进行多个模块的并行测试

二、集成测试

集成测试的主要目标是发现与接口有关的问题。例如:

穿越模块接口的数据可能丢失;

一个模块可能对另一个模块产生不利影响;

各个功能组合起来并未实现主功能;

全局数据可能有问题等等……

集成测试根据模块组装方式体现两种测试方式:非渐增式测试和渐增式测试。

1、非渐增式测试

非渐增式测试是把已经过测试的所有模块一次性组装起来,然后进行整体测试。对于大的工程,这样难度是很大的,所以使用较少。

2、非渐增式测试

1)、自顶向下集成

这种集成方式是从主控模块开始,沿着控制层次自顶向下进行组装。具体步骤可分为:

I、测试主控制模块

II、根据选定的添加策略每次用一个实际模块代替一个桩模块,再用相应的桩模块代替该实际模块的直接下属模块,与已测试的模块或子系统组装成新的系统。测试新加入模块

III、回归测试。

IV、重复上述I和II,知道所有模块均组装到系统中为止。

自顶向下集成方式的缺点是需要建立桩模块,并存在一个逻辑次序问题。

2)、自底向上集成

三、验收测试

集成测试消除了软件接口的错误,系统已成为完整的软件包。要收测试主要由用户参加测试,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。验收测试工作主要包括有效性测试和软件配置复查两方面。

有效性测试在开发环境下运行黑盒测试,验证软件是否满足需求规格说明书类列出的需求。对软件的可移植性、兼容性、出错自动回复、可维护性等进行测试。如果功能和性能与用户要求一致,则通过;如果有差距的话,就提交一份问题报告

软件配置复查保证软件配置的所有成分都齐全,各方面的质量都符合要求,文档内容与程序完全一致,具有软件维护阶段所必需的细节,而且全部文档到已经编号目录。除此职位,还要进行阿尔法测试或者贝塔测试。

四、系统测试

系统测试是将验收测试的软件,作为基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起进行的综合测试。包括恢复测试、安全测试、强度测试三个方面。

 

原创粉丝点击