一、测试用例/案例(test case/test instance) 1、定义:是在测试执行之前,由测试人员编写的指导测试过程的重要文档,主要包括:用例编号、测试目的、测试步骤(用例描述),预期结果 2、介绍编写测试用例的7种方法: 1)等价类划分法(*) 2)边界值法(*) 3)因果图法 4)判定表法 5)正交排列法 6)测试大纲法 7)场景法(*) 至少要掌握每种方法的适用场合(用在哪)和使用步骤(怎么用) 编写测试用例可以参考什么? (1)需求文档 (2)被测系统(已开发出来的被测系统) 一边对照程序,一边编写用例。很多企业都是这样测试,如果只对照需求文档可能只能完成测试设计的30-40%。 (3)开发(设计)文档(有可能拿不到,比如测试和开发不是同一家公司,就不一定提供设计文档) (4)与开发、产品、客户等进行沟通
二、等价类划分法 1、应用场合 有数据输入的地方,可以使用等价类划分法。 从大量数据中挑选少量代表数据进行测试 2、测试思想 穷举测试:把所有可能的数据全部测试一遍叫穷举测试。 穷举测试是最全面的测试,但是在实际工作中不能采用,因为测试效率太低(数据量巨大,根本测不过来) 理想的测试思想:使用最少的测试数据,达到最好的测试质量(最高性价比) 因为毕竟没有做穷举测试,所以会有遗漏缺陷的风险,如果时间允许,尽可能的做补充测试(不用纠结,觉得有风险的有问题的补充测就好) 等价类划分法的测试思想: 从大量数据里划分范围(每个范围内的数据测试效果是等价的所以每个范围是一个等价类),然后从每个范围中挑选代表数据,这些代表数据能反应这个范围内数据的测试结果。 基本概念
找相同分类后分为:
有效等价类:对程序来说,有意义的、合理的输入数据集合—用来测试功能是否正确实现 无效等价类:对程序来说,无意义的、不合理的输入数据集合—用来测试程序是否有强大的异常处理能力(健壮性)
三、等价类划分法的实现步骤:
案例实战---新浪邮箱登录
新浪邮箱登录,要求输入(邮箱名)@sina.cn和密码进行登录
邮箱名要求:4-16位字符,支持英文,数字,下划线(不能全是数字或下划线)
密码:6-18位字符
步骤1:分析需求,分别将姓名和年龄控件的等价类和边界值进行分析,填入《数据分析表》
有效等价类 |
有效数据 |
无效等价类 |
无效数据 |
4-16位英文 |
abcd |
小于4位英文 |
abc |
4-16位英文数字组合 |
abc1 |
大于16位英文 |
Abcdefghigklmnobghd |
4-16位英文下划线组合 |
abc_ |
4-16位纯数字 |
1234 |
4-16位数字下划线组合 |
123_ |
4-16位纯下划线 |
__ |
4-16位英文数字下划线组合 |
ab1_ |
4-16位汉字 |
你好中国 |
|
|
4-16位符号 |
@#¥ |
|
|
不输入邮箱 |
|
|
|
输入未注册正确邮箱 |
abcd0820@sina.com |
有效等价类 |
有效数据 |
无效等价类 |
无效数据 |
6-18位字符 |
adcdefg |
小于6位字符 |
abcde |
|
|
大于18位字符 |
Abcdefghijklmnqwert |
|
|
6-18位非字符——符号 |
!@#$%@ |
|
|
6-18位非字符——汉字 |
你好我的祖国 |
|
|
不输入密码 |
|
步骤2:根据数据分析结果,形成测试方案,编写测试用例。
ID |
模块 |
优先级 |
用例标题 |
预置条件 |
测试步骤 |
测试数据 |
预期结果 |
测试结果 |
XL-登录-001 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abcd@sina.cn密码:abcdefg |
登录成功,跳转到首页 |
|
XL-登录-002 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abc1@sina.cn密码:abcdefg |
登录成功,跳转到首页 |
|
XL-登录-003 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abc_@sina.cn密码:abcdefg |
登录成功,跳转到首页 |
|
XL-登录-004 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:123_@sina.cn密码:abcdefg |
登录成功,跳转到首页 |
|
XL-登录-005 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:ab1_@sina.cn密码:abcdefg |
登录成功,跳转到首页 |
|
XL-登录-006 |
登录 |
p1 |
邮箱小于4位英文。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abc@sina.cn密码:abcdefg |
登录失败,输入邮箱有误,不能小于四位 |
|
XL-登录-007 |
登录 |
p1 |
邮箱大于16位英文。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abcqwertyuiopasdfghh@sina.cn密码:abcdefg |
登录失败,输入邮箱有误,不能大于16位 |
|
XL-登录-008 |
登录 |
p1 |
邮箱4-16位纯数字。密码6-18位字符,密码正确 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:1234@sina.cn密码:abcdefg |
登录失败,输入邮箱有误,不能为4-16位纯数字 |
|
XL-登录-009 |
登录 |
p1 |
邮箱4-16位英文,邮箱正确。密码小于6位字符 |
网络正常 |
1.打开登陆主页 2.点击登录输入框 3.输入用户名 4.点击密码输入框 5. 输入密码 6.点击登录按钮 |
邮箱:abc1@sina.cn密码:abcde |
登录失败,密码不能小于6位 |
|
边界值
1.定义(What?)
边界值属于等价类方法的特定输入域,包含在有效等价类或无效等价类中,根据等价类推断理论, 边界值方法产生的测试效果与等价类方法相同,只是边界值方法选择测试数据时更有针对性,通常 选择输入域的边界值。 等价类划分法+边界值法
边界值分析是一种常用的黑盒测试方法,是对等价类划分方法的补充;所谓边界值,是指相对于输入等价类和输出等价类而言,稍高于其最高值或稍低于最低值的一些特定情况。
2.为什么使用该方法?(Why)
-
等价类划分忽略掉了某些特定类型的高效测试用例,而边界值分析可以弥补其中的很多不足;
-
根据大量的测试统计数据,编程的很多错误是发生在输入定义域或输出值域的边界上,而不是发生在输入/输出范围的中间区域。因此针对输入和输出等价类的边界情况设计测试用例,可以查出更多的错误,具有更高的测试回报率;
-
边界值数据本质上是属于某个等价类的范围,测试时确实是一种冗余(重复),但是为了更好的测试质量(边界值特别容易出bug),边界值必须要单独测,适当的冗余是可以接受的。
3.如何选定边界值?(How)
很难提供一份如何进行边界值分析的“详细说明”,因为这种方法需要一定程度的创造性,以及对问题采取一定程度的特殊处理办法。
但是可以提供一些通用指南:
-
如果输入条件规定了一个输入值范围,那么应针对范围的边界设计测试用例,针对刚刚越界的情况设计无效输入测试用例。举例,如果输入值的有效范围是-1.0至+1.0,那么应针对-1.0、1.0、-1.001和1.001的情况设计测试用例。
-
如果输入条件规定了输入值的数量,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。举例,如果某个输入文件可容纳1~255条记录,那么应根据0、1、256和255条记录的情况设计测试用例。
-
对每个输出条件应用指南1。举例,如果某个程序按月计算FICA的扣除额,且最小金额是0,最大金额是1165.25,那么应该设计测试用例来测试扣除0和1165.25的情况。此外,还应观察是否可能设计出导致扣除金额为负数或超过1165.25的测试用例。
-
(Tips:检查结果空间的边界很重要,因为输入范围的边界并不总是能代表输出范围的边界情况(例如三角正弦函数sin)。但是总是产生超过输出范围的结果也是不大可能的,但无论如何,应该考虑这种可能性。)
-
对每个输出条件应用指南2。如果某个信息检索系统根据输入请求显示关联程度最高的信息摘要,而摘要的数量从未超过4条,则应编写测试用例,使程序显示0条、1条和4条摘要,还应设计测试用例,导致程序错误地显示5条摘要。
-
如果程序的输入或输出是一个有序序列(例如顺序的文件、线性列表或表格),则应特别注意该序列的第一个和最后一个元素。
-
如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。
-
此外,发挥聪明才智找出其他的边界条件。
Tips:边界值分析方法和等价类划分之间的重要区别是,边界值分析考察正处于等价划分边界或在边界附近的状态。
4. 设计测试用例
A.确定边界值
在尝试针对划分好的等价类进行边界值取值的时候,一定要有适当的范围,不是根据我们的端点值往左右两侧随意选择测试值,而是也有科学的方法进行选择。
边界值点的定义: 上点:边界上的点,闭内开外(“闭”是指域的边界是封闭的,即闭区间;“开”是指域的边界是开放的,即开区间)。 离点:离上点最近的点称为离点。开内闭外。 内点:域范围内的任意一点。
三点分析法:结合等价类划分的具体情况,针对边界值的选择就包括开区间、闭区间以及半开半闭区间。
总结为,上点就是区间的端点值,而内点就是上点之间任意一点。对于离点,要分具体情况,如果开区间的离点,就是开区间中上点内侧紧邻的点;如果是闭区间的离点,就是闭区间中上点外侧紧邻的点。