测试用例常见的设计方法

测试用例常见的设计方法有等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。

一.等价类划分法

顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
  例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
  我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。
  然后从每个子集选出若干个有代表性的值:
  空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
  1-7位数字:“234” (无效等价类实例)
  8位数字:“00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
  9位或以上数字:“1234567890” (无效等价类实例)
  非数字:“abc&!!!” (无效等价类实例)
  他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
  等价类的划分,最关键的是子集的划分。实际上,非数字还可以继续划分子集:字母,特殊字符。
  究竟要划分到何种程度才合适呢?我请教过做测试的朋友,他的意见是,看你有多少资源和时间,还有,看是否值得。
  对此,我表示赞同,毕竟无论你怎么测试,总会有未发现的缺陷存在,所以,先解决容易被发现的问题再说。

二.边界值分析法

长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
  例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
  注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。

三.错误推测法

错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
  这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

四.判定表法

又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
  例如,某公司的对客户分类标准如下:
  顾客每次订货额在 1000元以上(含1000元),信誉好的,订单设“优先”标志;
  信誉不好,但是老客户的,订单设“优先”标志;
  信誉不好,但是新客户的,订单设“正常”标志;
  每次订货额在 1000元以下,订单设“正常”标志。

  绘制的决策表如下:

此表分两大行,两大列,分别用不同的颜色区别。
  浅蓝:列出所有条件(或称为输入)
  浅灰:列出所有结果(或称为输出,行动或决策)
  浅黄:穷举所有条件的组合
  浅绿:根据每一列的条件,判断出结果
  因为穷举了所有条件,所以可以说这个判断是100%正确的。下一步是对这个表进行合并优化。
   例如,从编号为1,2的列可以看出,顾客订单>=1000,信誉好,不管是新顾客还是老顾客,都设为优先,于是上面的表合并整理后,得到下表

这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
  从上面的表格,我们就可以写出更简洁的判断语句。

五.正交实验法

用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
  其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
  虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
  例如:
  某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
  按照传统的方式,我们将会穷举所有的组合,来编写测试用例,组合个数是222=8。
  排列组合参见下表

当组合条件不多的时候,穷举暂时没问题,但是,一旦条件多了,组合个数就会以指数形式增长。
  这个时候,就要用到正交表了,通过选出有代表性的测试实例,达到以少数代替全面的效果。
  正交表如何设计呢,这个问题实际很复杂,涉及到组合统计的数学知识,有的正交表甚至到目前为止,还未得出算法。
  我们只能通过已知的模型套上去。
  例如,Dr. Genichi Taguchi 设计的正交表
  https://www.york.ac.uk/depts/maths/tables/orthogonal.htm
  Technical Support ( support.sas.com ) com 提供的
  http://support.sas.com/techsup/technote/ts723_Designs.txt
  首先,我们来看看基本的概念。
  因素:被测的元素称为因素,例如上面的性别,班级,成绩,均为因素,因素的个数我们记为k,此处k=3
  水平:因素的可能值,称为水平。例如班级的可能值为1或2。水平的个数我们记为m,此处正好每个因素的水平都是2,此处m=2。
  那么正交表的行数n的计算公式为,n=k*(m-1)+1,此处为n=3*(2-1)+1=4。即共有4行。
  我们通常用L表示这个正交表,完整的表示为Ln(mk)
  如果每个因素的水平数相等,我们称之为单一水平正交表,例如本例子就是,L4(23)
  各列水平数不完全相同的正交表称为混合水平正交表。如L8(4124),表示有一个因素的水平为4,有4个因素的水平为2。
  按照这个表达式,我们可以去套用已知的正交表。例如本例子是L4(23),从上面提供的两个链接均可以查到例子,虽然表达方式略有不同,但实际是一样的,我们从http://support.sas.com/techsup/technote/ts723_Designs.txt 查到,其正交表的格式为:
  23 n=4
  000
  011
  101
  110
  此处0,1是对可能值的编号,例如,我们可以将(0,1)分别映射为(女,男)(1班,2班)(及格,不及格)
  按照上面的格式,
  000:女 1班 及格
  011:女 2班 不及格
  101:男 1班 不及格
  110:男 2班 及格
  这就是我们所得到的正交表。

六.总结

功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
  实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。

