目录
测试用例设计
基础概念
测试用例要素
测试用例设计原则
等价类
边界值
因果图
场景法
流程分析
错误推断法
测试用例设计
基础概念
-
测试用例的特性
-
有效性: 测试用例的能够被使用,且被不同人员使用测试结果一致,就是用例的语言通俗易懂,描述准确。 -
可重复性: 良好的测试用例具有重复使用的功能,用于回归测试。 -
易组织性: 好的测试用例会分门别类地提供给测试人员参考、使用。 -
可评估性: 从测试管理的角度上来说,测试用例的通过率和软件缺陷数是评估产品质量的测试标准。 -
可管理性: 测试用例可以作为检查测试人员工作进度、执行工作量以及缺陷跟踪、管理测试人员工作效率的因素。
测试用例要素
用例编号 | 测试模块 | 用例标题 | 前提条件 | 测试输入 | 操作步骤 | 预期结果 | 优先级 |
---|
dl-01 | 登录 | 正常登录验证 | 电脑可以正常使用 | 账户名、密码 | 输入正确的账户名、密码 | 登录成功 | 高 |
-
测试用例八大要素
-
测试用例编号: 编号由字符和数字组合成的字符串,用例编号具有唯一性、容易识别, 如下表。 -
测试项目/模块: 测试的项目属于哪个项目或者被测试的需求、被测的模块、被测的单元等等。 -
预置条件 : 执行当前测试用例需要的前提条件,如果前提条件不满足,则后面的测试步骤不能进行或者得不到预期结果。 -
测试输入 : 测试用例执行过程中需要加工的外部信息.根据测试用例的具体条件有手工输入、数据库等。 -
预期输出 : 测试用例的预期输出结果,包括返回值内容、界面响应结果等。 -
操作步骤: 执行当前测试用例需要经过的操作步骤,需要明确的给出一个步骤的描述,测试用例执行人员可以根据该步骤完成测试用例执行。 -
测试用例标题: 对测试用例的简单描述。用概括的语言描述该测试用例的测试点。每个测试用例的标题不能够重复,因为每个测试用例的测试点事不一样的。 -
优先级: 对于测试用例的重要程度的区分.包含如下几种:
-
其他要素
-
用例的设计者:能准确找到测试用例的设计人员,对用例修改时能方便找到人员 -
用例设计日期: 方便检查用例的设计进度 -
对应的开发人员: 出现bug后能及时找到相应的人员进行修复 -
测试结果: 执行用例最后执行的结果, 包括:pass、fail、block -
测试类型: 功能、性能、压力等等
测试用例设计原则
-
明确性 测试人员要尽量避免测试用例存在含糊的因素,在测试过程中,测试用例的测试结果是唯一的。 -
代表性 尽量将具有相似功能的测试用例抽象合并,功能相似的用例要合并。 -
简洁性 测试用例简洁,可读性良好,测试过程目的明确,测试结果唯一。 测试用例要用陈述性语句 一句话直指问题的核心 ,不要使用浮夸的修饰手法。 -
个人总结 测试用例的输入一定要看软件的界面,怎么操作的就怎么写。 测试思路里面有几种情况,就要设计几条用例来进行覆盖。 保持用例步与步之间的独立性,因为测试用例每一步执行不通过都是bug,如果步与步之间关联了,则发现bug不好跟踪。 测试用例中使用数据的地方必须要用数据。 测试用例的每一个输入必须有明确的结果。
等价类
-
定义 输入域的子集合,把输入域里面性质相同或相近的归为一类,每一类抽一个代表进行测试,如果这一代表过程中发现问题,则该类均有问题,如果这一代表测试过程中没有发现问题,说明这一类均没有问题。 -
等价类划分 在测试中最完美的测试是使用穷举测试,把所有的数据都测一遍,但是实际工作中不能采用,因为效率太低了。这就是我们为什么要划分等价类,就是为了使用最少的测试数据,达到最好的测试质量。 -
等价类类型
-
注意 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。
-
案例
-
确定需求 需求规格说明书:从键盘上任意输入三个数,系统可以自动判断是否能构成三角形以及构成什么边的三角形,软件系统界面如下所示:
测试需求:从键盘上任意输入三个数(输入的是什么数?输入的是正整数。),系统可以自动判断(系统如何自动判断的?我们的系统无法自动判断,输入数据后,点击确定才能判断构成三角形。)是否能构成三角形(构成三角形有提示信息吗?如果输入的数据能构成三角形会弹出友好信息。)以及构成什么边的三角形(构成什么样的三角形?构成普通三角形,等腰三角形,等边三角形)。
-
确定有效等价类和无效等价类
-
进行分类
-
分析一下满不满足类的规则和不满足类的规则
三角形按边分类 | 满足类的规则 | 不满足类的规则 |
---|
普通三角形 | (1)A>0,(2)b>0,(3)c>0,(4)A+B>C,(5)A+C>B ,(6)B+C>A | (11)A<=0,(12)B<=0,(13)A+B<=B, (14)A+B<=C, (15)A+C<=B,(16)B+C<=A | 等腰三角形 | (7)A=B,(8)B=C,(9)A=C | (17)A!=B and B!=C and A!=c | 等边三角形 | (10)A=B and B=C and A=C | (18)A!=b, (19)B!=C, (20)A!=C |
-
根据分析出来的规则得出测试思路 构成普通三角形验证(1种) 构成等腰三角形验证(3种) 构成等边三角形验证(1种) 不能构成普通三角形验证(6种) 不能构成等腰三角形验证(1种) 不能构成等边三角形验证(3种)
-
对每条等价类设计测试用例
序号 | 输入(步骤,操作) | 输出(预期结果,验证) |
---|
Test1 | 进入三角形系统界面,选中A输入框输入3,B输入框输入4,C输入框输入5,点击“确定” | 弹出友好信息“构成普通三角形” | Test2 | 进入三角形系统界面,选中A输入框输入3,B输入框输入3,C输入框输入5,点击“确定” | 弹出友好信息“构成等腰三角形” | Test3 | 进入三角形系统界面,选中A输入框输8,B输入框输入4,C输入框输入4,点击“确定” | 弹出友好信息“构成等腰三角形” | Test4 | 进入三角形系统界面,选中A输入框输入0,B输入框输入3,C输入框输入5,点击“确定” | 弹出信息“无法构成三角形” | Test5 | 进入三角形系统界面,选中A输入框输入1,B输入框输入2,C输入框输入3,点击“确定” | 弹出信息“无法构成三角形” | Test6 | 进入三角形系统界面,选中A输入框输2,B输入框输入4,C输入框输入2,点击“确定” | 弹出友好信息“构成等腰三角形” | Test7 | 进入三角形系统界面,选中A输入框输1,B输入框输入1,C输入框输入1,点击“确定” | 弹出友好信息“构成等边三角形” | Test8 | 进入三角形系统界面,选中A输入框输1,B输入框输入0,C输入框输入1,点击“确定” | 弹出信息“无法构成三角形” | Test9 | 进入三角形系统界面,选中A输入框输4,B输入框输入4,C输入框输入0,点击“确定” | 弹出信息“无法构成三角形” | Test10 | 进入三角形系统界面,选中A输入框输,B输入框输入,C输入框输入,点击“确定” | 弹出信息“无法构成三角形” | Test11 | 进入三角形系统界面,选中A输入框输1,B输入框输入1,C输入框输入4,点击“确定” | 弹出信息“无法构成三角形” |
-
个人总结 如果输入条件规定了取值范围的情况下,一般可以确立一个有效等价类和两个无效等价类。例如:体重输入框10-100 如果输入条件是一个集合的情况下,可以确立一个有效等价类,一个无效等价类。例如:A输入框只能输入整数,整数是一个集合 如果输入条件就是一个Boolean量的情况下,可以确立一个有效等价类和一个无效等价类。例如:1,0 如果输入条件是一组值,假定有N个,程序要对这一组织分贝处理的情况下可以确立N个有价类和一个无效等价类。例如:1,@,A,中
边界值
-
等价类划分法的区别:
-
常见的边界值
-
边界点(上点):输入范围的边界点 -
离点:离边界点最近的点 -
内点:输入范围内的任意一个点
-
案例
-
确认需求 需求规格说明书:支持数字,不支持输入英文字母、汉字和一些特殊字符。输入框最大长度20个字符,软件系统界面如下所示:
测试需求:支持数字(支持的是正是还是负数?支持的是正整数,数字为0,1,2,3,4,5,6,7,8,9),不支持输入英文字母(除开英文字母外,其他国家的语言支持吗?这里的英文字母指的是英文字母的大小写。其他国家的语言不支持也不考虑,这里只支持阿拉伯数字。)、汉字(简体)和一些特殊字符(这些字符都包括哪些?键盘上大概有33种)。输入框最大长度20个字符(超出20字符系统会有提示信息吗?系统会弹出友好提示信息输入字符过长)(A,B,C都是必填项,不填写是会弹出友好提示信息)。 -
根据需求得出测试思路 支持数字验证(10种) 不支持英文字母的验证(52种)大写、小写 不支持汉字(2种)简体、繁体 不支持特殊字符验证(33种) 最大长度的验证(3种) 必填项验证(1种) -
根据测试思路编写测试用例
A输入框的测试用例
序号 | 步骤 | 预期结果 |
---|
Test1 | 输入三角形系统界面选中A输入框输入”00189”,其他框保持正常,点击确定 | 弹出友好信息而不能构成三角形 | Test2 | 输入三角形系统界面选中A输入框输入”ABYZ”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test3 | 输入三角形系统界面选中A输入框输入”縌”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test4 | 输入三角形系统界面选中A输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test5 | 输入三角形系统界面选中A输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test6 | 输入三角形系统界面选中A输入框输入”@”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test7 | 输入三角形系统界面选中A输入框输入”~”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test8 | 输入三角形系统界面选中A输入框输入”[”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test9 | 输入三角形系统界面选中A输入框输入”{”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test10 | 输入三角形系统界面选中A输入框输入”你好”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test11 | 输入三角形系统界面选中A输入框输入”11111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test12 | 输入三角形系统界面选中A输入框输入”1111111111111111111”, 其他框保持正常,点击确定 | 弹出友好信息输入“超出” | Test14 | 输入三角形系统界面选中A输入框输入”111111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test15 | 输入三角形系统界面选中A输入框输入””,其他框保持正常,点击确定 | 弹出友好信息输入“数据缺失” |
B输入框的测试用例
序号 | 步骤 | 预期结果 |
---|
Test1 | 输入三角形系统界面选中B输入框输入”00189”,其他框保持正常,点击确定 | 弹出友好信息而不能构成三角形 | Test2 | 输入三角形系统界面选中B输入框输入”ABYZ”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test3 | 输入三角形系统界面选中B输入框输入”縌”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test4 | 输入三角形系统界面选中B输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test5 | 输入三角形系统界面选中B输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test6 | 输入三角形系统界面选中B输入框输入”@”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test7 | 输入三角形系统界面选中B输入框输入”~”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test8 | 输入三角形系统界面选中B输入框输入”[”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test9 | 输入三角形系统界面选中B输入框输入”{”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test10 | 输入三角形系统界面选中B输入框输入”你好”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test11 | 输入三角形系统界面选中B输入框输入”11111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test12 | 输入三角形系统界面选中B输入框输入”1111111111111111111”, 其他框保持正常,点击确定 | 弹出友好信息输入“超出” | Test14 | 输入三角形系统界面选中B输入框输入”111111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test15 | 输入三角形系统界面选中B输入框输入””,其他框保持正常,点击确定 | 弹出友好信息输入“数据缺失” |
C输入框的测试用例
序号 | 步骤 | 预期结果 |
---|
Test1 | 输入三角形系统界面选中C输入框输入”00189”,其他框保持正常,点击确定 | 弹出友好信息而不能构成三角形 | Test2 | 输入三角形系统界面选中C输入框输入”ABYZ”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test3 | 输入三角形系统界面选中C输入框输入”縌”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test4 | 输入三角形系统界面选中C输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test5 | 输入三角形系统界面选中C输入框输入”/”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test6 | 输入三角形系统界面选中C输入框输入”@”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test7 | 输入三角形系统界面选中C输入框输入”~”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test8 | 输入三角形系统界面选中C输入框输入”[”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test9 | 输入三角形系统界面选中C输入框输入”{”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test10 | 输入三角形系统界面选中C输入框输入”你好”,其他框保持正常,点击确定 | 弹出友好信息输入“非法字符” | Test11 | 输入三角形系统界面选中C输入框输入”11111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test12 | 输入三角形系统界面选中C输入框输入”1111111111111111111”, 其他框保持正常,点击确定 | 弹出友好信息输入“超出” | Test14 | 输入三角形系统界面选中C输入框输入”111111111111111111111”,其他框保持正常,点击确定 | 弹出友好信息输入“无法构成三角形” | Test15 | 输入三角形系统界面选中C输入框输入””,其他框保持正常,点击确定 | 弹出友好信息输入“数据缺失” |
因果图
-
案例
-
确认需求 需求规格说明书:当调度终端A和调度终端B正在通话中,调度台可通过监听按钮监听到A和B之间的双向语音,而终端A和终端B听不到调度台的声音,即A和B处于不知情况的状态。 - 我们可以看出来这个需求依然不完整,所以我们要再跟产品经理进行沟通,得到完善的需求
测试需求:当调度终端A和调度终端B正在通话中(什么是调度终端?指手机。),调度台(什么是调度台?监听控制台。)(如何判断是A还是B?通过A和B的手机号来判断是A说话还是B说话。)可通过监听按钮监听到A和B之间的双向语音(双向语音指的是什么?从A与B对话,从B到A对话。)(调度台如何通过监听按钮建通道A和B之间的双向语音?当A和B正常通话,调度台有一个指示灯M1灯从不亮变成绿色表示AB之间正常通话了。此时调度台按下监听按钮,即可以监听。),而终端A和终端B听不到调度台的声音,即A和B处于不知情况的状态(如何判断A和B处于不知道情状态?调度台说话有一个指示灯M,M从不亮变为红色表示调度台说话了。此时A和B是听不到的)。 -
阅读需求的过程中识别出那些是原因,哪些是结果。 -
原因 | 结果 |
---|
调度终端A | 调度台听到A和B的声音 | 调度终端B | M1为绿色 | 监听按钮 | |
原因 | 结果 |
---|
调度台发声 | 终端A和终端B听不到声音 | | M灯为红色 |
-
两种方案,画因果图,推导出测试思路。 根据原因推导出结果,先假设原因成立,推导出结果,然后再假设原因不成立,推导出多种情况。 根据结果推导出原因,先假设结果成立,再推导出原因,推导出结果,然后再假设原因不成立,推导出多种情况。 注:多个原因产生多个结果的情况下,必须使用中间节点进行转化。
-
测试思路: 默认检查M1等验证(1种) A和B都说话的验证(3种) A和B只一个人发声的验证(2种) A和B都不发声的验证(1种) -
测试思路: 默认检查M灯验证(1种) 调度台发声验证(1种) 调度台不发声验证(1种)
-
设计测试用例
序号 | 输入 | 预期结果 |
---|
Test1 | 默认检查M1灯显示 | M1灯不亮 | Test2 | 调度终端A,B同时说话按监听按钮。 | M1灯为绿色,调度台同时听到A和B的声音 | Test3 | 调度终端A说话按监听按钮,B不说。 | M1灯为绿色,调度台同时听到A的声音 | Test4 | 调度终端B说话按监听按钮,A不说。 | M1灯为绿色,调度台同时听到B的声音 | Test5 | 调度终端A先说,B后说话按监听按钮。 | M1灯为绿色,调度台先听到A说话再听到B说话。 | Test6 | 调度终端B先说话,A后说话按监听按钮。 | M1灯为绿色,调度台先听到B说话在听到A说话。 | Test7 | 调度终端A和B都不发生。 | M1灯不亮,调度台听不到A和B说话。 |
序号 | 输入 | 预期结果 |
---|
Test1 | 默认检查M1灯显示 | M1灯不亮。 | Test2 | 调度台说话。 | M1灯为红色,调度终端 A和B听不到声音。 | Test3 | 调度台不说话。 | M1灯不亮。调度终端A和B听不到声音。 |
场景法
流程分析
-
由来 流程分析法主要是针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。 在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例覆盖函数的所有代码路径。 路径覆盖法: 把所有测试条件写成测试用例,白盒是根据代码分支分析写测试用例 在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析的方法设计测试用例。 黑盒测试是看文档来写测试用例,不需要看代码 -
设计步骤:
-
详细了解需求 -
根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系 -
画出业务流程 -
写用例,覆盖所有的路径分支
错误推断法
-
定义 错误推测法是: 基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。 -
基本思想 根据经验,列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。 -
使用场景 适用于项目时间比较短促,任务比较繁重的情况下,而且测试经验较多。
|