【测试用例设计概述】

1 测试用例的定义

(1)测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。

(2)测试用例是执行的最小实体。

2 好测试用例的特点

(1)完整性

对测试用例最基本的要求。

涵盖所有的基本功能项,还要考虑临界测试、压力测试、性能测试等方面。

(2)准确

(3)清晰、简洁

测试用例的最大操作步骤最好控制在15步之内。

(4)可维护性

测试用例可以进行修改、增加、删除等。

(5)适当性

测试用例应该适合特定的测试环境以及符合整个团队的测试水平。

(6)可复用性

不同测试者在同样测试环境下使用同样测试用例都能得出相同结论。

(7)其他

如可追溯性、可移植性。

另外,好的测试用例也是最有可能抓住错误的。

3 测试用例的编写标准

在ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用例编写规范和模板。

标准模板中主要元素如下:

(1)标识符:唯一标识每一个测试用例

(2)测试项:准确描述所需要测试的项及其特征

(3)测试环境要求:表征执行该测试用例需要的测试环境

(4)输入标准:执行测试用例的输入要求(这些输入可能包括数据、文件或者操作)

(5)输出标准:按照指定的环境和输入标准得到的期望输出结果

(6)测试用例之间的关联:标识该测试用例与其他的测试/测试用例之间的依赖关系

4 测试用例设计的误区

(1)能发现到目前为止没有发现的缺陷的用例是好的用例 (×)

因为:

作为测试实施依据的测试用例,应当作一个集合来认识,必须要能完整覆盖测试需求,而不应该针对单个的测试用例去评判好坏。

(2)测试用例应该详细记录所有的操作信息,使一个没有接触过系统的人员也能进行测试 (×)

因为:

这样做的话,测试用例维护费用太高,测试资源难以保证。

(3)测试用例设计是一劳永逸的事情 (×)

因为:

测试用例是动态的,一旦测试环境、需求、设计、实现发生了变化,测试用例都需要相应发生变化。

(4)测试用例不应该包含实际的数据 (×)

因为:

测试用例是“一组输入、执行条件、预期结果”,毫无疑问测试用例中应该包含清晰的输入数据和语出输出。

没有测试数据的用例最多只具有指导性的意义,不具有可执行性。

(5)测试用例中不需要明显的验证手段 (×)

【黑盒测试的概念】

1 什么是黑盒测试

黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。

2 黑盒测试特点

测试人员不需要了解程序内部的代码和实现

测试用例设计不依赖于系统内部的设计与实现

测试用例设计基于功能的定义和需求说明书

从用户角度出发进行测试,能较容易知道用户的需求和用户会遇到的问题

关注于测试数据的选择和测试结果的分析

对测试人员的编程技术要求不高

在自动化测试时较为方便

不易发现代码部分的缺陷

3 采用黑盒测试的目的

主要是在已知软件产品所应具有的功能的基础上,进行:

(1)检查程序功能是否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足;

(2)检测人机交互是否错误,检测数据结构或外部数据库访问是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)的完整性;

(3)检测程序初始化和终止方面的错误。

4 黑盒测试主要测试的错误类型

(1)不正确或遗漏的功能

(2)接口、界面错误

(3)性能错误

(4)数据结构或外部数据访问错误

(5)初始化或终止条件错误等

5 黑盒测试的应用

黑盒测试可以分为:功能测试和非功能测试

5.1 功能测试

等价类划分、边界值分析、因果图法、判定表发、场景法、正交实验法、随机测试法、错误推测法等

5.2 非功能测试

配置/安装测试、兼容性测试、互操作性测试、文档和帮助测试、性能测试、可靠性测试、易用性测试和界面测试等

6 穷举测试的不可能性

理论上,用黑河测试发现程序中的错误,必须把所有可能的输入和输出作为测试数据考虑,来检查程序是否都能产生正确结果,但这是不可能的,因为穷举测试数量太大,无法完成。

所以,需要在大量可能的数据中,选取其中一部分作为测试用例。

【黑盒测试的数学知识】

集合论、函数、命题逻辑

【黑盒测试用例设计技术】

1 等价类划分方法

1.1 概述

等价类划分法

