一、概述
1.基于规格说明的测试依据为软件需求规格说明、以及模型、用户需求等,把程序看作一个黑盒子,不考虑程序内部结构和内部特性,在程序接口进行测试,检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能有效接收输入数据而产生正确的输出信息
2.运用基于规格说明的测试技术,导出满足以下标准的测试用例集
所设计的测试用例能够减少达到合理措施所需的附加测试用例数
所设计的测试用例能够告知某些错误的存在或不存在,而不是仅仅与特定测试相关的错误
二、等价类划分
1.定义:把程序的输入域分成若干部分(子集),然后从每个部分中选取少数代表性的数据作为测试用例,每一类的代表性数据在测试中的作用可以等价于这一类中的其他所有值,这就是等价类
2.等级类划分:有效等级类、无效等级类
3.有效等价类:对于程序的规格说明来说是合理的,有意义的输入数据构成的集合,利用有效等级类可检验程序是否实现了规格说明中规定的功能和性能
4.无效等级类:不合理的或无意义的输入数据所构成的集合
5.常见的划分等价类包括:区间划分、按数值划分、按数值集合划分、按限制条件或规划划分、按处理方式划分
等价类划分原则:
1)在输入条件规定了取值范围或值得个数的情况下,可以确定一个有效等价类和两个无效等价类
2)在输入条件规定了输入值的集合或者规定了‘’必须如何''的条件情况下,可以确定一个有效等价类和一个无效等级类
3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
4)在规定了输入数据的一组值,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类和若干个无效等价类
6)在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应将该等价类进一步划分为更小的等价类
5.1.1建立等价类:输入以年表示的日期

5.1.2确定测试用例步骤
为每一个等价类规定一个唯一的编号、尽可能多地覆盖未覆盖的有效等价类、只覆盖一个无效等价类

6.分类树法:是一种对程序的输入域划分子集的方法,它将输入域分割成若干各独立的分类,每个分类再根据一定的准则再次划分类和子类,直到将整个输入域分割成一些不可再分的子类的组合为止,每一次划分都会生成若干各独立而不重复的类或子类,同时还应保证分类集的完整性,即所有输入域都被标识且被包括在了某个分类中

分类树划分完毕之后,可以通过结合表的方式将各个叶子节点的内容结合而成测试用例,如图所示,分类树的划分过程和等价类划分有点类似,但两者的区别在于,分类树方法中所划分出的类是完全不相交的,而等价类划分中,某些时候可能会重合

7.边界值法
1)边界值测试:错误更容易发生在输入域的边界或者说极值附近,而非输入域的中间部分
2)边界值分二值边界和三值边界测试,二值边界测试,应为每个边界选择两个输入,这些输入对于边界上的值和等价划分边界外的增量距离;对于三值边界测试,应为每个边界选择三个输入,这些输入对应于边界上的值和等价划分边界的每一侧的增量距离,增量距离应定义为对应的数据类型的最小有效值
3)二值边界:如果有个n变量的软件输入域,使其中一个变量取略小于最小值,最小值、正常值、最大值、略大于最大值,产生4n+1各测试用例
4)三值边界:取略小于最小值、最小值、略小于最大值、正常值、略小于最大值、最大值、略大于最大值,产生用例6n+1
8.语法测试
1)语法模型表示为多个规则,其中每个规则根据规则语法中的元素序列、迭代、之间的选择来定义输入参数的形式
2)语法测试中的测试条件为输入的全部或部分语法模型
3)在语法测试中,应基于两个慕白哦来设计测试用例
正面测试,各种方式覆盖有效语法
负面测试,故意违反规则语法
4)语法设计原则

