admin管理员组

文章数量:1547087

1.软件测试过程概述

软件测试过程与软件工程的开发过程是相对应的,我们可以采用V型图来表示软件开发与软件测试的对应关系,也可以采用螺旋形图来表示这种关系。

  单元测试的目的是保证每个模块单独运行正确,多采用白盒技术,检查模块控制结构的某些特殊路径,期望覆盖尽可能多的出错点。
  经单元测试后的模块,组装为软件包,对软件包进行集成测试,主要测试软件结构问题,因测试建立在模块间的接口上,所以多为黑盒测试,适当辅以白盒测试技术,以便能对主要控制路径进行测试。
  系统测试主要是检验软件是否满足功能、行为和性能方面的要求,这一步完全采用黑盒测试技术。
  验收测试是检验软件产品的最后一道工序,与前面各种测试过程的不同之处主要在于它突出了客户的作用,同时软件开发人员也要参与。

2.单元测试

2.1 单元测试的定义

单元测试是对软件设计的最小单元—模块进行正确性检验的测试工作,主要测试模块在语法、格式和逻辑上的错误。
单元选择的依据:
(1)单元必须是可测的;
(2)单元的行为或输出是可观测的;
(3)有明确的可定义的边界或接口。
确定单元的最基本原则是“高内聚,低耦合”,常见的示例如下(五个):
(1)在使用过程化编程语言开发设计的软件中,单元可以用一个函数或过程表示,也可以用紧密相关的一组函数或过程表示。
(2)在使用面向对象编程开发工具设计的软件中,单元可以用一个类或者类的一个实例表示,也可以用方法实现的一个功能表示。
(3)在可视化图形环境下或图形用户界面环境下,单元可以是一个窗口,或者是这个窗口中相关元素的集合。
(4)在基于组件的开发环境中,单元可以是一个预先定义的可重用的组件。
(5)对于Web编程的网页,单元可以是页面上的一个子功能。

2.2 单元测试的重要性与原则

2.2.1 单元测试的重要性

从如下几个方面就可以看出单元测试的重要性:
(1) 时间方面
(2) 测试效果方面
(3) 测试成本方面
(4) 产品质量方面
2.2.2 单元测试原则.(7点)
(1) 单元测试越早进行越好;
(2) 单元测试应该依据《软件详细设计规格说明》进行;
(3) 对于修改过的代码应该重做单元测试,以保证对已发现错误的修改没有引入新的错误;
(4) 当测试用例的测试结果与设计规格说明上的预期结果不一致时,测试人员应如实记录实际的测试结果;
(5) 单元测试应注意选择好被测软件单元的大小;
(6) 一个完整的单元测试说明应该包含正面测试和负面的测试;
(7) 注意使用单元测试工具.

2.3单元测试的主要任务

单元测试是针对每个程序模块进行测试,单元测试的主要任务是解决以下5个方面的测试问题。

2.3.1 模块接口测试

对模块接口的测试是检查进出模块单元的数据流是否正确,所以对模块接口的测试必须在任何其他测试之前进行。
针对模块接口测试应进行的检查,主要涉及以下几方面的内容。(11方面)
① 模块接受输入的实际参数个数与模块的形式参数个数是否一致。
② 输入的实际参数与模块的形式参数的类型是否匹配。
③ 输入的实际参数与模块的形式参数所使用单位是否一致。
④ 调用其他模块时,所传送的实际参数个数与被调用模块的形式参数的个数是否相同。
⑤ 调用其他模块时,所传送的实际参数与被调用模块的形式参数的类型是否匹配。
⑥ 调用其他模块时,所传送的实际参数与被调用模块的形式参数的单位是否一致。
⑦ 调用内部函数时,参数的个数、属性和次序是否正确。
⑧ 在模块有多个入口的情况下,是否有引用与当前入口无关的参数。
⑨ 是否会修改了只读型参数。
⑩ 出现全局变量时,这些变量是否在所有引用它们的模块中都有相同的定义。
有没有把某些约束当做参数来传送。

2.3.2 模块局部数据结构测试

模块的局部数据结构是经常发生错误的错误根源,在单元测试工作过程中,必须测试模块内部的数据能否保持完整性、正确性,包括内部数据的内容形式及相互关系不发生错误。
一般注意一下几类错误:
1)不正确的或不一致的类型说明;
2)错误的初始化或默认值;
3)错误的变量名;
4)不相容的数据类型;
5)下溢、上溢或者地址错误。

2.3.3 模块中所有独立执行路径测试

在单元测试中,应对模块中的每一条独立路径进行测试,此时设计的测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误。常见的错误如下:
(1)误解的或不正确使用算术优先级;
(2)混合类型的运算;
(3)错误的初始化;
(4)算法错误;
(5)运算精确度不够精确;
(6)表达式的符号表示不正确等。
针对判定和条件覆盖,测试用例还要能够发现如下错误:
(1)不同数据类型的比较;
(2)不正确的逻辑操作或优先级;
(3)应相等的地方由于精确度错误而不能相等;
(4)不正确的判定或不正确的变量;
(5)不正常的或不存在的循环终止;
(6)当遇到分支循环时不能退出;
(7)不适当的修改循环变量。

2.3.4 各种错误处理测试

良好的设计应该预先估计到软件投入运行后可能发生的错误,并给出相应的处理措施,测试错误处理的要点是检验如果模块在工作中发生了错误,其中的出错处理实施是否有效。应主要检查下面的情况:
(1)对运行发生的错误描述得难以理解;
(2)报告的错误与实际遇到的错误不一致;
(3)出错后,在错误处理前就引起了系统干预;

本文标签: 测试软件学习笔记过程