将所有可能的输入数据,即程序的输入域划分为若干个等价类(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

等价类

等价类是指某个输入域的子集合。

在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,它们具有等价特性。

因此,可以合理的假定:测试某等价类的代表值就是等效于对于这一类其他值的测试。

1.2 等价类划分原则

如何划分

划分等价类重要的是:集合的划分。

划分为互不相交的一组子集,而子集的并是整个集合。

采用等价类划分法设计测试用例通常分两步进行:

(1)确定等价类,列出等价类表

从程序规格说明中找出各个输入条件,再为每个输入条件划分多个等价类,形成若干互不相交的子集。

(2)确定测试用例

在同一类中选择一个测试用例。

划分等价类可分为两种情况:

(1)有效等价类

是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。

利用有效等价类,能够检验程序是否实现了规格说明中预先定义的功能和性能。

(2)无效等价类

是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。

利用无效等价类,可以鉴别程序异常处理的情况,检查被测对象的功能和性能的实现是否有不符合规格说明要求的地方。

【注意】

设计测试用例时,要同时考虑这两种等价类。因为,软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。

划分等价类的方法

六条确定等价类的原则

(1)按照区间划分

在输入条件规定了取值范围或值的个数的情况下,则可以确定一个有效等价类和两个无效等价类。

(2)按照输入限制划分

在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确定一个有效等价类和一个无效等价类。

(3)按照输入布尔量划分

在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

(4)按照数值划分

在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。

(5)按照限制条件或规则划分

在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

(6)细分等价类

在确知已划分的等价类中阁员徐在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。

设计测试用例

在确立了等价类后,可建立等价类表,列出所有划分出的等价类

输入条件 有效等价类 无效等价类
…… …… ……
…… …… ……

在设计测试用例时,应同时考虑有效等价类和无效等价类测试用例的设计

从划分出的等价类中按以下三个原则设计测试用例:

(1)为每一个等价类规定一个唯一的编号;

(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类;重复这一步,直到所有的有效等价类都被覆盖为止;

(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类;重复这一步,直到所有的无效等价类都被覆盖为止。

1.3 常见等价类划分测试形式

针对缺陷相关性假设,可将等价类测试分为:

(1)弱等价类测试(单缺陷假设)

(2)强等价类测试(多缺陷假设)

强等价类测试需要等价类笛卡尔积的每个元素对应的测试用例。

比如输入条件中有两个变量 x1 和 x2,x1的有效等价类为:(a) (b) (c) ,x2的有效等价类为:(d)(e)

则强等级类测试需要对x1和x2的所有有效等价类求笛卡尔积,即可以产生 3×2=6 种不同的组合:

(a)(d)    (a)(e)    (b)(d)    (b)(e)    (c)(d)    (c)(e)

强等价类采用笛卡尔积的方式可以保证两种意义上的“完备性”:覆盖所有的等价类、所有有可能的输入组合

针对是否对无效数据进行测试,可以将等价类测试分为:

(1)标准/一般等价类测试:不考虑无效数据值,测试用例使用每个等价类中的一个值

(2)健壮等价类测试:主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。

2 边界值分析法

2.1 什么是边界值分析法、为什么使用边界值分析法

边界值分析法是对输入或输出的边界值进行测试的一种黑盒测试方法。

通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。

无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。

2.2 如何用边界值分析法设计测试用例

(1)首先确定边界情况

通常输入或输出等价类的边界就是着重测试的边界情况。

(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

2.3 基于边界值分析法选择测试用例的原则

(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值、刚刚超越这个范围边界的值作为测试输入数据

(2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据

(3)将规则(1)和(2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值

(4)如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个元素和最后一个元素作为测试用例

(5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例

(6)分析规格说明,找出其他可能的边界条件

【几点说明】

(1)内部边界值条件

指的是哪些没有呈现给用户的边界值条件,主要包括:

数值的边界值检验

字符的边界值检验

其他边界值检验

(2)单故障假设

边界值分析法基于可靠性理论中的“单故障“假设:两个或两个以上故障同时出现而导致软件失效的情况很少,即软件失效基本上是由但故障引起的。

因此,在多变量的边界值分析法中获取测试用例的方法是:

a. 每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取 min min+ nom max- 和 max

b. 对程序中的每个变量重复 a.

【推论】

对于一个含有n个变量的程序,采用边界值分析法测试程序会产生 4n+1 个测试用例。

变量1:min min+ max- max,变量2~n:nom

变量2:min min+ max- max,变量1、3~n:nom

……

变量n:min min+ max- max,变量1~n-1:nom

变量1~n:nom

所以是 4n+1。

2.4 健壮性测试

健壮性测试是作为边界值分析的一个简单的扩充,除了对变量的5个边界值分析取值外,还需要增加一个略大于最大值(max+)和略小于最小值(min-)的取值,检查超过极限值时系统的情况。

因此,对于有n个变量的函数采用健壮性测试需要 6n+1 个测试用例。

2.5 最坏情况测试

软件失效是由多故障引起的。

对每个变量首先进行包含最小值、略高于最小值、正常值、略低于最大值和最大值五元素集合的测试,然后对这些集合进行笛卡尔乘积计算,以生成测试用例。

N个变量的最坏情况测试会产生 5^n 个测试用例

N个变量的健壮最坏情况测试会产生 7^n 个测试用例

3 错误推测法

基于经验的直觉推测程序中所有可能存在的各种情况,从而有针对性地设计测试用例地方法。

例如:

输入数据和输出数据为0的情况、输入表格为空额或出书表格只有一行等都是容易发生错误的情况,可选择这些情况下的例子作为测试用例。

4 因果图法

4.1 因果图法简介

等价类划分方法和边界值分析方法,都未过多考虑输入条件之间的联系、相互组合、相互制约等。

考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例,这就需要利用因果图方法。

因果图法基于这样的一种思想:

一些程序的功能可以用判定表/决策表的形式来表示,并根据输入条件的组合情况规定相应的操作。

因果图法的定义:

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

采用因果图法设计测试用例的步骤:

(1)根据程序规格说明书描述,分析并确定 (输入条件)和 果(输出结果或程序状态的改变),画出因果图;

(2)将得到的因果图转换为判定表;

(3)为判定表中每一列所表示的情况设计一个测试用例。

4.2 因果图介绍

符号

直线连接左右结点:

左结点表示输入状态(或称原因),用 ci 表示原因,置于图的左部;

右结点表示输出状态(或称结果),用 ei 表示结果,置于图的右部。

ci 和 ei 均可取值 0 或 1:0 表示某状态不出现,1 表示某状态出现。

4种关系:

(1)恒等

若 ci 是 1,则 ei 也是1;若 ci 是 0,则 ei 也是 0。

(2)非

若 ci 是 1,则 ei 是 0;若 ci 是0,则 ei 是 1。

(3)或

若 c1 或 c2 或 c3 是 1,则 ei 是 1;否则 ei 是 0。

“或”可以有任意个输入。

(4)与

若 c1 和 c2 都是 1,则 ei 是 1;否则 ei 是 0。

“与”也可以有任意个输入。

约束

输入状态相互之间还可能存在某些依赖关系,称为约束;输出状态之间也往往存在约束。

在因果图中,用特定的符号标明这些约束。

输入条件的 4 类约束

(1)E约束(或称为“异”)

a 和 b 中至多有一个可能为1,即 a 和 b 不能同时为1。

(2)I约束(或称为“或”)

a、b 和 c 中至少有一个必须是1,即 a、b 和 c 不能同时为0。

(3)O约束(或称为“唯一”)

a 和 b 必须有一个且仅有一个为 1。

(4)R约束(或称为“要求”)

a 是 1 时,b 必须是 1,即不可能 a 是 1 时,b 是 0。

输出条件的约束

M约束(或称为“强制”):若结果 a 是 1,则结果 b 强制为 0。

利用因果图生成测试用例的基本步骤

(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符;

(2)分析软件规格说明描述中的内容,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图;

(3)由于语法或环境限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为了表明这些特殊情况,在因国土上用一些约束符号表明约束或限制条件;

(4)把因果图转换为判定表;

(5)把判定表的每一列拿出来作为依据,设计测试用例。

5 判定表/决策表驱动测试

决策表是分析和表达多逻辑条件下执行不同操作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。

5.1 判定表组成

判定表通常由四个部分组成:

(1)条件桩

列出了问题的所有条件,通常认为列出条件的次序无关紧要。

(2)动作桩

列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。

(3)条件项

列出针对它左列条件的取值,在所有可能情况下的真假值。

(4)动作项

列出在条件项的各种取值情况下应该采取的动作。

5.2 规则及规则合并

规则

任何一个条件组合的特定取值及其相应要执行的操作称为规则。

在判定表中贯穿条件项和动作项的一列就是一条规则。

化简

化简即规则合并,是指两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。

5.3 判定表的建立步骤

根据软件规格说明:

(1)确定规则的个数

假设有 n 个条件,每个条件有两个取值(0,1),故有 2^n 种规则

(2)列出所有的条件桩和动作桩

(3)填入条件项

(4)填入动作项

此时得到初始判定表

(5)简化,合并相似规则

5.4 判定表的优点和缺点

优点

判定表把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。

缺点

不能表达重复执行的动作,例如循环结构。

6 场景设计方法

6.1 场景与事件流

现在的软件几乎都是用事件触发来控制流程的。

事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。

一个基本流

最顺利的场景

从开始到结束一切都顺利的场景

很多备选流

除基本流之外的另外一些正常场景

偶尔发生的场景

异常或错误处理

一个基本流:

可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中;

也可能起源于另一个备选流,或者终止用例不再重新加入到某个流中。

软件测试中的场景与事件流

将软件设计方面的场景与事件流思想引入到软件测试中,比较生动地描绘出事件触发时的情景。

6.2 使用场景设计方法设计测试用例的步骤

(1)确定基本流和备选流

(2)根据已确定的基本流和各项备选流生成不同的场景

(3)为确定的场景生成相应的测试用例

(4)复审和验证测试用例,取消多余和等效的

7 正交实验设计方法

(未看)

8 黑盒测试的其他几种方法

8.1 功能图分析方法

用功能图形式化的表示程序的功能说明,并机械地生成功能图的测试用例。

软件测试 | 期末复习——测试基础【黑盒测试用例设计】相关推荐

  1. 【测试】黑盒测试用例设计方法

    黑盒测试用例设计方法包括: 1.等价类划分法. 2.边界值分析法. 3.错误推测法. 4.因果图法. 5.判定表驱动法. 6.正交试验设计法. 7.功能图法. 8.场景法等. 9.状态迁移法 10.流 ...

  2. 测试基础:测试用例设计方法

    测试用例 用例属性: 功能测试.性能测试.兼容测试.安全性测试 编写测试用例包括的内容: (禅道.excel) 编号.标题.前置条件.操作步骤.预期结果.优先级.一级二级分类.测试人员.测试结果.备注 ...

  3. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  4. 【软件测试-实验-4】黑盒测试用例设计(二)

    一. 实验目的 1.掌握黑盒测试用例设计方法: 2.综合运用所学的黑盒测试方法设计进行测试用例设计: 3.掌握测试用例的编写方法. 二. 实验内容 1.使用因果图法对交通一卡通自动充值模拟软件系统进行 ...

  5. 软件测试期末复习重点

    1.软件测试的定义以及软件测试的目的/意义. (1)定义: 软件测试就是一个过程或一系列过程,用来确定计算机代码完成了其应该完成的功能,不执行其不该有的操作. 或:软件测试是由"验证(Ver ...

  6. 软件测试期末复习要点整理

    一.名词解释 1. 黑盒测试 黑盒测试指测试人员通过各种输入和观察软件的各种输出结果来发现软件的缺陷,而不关心程序具体如何实现的一种测试方法. 2. 集成测试 集成测试又叫组装测试,通常在单元测试的基 ...

  7. 软件测试期末复习知识点(第三章、第四章)

    软件测试期末复习 第三章 黑盒测试 等价类划分 因果图 边值分析 功能测试 第四章 白盒测试 逻辑覆盖 路径分析 程序路径的树表示及路径编码 程序插装 断言语句 程序变异 第三章 黑盒测试 等价类划分 ...

  8. 黑盒测试用例设计方法详解

    黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分法 定义:等价类划分法是把所有可能输入的数据,即程序的输 ...

  9. 黑盒测试用例设计方法【转】

    转至http://www.cnblogs.com/Jackc/archive/2009/02/24/1397433.html 用于学习保存 1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析 ...

最新文章

  1. 化境文件上传修改版.可检测任何木马
  2. 在阿里云 ECS 上试图安装 SAP Commerce Cloud 的 137 错误
  3. Objective-C中的@property
  4. 深度干货|云原生分布式数据库 PolarDB-X 的技术演进
  5. Win7系统电脑修改不了文件属性怎么办
  6. 复习django项目三——视图显示模板templates
  7. Matlab Tricks(三十) —— 任意区间的均匀分布
  8. ARCGIS RUNTIME FOR IOS总结(三)
  9. 移动互联网这十年,跨平台技术的演进及 Flutter 的未来
  10. 过去一年,被我们“高估”的技术清单
  11. centos6.5 conky安装配置
  12. Toxophily(hdu2298三分+二分)
  13. Atitit. js mvc 总结(2)----angular 跟 Knockout o99 最佳实践
  14. 测试打字有什么软件是什么,打字测试软件介绍
  15. 数据库服务器硬件运行环境,数据库及WEB服务器环境部署硬件配置模板
  16. 58同城2014校园招聘软件测试笔试题
  17. 阿里云服务器安装jdk8版本
  18. MatLab常见函数和运算符号
  19. [CVE-2020-9496]Apache Ofbiz RCE
  20. 09 | 校招简历投递渠道汇总与对比分析,选对渠道才能事半功倍

热门文章

  1. 腾讯云轻量服务器8核16G14M带宽性能评测CPU内存带宽系统盘
  2. 5G智能灯杆和智慧合杆的区别和功能介绍
  3. T20天正建筑V8.0无法显示三维
  4. AES加密算法原理及python实现
  5. 使用爬虫代理时遇到的一些问题
  6. SpringBoot + Activiti6简单教程包含任意跳转节点
  7. 【Python 实战基础】如何绘制饼状图分析商品库存
  8. Exception from HRESULT: 0x80004004 (E_ABORT) 的错误
  9. 牛客练习Java之--树根
  10. Python错误集锦:pandas读取excel提示ImportError: Missing optional dependency ‘xlrd’.