8.组合测试
1)目的:为组合情况提供一种相对合理的解决方案,在保证错误检出率的前提下采用较少的测试用例,可以显著减少所需的测试用例数量,而不会影响功能覆盖
2)组合测试的输入数据要求:参与组合的参数的取值范围必须是可离散的,对于取值范围连续的参数或存在过多的取值,有必要先使用其他测试设计技术,如等价类、分类树、边界值
3)组合测试的实施步骤
识别所需测试的软件功能,以及影响被测软件功能的参数
识别每个参数的取值范围,取值范围i应为有限各离散取值
识别参数间的约束
采用对应组合测试方法,生成于组合强度相符的测试覆盖项
生成测试用例
4)常见组合强度包括:单一选择、基本选择、成对选择、全组合和K强度组合
单一选择:所欲参数取值范围的任意可能取值至少被一个测试用例覆盖
基本选择:对于任意一个参数的两个取值,存在两个测试用例覆盖这两个取值,且其他参数的取值相同
成对组合:取值范围的任意一对有效取值至少被一个测试用例覆盖
全组合:所有参数取值范围的任意有效取值的组合至少被一个测试用例所覆盖
K强度组合:要求K的组合中,任意K个参数取值范围的任意有效的组合至少被一个测试用例覆盖
9.判定表测试
1)判定表展示出输入条件与输出结果的对应关系,判定表测试以判定白哦的形式使用了测试项条件(原因)和动作(结果)之间的逻辑关系(判定规则)模型
2)判定表四个部分组成
条件桩:列出了问题的所有条件
动作桩:规定可能采取的操作
条件项:针对它所列出条件的取值
动作项:条件项的各种取值情况下应该采取的动作
3)规则:任何一个条件组合的特定取值及相应要执行的操作,在判定表中贯穿条件项和动作项一列就是一条规则,判定表中列出多少组条件取值,也就有多少条规则,条件项和动作项就有多少列
4)建立判定表
确定规则的个数,假如有N个条件,每个条件有两个取值0,1,则有2n种规则
列出所有的条件桩和动作桩
填入条件项
填入动作项
简化
10.判定表测试

本判定表中,每一列是一个判定规则,实际操作中也可以把整个判定表转置过来。用行的形式来显示判定规则
条件桩中T白哦是条件为真,F表示条件为假,动作桩中T表示动作要执行,F表示动作不执行,*表示条件组合是无效的
1)适合使用判定表设计测试用例的条价
规格说明以判定表的形式给出,或很容易转换成判定表
条件的排列顺序不影响执行哪些操作
规则的排列顺序不影响执行哪些条件
当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则
如果某一规则要执行多个操作,这些操作的执行顺序无关紧要
11.因果图法
1)因果图是一种简化了的逻辑图,能直观地表明输入条件和输出动作之间的因果关系
2)因果图可帮助测试人员把注意力集中到与软件功能相关的输入组合上,使用因果图来辅助设计测试用例,非常合适描述多种输入条件的组合,根据输入条件组合,约束关系和输出条件的因果关系,分析输入条件的各项组合情况,从而设计测试用例
3)因果图的基本关系符号和约束
4)因果图一般以左侧为原因,右侧为结果,表示原因和结果之间基本关系的符号如下

5)因果图符号

6)因果古导出测试用例步骤
分析程序规格说明的描述,哪些是原因,哪些是结果,原因常常是输入条件或是输入条件的等价类,而结果是输出条件
分析程序规格说明的描述中语义的内容,并将其表示连接成各个原因与各个结果的因果图
标明约束条件,由于语法或环境的限制,有些原因和结果的组合情况不可能出现的,为表明这些特定的情况,在因果图上使用若干个标准的符号标明约束条件
把因果图转换成判定表

12.状态转移测试
1)状态转移测试是把被测软件的若干状态以及状态之间的转移条件和转移路径抽象出来,从覆盖所有状态转移路径的角度去设计测试用例,关注状态的转移是否正确
2)有机状态机是一种用来进行对象行为建模的工具,主要用于描述对象在其生命周期内所经历的状态序列,以及如何响应来自外界的各种事件进行状态转移
3)状态转移测试的步骤
画出状态迁移图、列出状态-事件表、画出状态转换树、并从状态转换树导出测试路径、根据测试路径编写测试用例
4)状态覆盖要求
状态覆盖,能使状态模型中所有的状态都被访问到;单步转移,应能覆盖状态模型中的有效单步转移;全转移,能覆盖状态模型中的有效转移和无效转移;多步转移,能覆盖状态模型中n+1步转移的有效序列



13.场景测试
1)现在的软件几乎都是用事件触发来控制流程,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流
2)场景测试使用被测软件与用户或其他系统之间的交互列模型来测试被测软件的使用流程,测试条件需要在测试中覆盖的基本场景和可选场景
基本场景:被测试软件的预期典型动作序列,或无典型动作序列时所cai'yong
可选场景:表示被测软件可选择的(非基本)场景,备选的场景包括非正常的使用,极端或压力条件和异常等