常见测试用例的设计方法相关推荐

  1. 测试用例的设计方法(全)

                                                 测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义   是把所有可能的输入数据,即程序的输入域 ...

  2. 软件测试学习笔记:测试用例的设计方法(全)

    测试用例的设计方法(全) 等价类划分方法: 一.方法简介 1.定义 2.划分等价类: (1)有效等价类 (2)无效等价类 3.划分等价类的标准: 4.划分等价类的方法 5.设计测试用例 二.实战演习 ...

  3. 黑盒测试方法|测试用例的设计方法--边界值分析方法

    黑盒测试方法|测试用例的设计方法–边界值分析方法 目录 等价类划分方法 边界值分析方法 错误推测方法 因果图方法 判定表驱动分析方法 正交实验设计方法 功能图分析方法 场景设计方法 边界值分析方法 一 ...

  4. (转)测试用例的设计方法(全)之二 错误推断、因果图

    测试用例的设计方法(全)之二 (3)错误推测方法 一.    方法简介 1.         定义:基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法. 2.      ...

  5. 3.4 黑盒测试用例的设计方法 之 等价类划分与边界值分析

    3.4 黑盒测试用例的设计方法 具体的黑盒测试用例设计方法包括等价类划分法.边界值分析法.场景法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 这些方法是比较实用的,但采用什么方法 ...

  6. (转)测试用例的设计方法(全)之三 判定表、正交实验

    测试用例的设计方法(全)之三 (5)判定表驱动分析方法 一.    方法简介 1.定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具. 2.判定表的优点 能够将复杂的问题按照各种可能的情况全 ...

  7. 测试用例的设计方法及案例

    测试用例的设计方法 一.软件测试的生命周期(软件测试的流程是什么?) 二.如何描述一个BUG? 三.测试用例的设计方法 3.1等价类 3.2边界值法 3.3因果图法 3.4场景设计法 3.5正交排列法 ...

  8. 测试篇(三):测试用例的万能公式、对水杯和登录页面设计测试用例、测试用例的设计方法

    目录 一.测试用例的万能公式 二.对登录页面设计测试用例 三.测试用例的设计方法 3.1 基于需求的设计方法 3.2 等价类 3.3 边界值 3.4 判定表 3.5 正交排列 3.6 场景设计法 3. ...

  9. 2021最详细的测试用例的设计方法及案例——骚操作

    测试用例的设计方法 一.概念 1.什么是测试用例? 在测试过程中很重要的一类文档,它是测试工作的核心.是一组在测试时输入输出的标准.是软件需求的具体对照. 2.测试用例的作用: 检验软件是否满足客户需 ...

最新文章

  1. 一份贪心算法区间调度问题解法攻略,拿走不谢
  2. Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门
  3. openstack登陆dashboard提示认证发生错误
  4. Snort 网络***检测系统(二)之Snort 介绍
  5. 学Java好不好 要避开哪些雷区
  6. 深度学习论文翻译--Deep Residual Learning for Image Recognition
  7. sencha touch下,害人不浅的“*”号命名空间引入
  8. python爬取百度贴吧中的所有邮箱_python写的百度贴吧邮箱采集(带界面)
  9. 2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结
  10. javamail发送邮件(转)
  11. CUDA初探—环境配置
  12. (转载)OC学习篇之---Foundation框架中的NSDirctionary类以及NSMutableDirctionary类
  13. jQuery基础之核心函数,jQuery对象及伪数组 静态方法和实例方法的定义,各种静态方法(each,map,holdRedady,trim,isWindow,isArray,isFunction)
  14. 软件录制电脑扬声器音频的原理
  15. 雅俗共赏——广告词之很美很强大的汉语言
  16. HTML超链接基本属性
  17. 2020电信校园卡已经发售,更新校园卡最新消息及选购建议
  18. java牛客网输入输出
  19. gohbase的使用
  20. 如何在latex中使用python及pythontex功能简介

热门文章

  1. 基于asp的大学校友录
  2. elementUI遍历给表头设置多个背景色,设置不同class时,出现单元格内容区背景色也被一起修改的问题
  3. 方舟染色文件用在服务器,方舟恐龙染色文件 | 手游网游页游攻略大全
  4. 细数23种设计模式以及Java代码实现
  5. 短视频抖音运营SOP文案策划拍摄计划工作表方案
  6. java手动调用finalize,JAVA中,介绍一下finalize方法
  7. @DateTimeFormat 与 @JsonFormat 的区别
  8. EasyExcel 对于不定长Excel表头(动态表头)的处理
  9. html5 footer header,html-5 --html5教程article、footer、header、nav、section使用
  10. 1303:鸣人的影分身