软件测试实战 - 测试用例设计方法
作者:Caroline-Li 发布时间:[ 2016/9/27 15:33:17 ] 推荐标签:软件测试 测试用例
一、测试分析
测试需求来源
开发需求DR;协议标准需求PR;用户需求UR;案例库需求LR;竞争需求CR;继承需求SR;
2. 测试项分析步骤
a. 为分析的测试项编号;
b. 注明来源:开发文档/法律条款/案例库编号
c. 整合测试项:删除合并重复测试项;大的测试项分解为测试子项;
d. 分析测试项之间的关系;
3. 测试分析方法
a. 质量模型分析法:功能测试项、效率测试项、可靠性、易用性、可维护性、可移植性;
b. 用户场景分析法:游客、普通用户、VIP用户、管理员用户等,不同角色权限不同,测试点也不同;
c. 继承性分析:新增功能,继承旧功能、新旧功能之间关系、影响程度高低;
d. 功能交互分析:功能点与功能点之间、时序(并行、串行)、主被动;
4. 划分测试项优先级
5. 测试设计:思路--测试是不能穷举,根据一些设计方法去选取一些数据尽量覆盖多个测试点;
二、测试设计
1)黑盒测试用例设计技术
1. 等价类划分
概念:将输入/输出域分为若干个子集,从中选取代表数据,如果被选取的数据测试没有问题,认为未被选取的数据测试也没有问题;
相关术语:有效等价类/无效等价类(针对输入的数据是否有意义,是否合法,是否正确)
原则:a. 若输入(输出)是一个取值范围或者值的个数,则划分一个有效等价类,两个无效等价类;
b. 若输入(输出)是一个有限的集合或者必须如何的条件或者布尔值,则划分成一个有效等价类和一个无效等价类;
c. 若输入(输出)已经划分好有效等价类和无效等价类,针对有效等价类具体的值有不同的处理结果和方式,则划分成多个有效等价类和一个无效等价类;
d. 若输入(输出)要同时满足多个条件,则划分成一个有效等价类和多个无效等价类(从不同角度违反规则);
步骤:将SRS划分成规格片段→找出输入条件→进行等价类划分→给划分每一个等价类编号→选代表数据设计用例→直到所有等价类都被覆盖;
PS:编写用例原则:一条测试用例要尽量覆盖多个有效等价类&&一条测试用例只覆盖一个无效等价类;
2. 边界值分析
概念:边界值分析法是对等价类划分法的一种补充,大量的经验数据表明,边界是问题多发区,如果边界测试没有问题,认为内部数据发生问题的概率较小;
相关术语:上点→边界上的点;离点→离边界近的点(闭区间,离点在边界外,开区间离点在边界内); 内点→边界内任意一点;
原则:a. 如果输入(输出)是一个取值范围或者值的个数,则以边界或者边界附近的值作为测试用例数据选取;
b. 如果输入(输出)是一个有序的集合,则以第一个元素和后一个元素作为测试用例数据选取;
c. 如果输入(输出)的值的个数是一个取值范围,则以大值;大值+1;小值;小值-1作为测试用例数据选取;
d. 如果是一个内部数据结构,则以极限值作为测试用例数据选取;
步骤:将SRS划分成规格片段→找出输入条件→进行等价类划分→给划分每一个等价类编号→分析每个数据类型,判断是否有边界值→生成用例;
PS:只有等价类和边界值才能生成终的测试用例,其它测试设计方法生成的都是测试规则或者测试路径(逻辑测试用例)
3. 判定表
概念:分析和表达多种输入条件进行不同组合来完成不同动作的一种工具,目的是分析复杂逻辑关系的条件组合;
相关术语:条件桩(输入),条件项(输入的取值情况),动作桩(输出),动作项(输出的取值情况)
步骤:将SRS划分成规格片段→找出条件桩、条件项,动作桩,动作项→对条件项进行排列组合生成规则数→合并化简→设计终用例;
特点: a. 弥补了等价类不考虑组合的情况;
b. 是一种全排列组合情况,测试较全面;
c. 测试规则数目庞大,测试用例数量庞大,导致测试工作量大;
d. 合并有风险,化简需谨慎;
e. 能发现需求规格说明书中不符合逻辑的需求;
f. 对于逻辑关系比较复杂的需求无法胜任;
适用范围:功能测试;
4. 因果图
概念:将复杂逻辑关系的需求转化为判定表的一种中间系统化方法。目的是为了得到判定表;
相关术语:因(条件),果(动作);
逻辑关系:a.因果之间:恒等/非/与/或;
b.原因之间:E(排斥:多一个为真)、I(包容:至少一个为真)、O(:有且只有一个为真)、R(要求:a为真,b需为真)、 M(强制:a为真,b需为假)
中间节点: 当多个输入之间的关系不是单纯一种与,或的关系,利用中间节点存取中间结果;
当多个输入都在描述同一件事情的时候,可以利用中间节点归并逻辑;
步骤:将SRS划分成规格片段→分析原因和结果→画因果图→判断制约关系→生成判定表→合并删除→设计用例
特点: a. 弥补了等价类不考虑组合的情况;
b. 是一种全排列组合的测试方法,测试的比较全面;
c. 测试规则数目庞大,测试用例数量庞大,导致测试工作量大;
d. 能发现需求规格说明书中不符合逻辑的需求;
e. 能够分析复杂逻辑关系的需求;
f. 制约关系可以快速删减不符合逻辑的规则,从而提高测试设计效率;
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11