目录
测试用例
测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期结果的文档。
生活中的测试用例:买手机、电脑,试用一下:开机、屏幕、运行速度、内存大小;这就是生活中的测试用例!
举例说明
买手机:按开机键,相当于输入了一组数据来测试,执行条件指的是开机的前提条件,比如是否有电;预期结果就是能顺利打开手机,那么测试完毕后,是否达到了想要的需求(顺利开机)
编号 | 输入 | 执行条件 | 预期结果 | 是否bug |
---|---|---|---|---|
1 | 按下开机键 | 手机有电 | 顺利开机 | |
2 | 按下开机键 | 手机有电 | 顺利开机 |
测试用例八大要素
软件测试用例的基本要素包括用例编号、用例标题、测试项目、用例级别、预置条件、测试输入、执行步骤、预期结果。
用例编号 | 用例标题 | 测试项目 | 用例级别 | 预置条件 | 测试输入 | 执行步骤 | 预期结果 |
---|---|---|---|---|---|---|---|
T001 | 用户查看商品介绍 | 淘宝 | p01 | 用户已登录 | 商品名称’软件测试’ | 1.输入名称‘软件测试’ 2.点击查找按钮 | 显示商品相应的介绍 |
T002 | 测试加法 | 计算器 | p03 | / | 20和3 | 1.按数字20 2.按+号 3.按数字3 4.按=号 | 23 |
测试用例的设计方法
可以参考测试用例的设计方法这篇文章
后续文章我也写了测试用例以及设计过程,点击右边蓝字跳转学习软件测试(六)编写测试用例的基本要求,测试用例设计步骤,轮播图、导航栏、购物车功能测试
等价类划分法
在所有测试的数据中,具有某种共同特征的数据子集。
等价类分为:
- 有效等价类
- 无效等价类
案例:计算两个-99到99之间整数的和
有效等价类:99,-56
无效等价类:100,3.14,a
用例编号 | 用例标题 | 测试项目 | 用例级别 | 预置条件 | 测试输入 | 执行步骤 | 预期结果 |
---|---|---|---|---|---|---|---|
T001 | 符合条件数据相加 | 计算器 | p03 | / | 20和3 | 20加3 | 23 |
T002 | 超出范围数据相加 | 计算器 | p03 | / | 20和-333 | 20加-333 | 不能计算 |
T003 | 小数相加 | 计算器 | p03 | / | 20和-3.14 | 20加-3.14 | 不能计算 |
T004 | 非数字相加 | 计算器 | p03 | / | 20和a | 20加a | 不能计算 |
等价类操作步骤
- 明确需求
- 确定有效和无效等价类
- 编写测试用例
等价类划分后,有多少数据就有多少测试用例
边界值分析法
==注意:==有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方,也是测试人员重点测试的内容。
边界范围
- 确定边界情况(输入或输出等价类的边界)
- 选取正好等于、刚刚好大于或刚刚好小于边界的值作为测试数据
- 闭区间:指的是区间边界的两个值包括在内,表达方法[a,b];
- 开区间:指的是区间边界的两个值不包括在内,表达方式(a,b);
- 上点:边界上的点(正好等于)
- 内点:范围内的点
- 离点:距离上点最近的点
- 如果是闭区间,那么离点就是域范围外离上点最近的点。
- 如果是开区间,那么离点就是域范围内离上点最近的点。
举例:(20,30] 大于20,小于等于30 左开右闭区间 20,30是上点,24是内点,21,31是离点,21的离点是有效数据,31的离点是无效数据。
- 开区间上点是有效数据,离点是无效数据
- 闭区间上点是无效数据,离点是有效数据
- 内点都是有效数据
边界值法的操作步骤
- 明确需求
- 确定有效和无效等价类
- 确定边界值
- 编写测试用例
案例1
使用边界值的方法设计添加标题的测试用例
要求:标题长度>0 标题长度<=30
(0,30] 左开右闭区间 0,30是上点,10内点,离点1,31
abc1234567 (内点) 预期结果:通过
空 (上点) 预期结果:不通过
123456789012345678901234567890 (上点)预期结果:通过
a(离点)预期结果:通过
1234567890123456789012345678901(离点)预期结果:不通过
用例编号 | 用例标题 | 测试项目 | 用例级别 | 预置条件 | 测试输入 | 执行步骤 | 预期结果 |
---|---|---|---|---|---|---|---|
T001 | 10位标题测试 | / | p03 | / | adb1234567 | / | 通过 |
T002 | 标题为空测试 | / | p03 | / | / | 不通过 | |
T003 | 30位标题测试 | / | p03 | / | 123456789012345678901234567890 | / | 通过 |
T004 | 1位标题测试 | / | p03 | / | a | / | 通过 |
T005 | 31位标题测试 | / | p03 | / | 1234567890123456789012345678901 | / | 不通过 |
案例2
qq账号6-10位自然数(由于我懒得打字,直接截图视频了)
判定表法
- 判定表法表示的是有多个输入,和多个输出,而且输入与输入之间有相互的组合关系、输入和输出之间有相互的依赖关系
- 不能直接用判定表去执行测试
- 通过判定表编写测试用例,用测试用例去执行测试操作
为什么使用判定表法
案例:若用户欠费或关机,则不允许被叫
- 等价类划分法和边界值分析法都是着重考虑单个输入的输入条件
- 但是没有考虑输入条件的各种组合、输入条件与输出条件之间的相互制约关系。
- 所以要使用判定表法才能解决上述案例编写测试用例的过程
判定表法的四个组成部分
- 条件桩:列出了系统的所有输入,列出的输入次序无关紧要
- 动作桩:列出了系统可能采取的操作,这些操作的排列顺序没有约束
- 条件项:列出针对它左列输入的取值,在所有可能情况下的真假值
- 动作项:列出在输入项的各种取值情况下应该采取的动作
注:判定表中贯穿条件项和动作项的一行就是一条规则
判定表的设计步骤
- 明确需求
- 画出判定表
2.1 明确条件桩,动作桩
2.2、填写条件项,对条件进行全组合
2.3、明确每个条件组合对应的动作项 - 生成测试用例,判定表每条规则对应一条测试用例
案例1
测试用例:
用例编号 | 用例标题 | 测试项目 | 用例级别 | 预置条件 | 测试输入 | 执行步骤 | 预期结果 |
---|---|---|---|---|---|---|---|
T001 | 欠费关机不能主被叫 | / | p03 | / | 欠费,关机 | 选欠费 选关机 点击提交按钮 | 不能主被叫 |
T002 | 不欠费不关机可以主被叫 | / | p03 | / | 不欠费,不关机 | 选不欠费 选不关机 点击提交按钮 | 能主被叫 |
T003 | 欠费不关机不能主被叫 | / | p03 | / | 欠费,不关机 | 选欠费 选不关机 点击提交按钮 | 不能主被叫 |
T004 | 不欠费关机不能主被叫 | / | p03 | / | 不欠费,关机 | 选不欠费 选关机 点击提交按钮 | 不能主被叫 |
案例2
案例3
测试用例有很重要的两个原则
- 能看懂
- 能执行
因果图法
因果图法的核心
- 因果
- 因果图的“因” ---- 输入条件
- 因果图的“果” ---- 输出结果
什么是因果图法
- 用图解的方法表示输入的各种组合关系,写出判定表,从而设计相应的测试用例
- 适用范围:适用于分析程序输入条件的各种组合情况,以及输入与输出之间的依赖关系
因果图法中的基本符号
通常在因果图中用C表示原因,用E表示结果
因果图就是做为判定表的辅助
因果图法的基本步骤
- 明确需求
- 画出因果图
- 将因果图转换为判定表
- 根据判定表写测试用例
此图对应这上面判定表的案例三
正交排列法
如何设计测试用例
在测试时,要考虑这些控件的组合情况,组合量非常大(有3的4次方 = 81种组合情况) 由于组合量太大,不可能为每一种组合都创建测试用例。如何采用最少的测试用例集合获得最大的测试覆盖率----采用正交排列法定义
正交排列法就是能够使用最小的测试过程集合获得最大的测试覆盖率。
适用范围
当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。
特点
均匀分散,齐整可比
正交表的概念
- 一种特制的表,一般的正交表标记为:$ L_n(m^k) $
- n表示行数
- k是表的列数
- m是列的取值范围
如:$ L_9(3^4) $
有4个列
每个列有3个取值
9为列的组合个数
叫4因素3水平
使用正交表步骤
- 明确需求
- 绘制正交表
- 先确定列数
- 确定正交表每列的取值个数
- 根据因素和水平可以确定行数
- 根据正交表编写测试用例
- 正交表的一行代表一条测试用例
- 正交表的一行代表一条测试用例
场景法(流程图法)
场景法是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试
场景法的意义
- 用户角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用。
- 测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试。
场景法设计测试用例步骤
- 明确需求
- 画出流程图
- 编写测试用例
案例(使用ATM机取款)
ATM机取款流程
流程图
错误推测法
错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法。
- 基本思想
- 基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例
- 这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
- 使用场景
- 项目紧任务急、时间不够,这时就不要按部就班的测试了,根据之前项目的经验,找到之前出错过的类似模块进行重点测试
- 所有正常测试结束后,通过错误推断法再测试一些之前出过问题的模块。
测试工程师原则
软件测试中测试出来了bug,你会改但千万别直接修改代码中的bug(会导致内部版本混乱)