软件测试的基本技术
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 黑盒测试方法
3.3.1 黑盒测试方法概述 黑盒测试有两个显著的特点: (1)黑盒测试不考虑软件的具体实现过程,当在软件实现的过程发
生变化时,测试用例仍然可以使用;
(2)黑盒测试用例的设计可以喝软件实现同时进行,这样能够压缩 总的开发时间。
黑盒测试有两种基本方法,即通过测试和失败测试。
3.3 黑盒测试方法
黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试 主要是为了发现以下的错误:
(1)是否有不正确的功能或者是遗漏的功能; (2)接口能否正确地接收输入数据并产生正确的输出结果;
3.3 黑盒测试方法
3.3.1 黑盒测试方法概述 黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试
主要是为了发现以下的错误: (3)是否有数据结构错误或外部信息访问错误; (4)性能是否能够满足要求; (5)是否有程序初始化和终止方面的错误。
第三章 软件测试的基本技术
软件测试 山西大学经济与管理学院
导读
软件测试的方法有多种多样,可以对其从不同角度加以 分类。比如说:
可以从是否需要执行被测试的软件的角度 从是否对系统的外部功能还是系统的内容结构的角度 从软件测试的策略和过程的角度 从不同的角度划分,有不同的分类方式。这一章作为软 件测试的技术,主要介绍了上述分类中的静态测试、动态测 试、黑盒测试和白盒测试的技术。
(5)验收测试:是软件产品质量额最后一关,在这一环节,测试主 要从用户的角度着手,参与者主要是用户及少量的程序开发人员,通常 采用的测试方法为黑盒测试。
3.2 静态测试和动态测试
3.2.1 静态测试 静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误
的测试,它和动态测试的区别就是是否需要程序被运行。 也就是说,在进行测试的过程中,只要是不需要执行代码,就可以
3.3 黑盒测试方法
3.3.2 等价类划分法 四个标准等价类测试用例是:
测试用例
Test1 Test2 Test3 Test4
abc5来自552
2
3
3
4
5
4
1
2
预期输出
等边三角形 等腰三角形 一般三角形 非三角形
3.3 黑盒测试方法
3.3.2 等价类划分法 考虑a,b,c的无效值产生了下面7个健壮等价类测试用例是:
3.1 软件测试技术的分类
3.1.1 从是否需要执行被测软件的角度分类 从是否需要执行被测试软件的角度划分,软件测试可以分成动态测
试(Dynamic Testing)和静态测试(Static Testing)两类。 (1)静态测试:就是通过对被测程序的静态审查,发现代码中潜在
的错误的测试。也成人工测试或者代码评审。 (2)动态测试:动态测试是通常意义上的测试,即通过使用和运行
3.1 软件测试技术的分类
3.1.3 从软件测试的策略和过程的角度分类 从软件测试的策略和过程的角度进行分类,软件测试可分为单元测
试(Unit Testing)、集成测试(Integration Testing)、确认测试( Validation Testing)、系统测试(System Testing)和验收测试( Verification Testing)。
所谓等价类是指输入域的某个子集合。所有等价类的并集就是整个
输入域。
对揭露程序中的故障来说,
等价类中的每个元素是等效的。
3.3 黑盒测试方法
3.3.2 等价类划分法
(1)等价类划分法概述
软件不能只接收合理有效的数据,也要具有处理异常数据的功能, 这样的测试才能确保软件具有更高的可靠性。因此,在划分等价类的过 程中,不但要考虑有效等价类划分,同时也要考虑无效等价类的划分。
3.2 静态测试和动态测试
3.2.1 静态测试 通常在静态测试阶段进行以下一些测试活动: (1)检查算法的逻辑正确性 (2)检查模块接口的正确性 (3)检查输入参数是否有合法性检查 (4)检查调用其他模块的接口是否正确,检查实参类型、实参个数
是否正确,返回值是否正确 (5)检查是否设置了适当地出错处理 (6)检查表达式、语句是否正确,是否含有二义性
有效等价类是指对软件规格说明来说,合理、有意义的输入数据所 构成的集合。
无效等价类则和有效等价类相反,即 g
不满足程序输入要求,或者无效输入的数 f
据所构成的集合。
e
a
b
c
d
3.3 黑盒测试方法
3.3.2 等价类划分法 (1)等价类划分法概述 使用等价类划分法,首先必须在分析需求规格说明的基础上划分等
被测软件,发现潜在错误。动态测试的对象必须是能够由计算机真正运 行的被测试的程序。它又包括:黑盒测试和白盒测试。
3.1 软件测试技术的分类
3.1.2 从软件测试用例设计方法的角度分类 从软件测试用例设计方法的角度进行分类,软件测试的技术分为黑
盒测试(Black-box Testing)和白盒测试(White-box Testing)。 (1)黑盒测试:是一种从用户角度出发的测试,又称为功能测试或
者数据驱动测试、基于规格说明的测试等。简单地说,若测试用例的设 计时基于产品的功能,目的是检查程序各个功能是否实现,并检查其中 的功能错误,则这种测试方法称为黑盒测试。
(2)白盒测试:基于产品的内部结构来进行测试,检查内容操作是 否按规定执行,软件各个功能部分是否得到充分应用。白盒测试又称为 结构测试或者逻辑驱动测试或基于程序的测试。
2.5,4.5,5.5 6
3
7
4, 5
8
2,3,4,5
9
3,0,8
10
0,6,0
11
2,-7,-5 -3,-5,-7 101,4,8 3,101,101 101,101,101
覆盖的等价类 12 13 14 15 16 17 18
3.3 黑盒测试方法
3.3.2 等价类划分法 (2)常见等价划分形式 针对是否对无效数据进行测试,可以将等价类测试分为以下几种具
试(Unit Testing)、集成测试(Integration Testing)、确认测试( Validation Testing)、系统测试(System Testing)和验收测试( Verification Testing)。
(4)系统测试:主要任务是检测被测软件与系统其他部分的协调性 ,通常采用黑盒测试的方法。
价类。 其次,建立等价类表,列出所有的等价类。 再次根据已列出的等价类表,按下述步骤确定测试用例: (1)为每一个等价类规定一个唯一的编号 (2)设计一个新的测试用例,使其能尽肯能多的覆盖有效等价类 (3)设计一个新的测试用例,使其仅覆盖一个无效等价类
3.3 黑盒测试方法
3.3.2 等价类划分法 等价类划分测试举例 在三角形问题中,输入条件要求:
测试用例 a b c
Test1 Test2 Test3 Test4 Test5 Test6 Test7
34 5 -1 5 5 5 -1 5 5 5 -1 101 5 5 5 101 5 5 5 101
预期输出
一般三角形 a 值不在允许的范围内 b 值不在允许的范围内 c 值不在允许的范围内 a 值不在允许的范围内 b 值不在允许的范围内 c 值不在允许的范围内
3.3 黑盒测试方法
3.3.1 黑盒测试方法概述 黑盒测试是一种从用户角度出发的测试,又称为功能测试或者数据
驱动测试、基于规格说明的测试。黑盒测试的基本观点是:任何程序都 可以看做是从输入定义域映射到输出值域的函数过程。它将被测程序视 为一个打不开的黑盒子,盒子中的内容完全不知道,只知道盒子是要做 成什么样子的。
3.3 黑盒测试方法
3.3.3 等价类的指导方针 如果执行语言是强类型的,则没有必要使用健壮等价类测试。 如果错误输入检查非常重要,则应进行健壮等价类测试。 如果输入数据以离散值区间或集合的形式定义,则等价类测试是合
适的。 在发现“合适”的等价关系之前,可能需要进行多次尝试。
3.3 黑盒测试方法
3.3.2 等价类划分法
(1)等价类划分法概述
等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不 能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完 整性和代表性。
等价类划分法把所有可能的输入数据,即程序的输入域划分成若干 部分,然后每一个子集中选取少数具有代表性的数据作为测试用例。
(1)单元测试:是针对每个单元的测试,是软件测试的最小单位。 (2)集成测试:是对已测试过的模块进行组装,对组装以后的集成 块进行测试。 (3)确认测试:是检验所开发的软件能否满足所有功能和性能需求 的最后手段。
3.1 软件测试技术的分类
3.1.3 从软件测试的策略和过程的角度分类 从软件测试的策略和过程的角度进行分类,软件测试可分为单元测
3.2 静态测试和动态测试
3.2.1 静态测试 通常在静态测试阶段进行以下一些测试活动: (7)检查常量或全局变量使用是否正确 (8)检查标识符的使用是否规范、一致,变量命名是否能做到忘名
知意、简洁、规范和易记 (9)检查程序风格的一致性、规范性,代码是否符合行业规范,是
否所有模块的代码风格一致、规范 (10)检查代码是否可以优化,算法效率是否最高 (11)检查代码注释是否完整,是否正确反映了代码的功能,并查
被测试的程序,只对被测程序进行特性分析,因此,静态方法常称为“ 分析”,静态分析是对被测程序进行特性分析的一些方法的总称。
所谓静态分析,就是不需要执行所测试的程序,而只是通过扫描程 序正文,对程序的数据流和控制流等信息进行分析,找出系统的缺陷, 得出测试报告的过程。
静态测试包括代码检查、静态结构分析、代码质量度量等。它可以 由人工进行,充分发挥人的逻辑思维又是,也可以借助软件工具自动进 行。
一边 < 零 二边 < 零
12
13 14
1 c 100
三边 < 零
15
一边 > 100
16
二边 > 100
17
三边 >100
18
3.3 黑盒测试方法
3.3.2 等价类划分法
三角形问题的无效等价类测试用例
abc 1.5, 4, 5 3.5,2.5,5
覆盖的等价类 4 5
abc 0,0,0 -3, 4,6
对软件进行测试的方法,可以看成是静态测试方法。反之,需要对软件 执行对应代码的测试方法则为动态测试。
静态测试(汽车停止中) 动态测试(发动机运行中)
图3-1 静态测试与 动态测试比喻图
踩油门 看车漆 打开前盖检查
发动汽车 听发动机的声音 上路行驶
3.2 静态测试和动态测试
3.2.1 静态测试 静态测试方法的主要特征是在测试源程序时,计算机并不真正运行
体的形式: ◇ 标准等价类测试 ◇ 健壮等价类测试 ◇ 对等区间划分
3.3 黑盒测试方法
3.3.2 等价类划分法 标准等价类和健壮等价类测试 三角形问题有四种可能输出: 非三角形,一般三角形,等腰三角形和等边三角形。利用这些信息
来确定输出(值域)等价类
R1={<a,b,c>:边为a,b,c的等边三角形} R2={<a,b,c>:边为a,b,c的等腰三角形} R3={<a,b,c>:边为a,b,c的一般三角形} R4={<a,b,c>:边a,b,c不能形成三角形}
3.3.3 边界值分析法 (1)边界值分析法 边界值分析法是一种补充等价类划分法的测试用例设计技术,不同
于等价类划分法选择等价类的任意元素,它选择等价类的边界来设计测 试用例。使用边界值分析方法设计测试用例时,首先应确定边界情况。
比如,在作三角形计算时,要输入三角形的三个边长:a、b和a。当 满足a+b>c、a+c>b及b+c>a才能构成三角形。但如果把三个不等式的任何 一个大于号“>”错写成大于等于号“≥”,那就无法构成三角形了。
找错误的注释。
3.2 静态测试和动态测试
3.2.2 动态测试 动态测试是通常意义上的测试,即通过使用和运行被测软件,发现
潜在错误。动态测试的对象必须是能够由计算机真正运行的被测试的程 序。它是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间 分析以及测试覆盖等方面的测试。
动态测试方法的基本步骤如下: (1)选取定义域的有效值,或选取定义域外的无效值。 (2)对已选取值决定预期的结果。 (3)用选取值执行程序。 (4)将执行结果与预期的结果进行对比,不吻合则说明程序有误。
整数; 三个数; 取值在1到100之间
3.3 黑盒测试方法
3.3.2 等价类划分法
等价类划分测试举例
有效等价类
号码
无效等价类
号码
整数
一边为非整数
4
1
二边为非整数
5
三边均为非整数
6
只有一条边
7
三个数
2
只有二条边
8
多余三条边
9
一边为零
10
二边为零
11
输入三
1 a 100
个整数
1 b 100
3
三边为零