测试用例设计方法基础理论知识
一、什么是测试用例
测试用例设计:将软件测试的行为活动,作为一个科学化的组织归纳。
测试用例:设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的执行结果。
因为我们不可能进行穷举测试,为了节省时间和资源、提高测试效率,必须从数量极大的可用测试数据精心挑选出具有代表性或者特殊性的测试数据来进行测试。
二、测试用例的好处
在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
测试用例的使用令软件测试的实施重点突出、目的明确。
在软件版本更新后只修正少部分的测试用例便可展开测试工作,降低工作强度,缩短项目周期。
功能测试模块的通用化和复用化使软件易于开发,而测试用例的通用化和复用化则会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。
三、测试用例设计方法
1、等价类划分法
将输入(输出)划分成若干个子集合,从子集合中选取一些代表值,只要选取的值测试没有问题,就认为未被选取的数据测试也没有问题。
- 有效等价类:有意义的合理的正确输入;
- 无效等价类:非法的错误的异常的输入;
等价类的划分原则:
- 如果输入是一个取值范围或者值的个数,则划分成一个有效等价类和两个无效等价类;
- 如果输入是一个有限的集合或者必须如何的条件,则划分成一个有效等价类和一个无效等价类;
- 如果输入是一个布尔量,则划分成一个有效等价类和一个无效等价类;
- 如果输入已经划分等价类,针对具体的值处理方式会有所不同更加细化,则划分成多个有效等价类和一个无效等价类;
- 如果输入要同时满足多个条件,则划分成一个有效等价类和多个无效等价类;
等价类划分的使用步骤:
- 将需求规格划分成需求子片段;
- 分析需求子片段,找出输入条件;
- 分析输入条件,结合等价类划分原则进行等价类划分;
- 对划分的等价类进行编号;
- 从划分的等价类中选取数据结合测试用例写作规范生成最终的测试用例;
一条测试用例尽量覆盖多个有效等价类
一条测试用例只覆盖一个无效等价类
等价类划分法例题:
(一)一个有效&两个无效
取值范围:驾照年龄18-65周岁
一个有效(18-65之间)
两个无效(17,66)
(二)一个有效&一个无效
取值范围:第三期学员
一个有效(第三期学员)
一个无效(非第三期学员)
(三)一个有效&一个无效
取值范围:男性
一个有效(男性)
一个无效(女性)
(四)多个有效&一个无效
英语考试,60以上合格(含60分)
一个有效:60分以上
60-79:合格
80-89:良好
90-100:优秀
一个无效:60分以下
(五)一个有效&多个无效
个人信息注册:身高,体重,年龄
一个有效:三个资料都填写
三个无效: 身高填写X
体重填写Y
年龄填写Z
(六)一个有效&多个无效
个人信息注册:身高,体重,年龄
一个有效:三个资料都填写
三个无效:身高填写X
体重填写Y
年龄填写Z
(七)万年历查询软件,要求用户输入以年月日表示的日期,然后系统会换算出该日期的农历表示法及相关黄历信息,假设日期限定在1900年1月1日~2049年12月31日,并规定日期由8位数字字符组成,前4位表示年,中间2位表示月,最后两位表示日期。其中4、6、9、11月只有30天,平年的2月份只有28天,闰年的2月份有29天。(备注:为简化处理,本题进行用例设计时。不考虑对平年、闰年的判断)
划分等价类并编号:
设计测试用例覆盖的有效等价类,设计的测试用例如下:
为每一个无效等价类设计一个测试用例,设计结果如下:
2、边界值分析法
边界值分析法是对等价类划分法的一种补充,经验表明边界是问题多发区;如果边界测试没有发现问题,就认为其他区域发生问题的概率较小。
相关术语:
- 上点:边界上的点叫做上点
- 离点:离边界最近的点叫做离点
- 如果是闭区间,离点落在边界外
- 如果是开区间,离点落在边界内
- 内点:边界内任意一个点叫做内点
边界值分析法选取数据原则:
- 如果输入是一个取值范围或者值的个数,则以边界和边界附近的值作为测试用例数据选取;
- 如果输入的值的个数是一个取值范围,则以最大个数;最大个数+1;最小个数;最小个数-1作为测试用例数据选取;
- 如果输入是一个有序的集合,则以第一个元素和最后一个元素作为测试用例数据选取;
- 如果是一个内部数据结构,则以极限值作为测试数据选取;
边界值分析法使用步骤:
- 将需求规格划分成需求子片段;
- 找出需求片段中的输入条件。为每个条件划分等价类;
- 确定等价类的边界值;
- 根据边界值分析法测试用例选取原则确定测试用例的输入数据;
- 生成最终的测试用例;
边界值分析法例题:
(一)
取值范围:计算器计算100以内正数加减法:1-100
取值:有效:1,100
无效:0,101
值的个数(固定是几):处理三个数是否能组成三角形
有效:3个
无效:2个,4个
(二)
值的个数是取值范围:密码6-16
取值:有效:6,16
无效:5,17
(三)
有序的集合:01-12月
取值:有效:01,12
无效:00,13
(四)
内部数据结构:栈:储存10个数据
取值:有效:10
无效:11
3、因果图法
如果输入之间有关系,我们在测试时必须考虑输入条件的各种组合,那么可以考虑使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。
优点:因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。
因果图法的基本思想:
使用因果图法设计测试用例时,首先从程序规格说明书的描述中,找出因(输入条件)和果(输出结果或者程序状态的改变),然后通过因果图转换为判定表,最后为判定表中的每一列设计一个测试用例。
因果图中出现的基本符号:
通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。
主要的原因和结果之间的关系有:
- 恒等: 若c1为1,则e1也为1,否则e1为0.
- 非: 若c1是1,则e1为0,否则e1是1.
- 或: 若c1或c2或c3是1,则e1是1,若三者都不为1,则e1为0.
- 与: 若c1和c2都是1,则e1为1,否则若有其中一个不为1,则e1为0.
实际问题中,输入状态之间可能存在某些依赖关系,这种依赖关系被称为”约束”.
在因果图中使用特定的符号来表示这些约束关系:
约束关系说明:
E约束(异): a,b最多有一个可能为1,不能同时为1.
I约束(或): a,b,c中至少有一个必须为1,不能同时为0.
O约束(惟一): a和b必须有一个且仅有一个为1
R约束(要求):a是1时,b必须是1,即a为1时,b不能为0
M约束:对输出条件的约束,若结果a为1,则结果b必须为0.
用因果图生成测试用例的基本步骤:
- 分析软件规格说明描述中,哪些是原因 (即输入条件或输入条件的等价类),哪些是结果 (即输出条件),并给每个原因和结果赋予一个标识符。
- 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系? 根据这些关系,画出因果图。
- 由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。
- 把因果图转换成判定表。
- 把判定表的每一列拿出来作为依据,设计测试用例。
应用举例:
分析问题,按照如下步骤进行:
(1)根据软件规格说明书,列出原因和结果.
(2)找出原因和结果之间的关系,原因和原因之间的约束关系,画出因果图.
(3)将因果图转化为判定表
(4)根据判定表设计测试用例.
某文件修改需求:
如想对文件进行修改,需要遵守以下规则:
输入的第一列字符必须是A或B,
第二列字符必须是一个数字,
如果第一列字符不正确,则给出信息L;
如果第二列字符不正确,则给出信息M。
如果两列字符输入正确,则修改文件
原因:
C1:第一个字符是A;
C2:第一个字符是B;
C3:第二个字符是一个数字字符.
结果:
E1:给出信息L;
E2:修改文件;
E3:给出信息M;
将因果图转化为判定表:
设计测试用例:
测试用例1: 输入数据:A3 预期输出:修改文件
测试用例2: 输入数据:AM 预期输出:给出信息M
测试用例3: 输入数据:B3 预期输出:修改文件
测试用例4: 输入数据:B* 预期输出:给出信息M
测试用例5: 输入数据:C2 预期输出:给出信息L
测试用例6: 输入数据:CM 预期输出:给出信息LM
因果图法的优点:
考虑了多个输入之间的相互组合、相互制约关系;
能够帮助我们按一定步骤,高效率地选择测试用例,同时还能为我们指出,程序规格说明描述中存在着什么问题。
转载于:https://www.cnblogs.com/yitao326/p/10343120.html
测试用例设计方法基础理论知识相关推荐
- 黑盒法测试c语言,黑盒测试的测试用例设计方法(经典理论知识,推荐)
一.黑盒测试的测试用例设计方法 1. 等价类划分方法 2. 边界值分析方法 3. 错误推测方法 4. 因果图方法 5. 判定表驱动分析方法 6. 正交实验设计方法 7. 功能图分析方法 二.等价类划分 ...
- 测试用例设计方法(2)
https://www.cnblogs.com/molrang/p/6420918.html 转载 本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界 ...
- 测试用例设计方法(转)
本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分 ...
- 自动化测试之-测试用例设计方法总结
黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分法 定义:等价 ...
- 测试用例设计方法_错误推测法(游戏向)
一.前言 前些章节提到了程序测试很常用的黑盒测试方法,尤其是判定表和因果图法尤其重要,是需要重点学习和复习的,没看过的小伙伴可以随时查阅前置文章进行查看~,至此感谢大家这些时间的支持与鼓励 ~ , ...
- 测试用例设计方法有哪些?举例说明
众所周知,测试用例是编制的一组测试输入.执行条件及预期结果,专门为的是某个特殊目标,即测试某个程序路径,或是核实是否满足某个特定的需求.一般来讲,常用的测试用例设计方法有五种,分别是:正交实验法.边界 ...
- 黑盒测试及测试用例设计方法(面试题解析)
黑盒测试这个看似简单的问题,在面试中被提及的机会真是数不胜数.特别是应聘者只有一"两年工作经验时,面试官通常会问道. ●是否做过测试? ●黑盒还是白盒? ●怎么做? ●有什么区别? 这么简单 ...
- 功能测试用例设计方法有哪些?
知识永远学不完,但多懂一点知识就会让生活更轻松一点! 一.什么是功能测试? ①顾名思义,功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到需求要求的功能. ②功能测试也叫 ...
- 软件测试用例设计方法-场景法
从本篇文章开始,进入到测试用例设计方法的分享,第一个要分享的方法就是,场景法. 相信对测试有一定基础的你会感到奇怪:用例设计方法,不是应该从等价类划分法说起吗?为什么一上来就直接说场景法呢? 对,如果 ...
最新文章
- “Attention is All You Need 翻译
- 零基础学习java软件开发攻略
- 腾讯是一只邪恶的小企鹅
- SpringCloud系列十二:SpringCloudSleuth(SpringCloudSleuth 简介、SpringCloudSleuth 基本配置、数据采集)...
- 解决ora-00054 Oracle锁表问题
- LOJ#6085. 「美团 CodeM 资格赛」优惠券(set)
- Android—常用组件练习
- WebLogic启动失败:java.lang.AssertionError: Could not obtain the localhost address.
- php 静态 成员属性,[已解决]php中静态成员方法和静态成员变量是不是不支持多态?...
- 敏捷开发般若敏捷系列之三:什么是敏捷(下)(无住,不住于空,破空执,非法,非非法)...
- java io密集型任务_IO密集型的线程池大小设置
- 手机端与pc端页面html5,浅谈pc和移动端的响应式的使用
- 如何在 Mac 中更改文件夹图标,换上喜欢的图像 Icon?
- TOGAF 9 Certification 有用书签
- spss分析qpcr数据_SPSS统计分析案例:Kappa一致性系数
- Oracle RAC详解
- 【node.js】报错Cannot mix different versions of joi schemas解决方法
- Kettle连接Hadoop clusters 报错
- 调用微信公众号现金红包接口给用户发送红包
- Linux下启动jar包不跑日志
热门文章
- fflush函数的深入理解
- 新手怎么学以太坊区块链开发?
- 自学成才翁_作为一名自学成才的开发者从“我的旅程”中吸取的教训
- MongoDB数据库(一:基本操作)
- 【Linux学习笔记】 -- 基本Shell命令
- mysql 删除 修改密码_Mysql数据库root密码忘记了,如何在不删除Mysql的情况下修改密码...
- 白盒测试各种“覆盖”间的拓扑关系及白盒用例常用要求
- 想转行学软件测试要注意哪些问题
- 什么是跨域?怎么解决跨域问题?
- 【译】使用Kotlin和RxJava测试MVP架构的完整示例 - 第1部分