前言:
**上一篇博文讲解了软件测试的分类,只是一些基础的知识,面试的话也不会用到,主要还是了解,今天就来个重点怎么写测试用例,今天这个点比较重要,大家可以根据博主给出题自己先试着写出用例,然后再博主写的用例。**
进入正题:
怎么写测试用例?那么写用例主要会用到这几种方法,工作也一样。
一、等价类划分法
**1.****等价类划分法的引入 **
** **案例1:如何测试两个两位数整数之间的和(即-99到99之间数据求和)没有问题?(这个小程序再博主资源里!
这里问题我们不着急看,因为会涉及到第二个知识点,先看知识点,再回头再来当练习题!
**2.**等价类划分法
等价类的概念:在所有测试数据中,具有某种共同特征的数据子集。(可以有点难理解,那就直接看例子怎么写就行)
等价类划分为:
- ** 有效等价类:满足需求的数据子集 **
- ** 无效等价类:不满足需求的数据子集 **
**3.**等价类划分法设计用例步骤(重点)
**1.明确需求 **
**2.确定有效和无效等价类 **
**3.提取数据编写测试用例 **
案例1:验证QQ账号的合法性和登录(要求:6~10位自然数)(不考虑边界值)
我们就可以直接上面给出的方法来做!
1.明确需求(需求就是题目)
**2.确定有效等价和无效等价 **
- ** 有效等价:就是满足要求需求的**
- ** 无效等价:就是不满足要求需求的,主要考虑(类型,长度,规则、空)**
- ** 类型:就是考虑是否为自然数**
- ** 长度:就是位数**
- ** 规则:一些特殊的条件,如第一位不能为1...**
** 那我们看看这题**
3.根据根据数据写测试用例就OK了 (模板在第一章)
** 还有两个案例就给大家当练习了,答案放在资源里!**
案例2:验证某城市电话号码正确性
要求:
区号:非空或者是三位数字
前缀码:非“0”且非“1”开头的三位数字
后缀码:四位数字
案例3:新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
要求:
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符
4.适用场景
- 针对需要数据量大,有测试数据输入的地方
- 典型代表:页面级的输入框类测试
二、边界值分析法
1.引言
因为前面的题博主让大家用的是等价类写,下面的边界值就是在等价类的基础上进行扩展!
边界值顾名思义就是就是边界上的值,而我们为什么要用这种方法就是因为一些程序因为不在状态或者粗心把
//判断输入的数据是否小于-99或者大于99,如果小于-99或大于99给出错误提示
if(Text1>=99||Text1<=-99)
printf("输入的参数值必须大于-99同时小于99");
else if(Text2>= 99 or Text2<= -99)
printf("输入的参数值必须大于-99同时小于99");
else
printf("-1");
输入的数据包含99或者-99时,边界条件设置出错:代码中将“>”写成了“>=”,将“<”写成了“<=”
而我们测试就是对这些边界值进行排查!
**2.**边界范围的确定
选取正好等于、刚好大于、搞好小于边界的值作为测试数据
- 上点:边界上的点(正好等于)
- 离点:距离上点最近的点(刚好大于、刚好下于)
- 内点:范围内的点(区间范围内的数据)
**3.**边界值法设计用例步骤(步骤与等价类类似,只是加了一步划分等价类)
- 1.明确需求
- 2.确定有效和无效等价类
- 3.确定边界范围值
- 4.提取数据编写测试用例
还是用等价类案例1来说:
案例4:验证QQ账号的合法性和登录(要求:6~10位自然数)
也就是在用例基础上加了几个边界值 ,注意:这里还是没有优化的有7个点
用例还是一样的,就是把边界值加上就可以了
练习题:加上一题,然后继续将上面案例再等价类基础优化下!
案例5:通过边界值法验证标题长度的合法性(要求:标题长度大于0,小于等于30个字符)
**4.**边界范围取值优化
结论:最后只会将7个点优化为5个点甚至更少
**上点:必选(不考虑区间开闭) **
**内点:必选(建议选择中间范围) **
离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)这个就像做数学题一样(3,10)那么是开区间那只选4,9。如果是闭区间【3,10】就是2,11,这就叫做开内闭外。
**5.**适用场景
- 在等价类的基础上针对有边界范围的测试数据输入的地方
- 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
- 典型代表:有边界范围的输入框类测试
三 判定表法
**1.**判定表法的引入
案例6:验证“若用户欠费或者关机,则不允许主被叫”功能的测试
等价类边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结 果之间有相互制约关系的测试。
可能说的比较难理解,可以看下下面例子,只要找到条件桩和动作桩就很简单了
**2.**判定表定义及组成部分
判定表:是一种以表格形式表达多条件逻辑判断的工具
如上引例可以通过以下表格表示出:
- **条件桩:列出问题中的所有条件。列出条件的次序无关紧要。 **
- **动作桩:列出问题中可能采取的操作。操作的排列顺序没有约束。 **
- **条件项:列出条件对应的取值。所有可能情况下的真假值。 **
- 动作项:列出条件项的各种取值情况下应该采取的动作结果。
规则:判定表中贯穿条件项和动作项的一列就是一条规则
假设有n个条件,每个条件的取值有两个(0,1),全组合有2^n种规则
**3.**判定表法设计用例步骤(大致和前两张方法一致)
- 1.明确需求
- 2.画出判定表 - 列出条件桩和动作桩 - 填写条件项,对条件进行全组合 - 根据条件项的组合确定动作项 - 简化、合并相似规则(有相同的动作)
- 3.根据规则编写测试用例
案例1:订购单检查
订购单的检查:
如果金额大于500元,又未过期,则发出批准单和提货单;
如果金额大于500元,但过期了,则不发批准单与提货单;
如果金额小于等于500元,则不论是否过期都发出批准单和提货单;
在过期的情况下不论金额大小还需要发出通知单。
案例2:文件修改规则
如想对文件进行修改,需要遵守以下规则:
输入的第一列字符必须是A或B,第二列字符必须是一个数字, 如果第一列字符不正确,则给出信息L;
如果第二列字符不正确,则给出信息M。
如果两列字符输入正确,则修改文件成功, 如果两列字符都输入错误,则给出信息L、M。
这个案例就给大家练习了。
**4.****适用场景 **
- **有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制 **约)关系
四 、场景法
**1.**场景法介绍
场景法,也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。
**2.**场景法的意义
- **用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用 **
- **测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试 **
**3.**场景法的适用场景
- 对于多个功能之间的组合逻辑测试,可以使用场景法
案例:ATM机取款流程
ATM机的取款流程图
五 、错误推测法 (经验法)
**1.****错误推测法的定义 **
通过经验和直觉推测系统可能出现问题的地方,一般由经验丰富的测试人员使用。
**2.****错误推测法的设计思想 **
- **凭人们对过去所作测试结果的分析,列举出可能出现问题的清单,根据清单测试来发现缺陷 **
**3.****错误推测法的适用场景 **
- **所有正常测试结束后,通过错误推断法再测试之前问题较多的模块 **
- **时间紧,任务量大,根据之前项目类似经验找出易出错的模块重点测试 **
回顾第一题:大家应该都会用等价类和边界值写了吧!答案我会写好放在资源里,大家可以到时看看!
那么这些就是在工作中比较常用到的方法,可能有些不长用的,博主就没有写出来!对你如果有帮助的,可以三连下。
版权归原作者 游手好闲的小羊! 所有, 如有侵权,请联系我们删除。