您好,我是程序员小羊!
前言
这是一篇功能测试专栏系列《揭秘功能测试的秘密:从初学者到专家的必备指南》本系列将深入探讨了软件测试的基础知识和实用技巧,从手动测试到自动化测试工具的使用,涵盖了测试流程、测试用例设计、测试执行与报告生成等关键内容。无论你是软件测试新手,还是想要提升测试技能的开发者,这篇教程都将为你提供全面的指导,助你掌握软件测试的最佳实践,打造高质量的软件产品。后续内容大概会分三篇文章写完(上、中、下),中级会穿插一些扩展知识(软件测试需要具备的基础知识【功能测试】)感谢大家支持,大家可以先赞后看,养成好喜欢哦!!!!
揭秘功能测试的秘密:测试基础(上)
揭秘功能测试的秘密:功能用例实战(中)
揭秘功能测试的秘密:缺陷管理(下)
上一篇博文《揭秘功能测试的秘密:测试基础(上)》讲解了软件测试的分类,一些基础测试的知识,面试的话会用到,除了博主标记重点的其他的知识点还是以了解为主,这一节就是怎么写测试用例实战,今天这个点比较重要,大家可以根据博主给出题自己先试着写出用例,然后再博主写的用例。
正文:
进入公司,写测试用例无非是我们最重要的事情,那用例是什么意思呢,大概就是用户使用的案例,我们下面用生活的用例来形容下:
作用:
1、防⽌漏测
2、衡量软件是否通过的标准
- 八大要素编写规范
用例的种类就那么几种,下面让我们进入正题,一一来分析下:
一、等价类划分法
1.1等价类划分法的引入
案例1:如何测试两个两位数整数之间的和(即-99到99之间数据求和)没有问题? (这个小程序再博主资源里!)
提示:这里问题我们不着急看,因为会涉及到第二个知识点,先看知识点,再回头再来当练习题!
1.2等价类划分法
等价类的概念:在所有测试数据中,具有某种共同特征的数据子集。(可以有点难理解,那就直接看例子怎么写就行)
等价类划分为:
- 有效等价类:满足需求的数据子集
- 无效等价类:不满足需求的数据子集
1.3等价类划分法设计用例步骤(重点)
1.明确需求
2.确定有效和无效等价类
3.提取数据编写测试用例
案例1:验证QQ账号的合法性和登录(要求:6~10位自然数)(不考虑边界值)
让我们看下这个案例怎么做?
案例2(电话) 要求:
1. 区号:空或者是三位数字
2. 前缀码:非“0”且非“1”开头的三位数字
3. 后缀码:四位数字
按照步骤来
案例3(练习):
新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
要求: 邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线) 密码:6-18位字符
1. 4适用场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方。
- 输入框
- 下拉列表
- 单选复选框
典型代表:页面的输入框类测试。
扩展(小练习)
二、边界值分析法
2.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.2边界范围的确定
选取正好等于、刚好大于、搞好小于边界的值作为测试数据
上点:边界上的点(正好等于)
离点:距离上点最近的点(刚好大于、刚好下于)
内点:范围内的点(区间范围内的数据)
提示:
1、有关范围限制,最多7条⽤例(暂时未优化)
2、边界值能解决位数限制问题,但是不能解决类型问题(要结合等价类)
2.3边界值法设计用例步骤(步骤与等价类类似,只是加了一步划分等价类)
1.明确需求
2.确定有效和无效等价类
3.确定边界范围值
4.提取数据编写测试用例
案例一:
需求:通过边界值法验证标题长度的合法性
要求:标题长度大于0,小于等于30个字符
案例二:验证QQ账号的合法性和登录(要求:6~10位自然数) 也就是在用例基础上加了几个边界值
注意:这里还是没有优化的有7个点
2.4边界范围取值优化
结论:最后只会将7个点优化为5个点甚至更少
上点:必选(不考虑区间开闭)
内点:必选(建议选择中间范围)
离点:开内闭外(考虑开闭区间,开区间选择内部离点,闭区间选择外部离点)这个就像做数学题一样(3,10)那么是开区间那只选4,9。如果是闭区间【3,10】就是2,11,这就叫做开内闭外。
2.5适用场景
三 、判定表法
3.1判定表法的引入
案例6:验证“若用户欠费或者关机,则不允许主被叫”功能的测试
等价类边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。
可能说的比较难理解,可以看下下面例子,只要找到条件桩和动作桩就很简单了
3.3判定表法设计用例步骤(大致和前两种方法一致)
1、明确需求
2、画出判定表
1)、列出条件桩和动作桩
2)、填写条件项,对条件进⾏全组合
3)、根据条件项的组合确定动作项
4)、简化、合并相似规则(有相同的动作)
3、根据规则编写测试⽤例
案例1:
判定表
用例:
案例2:
需求
判定表
用例
3.4使用场景
- 有多个输入条件,多个输出结果,输入条件之间有组合关系,输入条件和输出结果之间有依赖(制约)关系
- 判定表一般适用于条件组合数量较少的情况(比如4个条件以下)
提示:
1、多条件之间有依赖关系,使⽤判定表来进⾏测试覆盖。
2、判定表⼀般适合4个以内条件依赖关系
3、如果条件超过4个,就不适合覆盖所有条件,应采⽤(正交法)来解决。
四 、场景法(流程图法)
4.1.场景法介绍
场景法,也可以叫流程图法,是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例。
4.2场景法的意义
用户使用角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用
测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试
4.3扩展(流程图知识点)
提示:业务用例是根据流程图来梳理的,需要先了解流程图
练习流程图工具:
1、线上⼯具:https://processon.com/diagraming/605880af07912927bd71c388
2、离线⼯具:visio
3、其他⼯具:Excel
案例1:
ATM机取款流程图
用例:
扩展:什么是冒烟? 什么时候用冒烟?哪些用例做冒烟测试?
冒烟测试:批量开始测试之前,执行业务正向用例,验证软件是否具备可测性。
4.4场景法的适用场景
1、对于多个功能之间的组合逻辑测试,可以使用场景法
2、根据实际的应用场景,来测试业务用例,可以使用场景法
五 、错误推测法 (经验法)
5.1错误推测法的定义
通过经验和直觉推测系统可能出现问题的地方,一般由经验丰富的测试人员使用。
5.2错误推测法的设计思想
凭人们对过去所作测试结果的分析,列举出可能出现问题的清单,根据清单测试来发现缺陷
5.3错误推测法的适用场景
1、所有正常测试结束后,通过错误推断法再测试之前问题较多的模块
2、时间紧任务量大时,根据之前项目类似经验找出易出错的模块重点测试
2、时间宽裕通过该方法列出之前出现问题较多的模块再次测试
应⽤场景:当项⽬⽤例都执⾏完毕,且BUG修复完成,离上线还有⼀段时间,
在这段时间中可是使⽤错误推荐法复测主要业务或测试未覆盖的功能。
结尾
这篇文章后面会有一些案例,可以坐下,下篇文章会讲解,大厦之成,非一木之材也;大海之阔,非一流之归也,当然也希望大家能持续关注下,文章从浅到深,也欢迎大佬们的随时指导!!!可能会有人觉得枯燥,但要知道基础测试就是这样,现在公司大部分测试基本都是点点点,基础概念反而没有那么重要了,下篇会继续写干货~