14.随机测试
1)随机测试额目的时在选定的输入分布模型内生成被测软件的输入参数,形成一个测试集,这种测试技术不需要对被测软件的输入域进行划分,仅要求输入值时从输入域中随机选择的
2)随机测试一般用在测试用例自动化生成和执行的过程中,常见的被测软件输入分布模型的定义如正态、均匀分布、运行剖面
3)按照预先定义好的输入分布模型,计算机随机选择输入值并执行,反复返代这一过程直到满足事先定义好的停止条件为止
4)随机测试可以手动测试或自动化测试,完全自动化随机测试不需要人工干预,是最有效的,但是,为了达到完全自动化,必须满足:
自动化生成随机测试的输入值、从测试依据中自动生成预期结果、自动按测试依据核对测试结果
15.测试设计方法选择策略
采用分类树或等价类对函数的输入域进行划分,将无限测试变成有限测试
任何情况下都必须使用边界值分析方法
参数配置类的软件,要用组合测试技术选择较少的组合方式达到最佳效果
程序功能说明中含有输入条件的组合情况,则一开始就可选用因果图法绘制判定表,然后用判定表法继续进行测试
业务流清晰的系统,场景测试法可以贯穿整个测试案例过程
状态转移测试对于明确存在不同状态转移的软件设计测试用例的效果非常好
对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例
测试用例自动生成和使用中可以结合被测软件实际,考虑选用分类树,状态转移测试、随机测试
对于形式化方式定义的规格说明,语法测试是一种比较合适的方式
三、测试用例的编写
1.编写测试用例属于动态测试过程中的测试设计和实现过程的工作
2.编写测试用例过程工作:
1)分析被测如阿健的相关测试依据,将待测的特征组合成特征集,记录在测试设计规格说明中
2)确定每个特征的测试条件,并记录在测试设计规格说明中
3)导出测试覆盖项,记录在测试用例规格说明中
4)导出测试用例,并记录在测试用例规格说明中
5)根据执行的约束将测试用例汇集到一个或多个测试集中,并记录在测试规格说明中
6)对测试集中的各测试用例进行排序,导出测试规程
3.最终工作产品包括测试设计规格说明,测试用例规格说明和测试规程规格说明三个文档
4.测试设计规格说明是测试设计和实现过程的第一个工作产品,它确定了要测试的特征,并从每个特征的测试依据导出测试条件,作为定义测试用例和要执行的测试规程的第一步
5.特征集是测试项需被测试的特征的逻辑分组
6.特征集应包括如下内容:唯一标识符、目标、测试优先级、具体策略和可追溯性
7.在总结特征集后,需要将对应得测试依据指定的项或事件梳理成测试条件
8.测试条件应包括如下内容:唯一标识符、测试条件描述、测试优先级和可追溯性
9.测试用例规格说明:该文档标识了测试覆盖项,以及从一个或多个特征集的测试依据导出的相应测试用例
10.测试覆盖项指的是使用测试设计技术从测试条件中导出,预计未来的测试用例将覆盖的内容
11.完整的测试覆盖项应包括以下内容:唯一标识符、测试覆盖项描述、测试优先级和可追溯性,每个测试覆盖项都能追溯到其所书的测试条件,特征集或其引用的测试依据
12.针对每个测试覆盖项再进一步导出测试用例
13.一个导出的完整用例应该包括以下内容:唯一标识符、测试目标、测试优先级、可追溯性、测试的前置条件、输入、预期结果和评价判定结果的准则,再执行完测试之后再增加对应的实测结果和结果判定
14.其他特定
测试规格说明:用于解决测试用例从设计到执行这一问题的文档,该文档按照执行顺序描述了所选测试集中的测试用例
测试集通常会反映特征集,但是他们也可包含许多特征集的测试用例
选择哪些测试用例进入一个测试集,可以根据识别的风险、测试依据、执行约束、复测或回归测试来选择
一个测试集的描述应包括以下内容:唯一标识符、测试目标、测试优先级、测试集内容
测试规程指定的是对测试集中的测试用例如何按照前置条件、后置条件以及其他测试所需的依赖关系执行的顺序操作
一个测试规程应包括以下内容:唯一标识、启动操作、待执行的测试用例、与其他规程的关系、如何停止及结束测试
浙公网安备 33010602011771号