一 什么是测试用例
1.1 测试用例的定义
1.2 测试用例模板和包含的内容
1.3 设计测试用例的作用
简单的说,测试用例就是:
- 设计一个情况,软件程序在这种情况下,必须能够正常运行并且达到程序所设计的预期结果。
- 如果程序在这种情况下不能正常运行,而且这种问题或重复发生,那就表示软件测试人员已经测出软件有缺陷,这时候就必须讲这个问题标示出来,并且通知软件开发人员。软件开发人员接获通知候,将这个问题修改完成于下一个测试版本内。
- 软件测试工程师取得新的测试版本后,必须利用同一个用例来测试这个问题,确保该问题已经修改完成。
二 测试用例模板
| 测试用例编号 | 标识符(用例编号):一般编号规则:TestCase_项目名称_模块名称_功能名称_序号 |
| 测试标题 | 测试的目标:预期结果(测试点) |
| 依赖用例 | 一般功能流程上,下游的功能测试依赖于上游的功能测试的用例。例如:增加了一个数据的测试用例,将会被删除该数据的测试用例依赖。 |
| 测试步骤 | 用最朴实的语言,写出来软件的操作步骤。要尽量详细。例如,在用户名文本框输入:XXX;在省份下拉列表选择:北京 城市下拉列表选择:北京 |
| 输入数据 | 单独整合测试数据。必须和测试步骤中的数据保持一致 |
| 预期结果 | 准确、对象的准确,内容的准确性。原则上每一个操作,都要有一个结果。在重要的步骤之后,设定预期结果。例如:页面跳转到XXX;程序弹出对话框,提示:用户名或密码错误,请重新输入!一般和测试目的密切相关。测试目的决定了测试步骤和预期结果。 |
| 测试结果 | 要求在测试执行完成后添加。没有执行保持为空。测试结果只有两个:通过/失败;pass/failed。和预期结果一致即为通过;不一致即为失败 |
| 测试人 | |
| 备注 |
测试用例应该包含以下内容:
- 标识符:由测试设计过程说明和测试程序说明引用的唯一标识符。
- 测试项:描述被测试的详细特性、代码模块等,应该比测试设计说明中所列的特性更加具体。还要指出引用的产品说明书或者测试用例所依据的其他设计文档。
- 输入说明:说明列举执行用例的所有输入内容或者条件
- 输出说明:描述进行测试用例预期的结果。
- 环境要求:是指执行测试用例必要的硬件、软件、测试工具、人员等。
- 特殊要求:描述执行测试必须的特殊要求
- 用例之间的依赖性:如果一个测试用例依赖于其他用力,或者受其他用例的影响,就应该在此注明。
三 用例设计和编写的作用
- 有效性:测试用例使测试人员测试过程中的重要参考依据
- 可复用性:良好的测试用例具有重复使用的功能,使得测试过程事半功倍,提高测试效率。
- 易组织性:即使是小的项目,也可能会有几千甚至更多的测试用例,测试用例可能在数月甚至几年的测试过程中被创建和使用。
- 可评估性:从测试的项目管理角度来说,测试用例的通过率是检验代码质量的保证。
- 可管理性:测试用例也可以作为检验测试人员进度、工作量以及跟踪/管理测试人员的工作效率的标准。
四 黑盒测试用例设计方法
1. 黑盒测试用例设计方法概述

2. 等价类划分法
2.1 等价类划分法原理
- 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性的数据作为测试用例
- 每一类中的代表性数据在测试中的作用等价于这一类中的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
- 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。
2.2 等价类划分法设计步骤
2.2.1 确定等价类的原则
- 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
例如:一个文本框规定,输入字符个数为3~18位。
一个有效等价类:范围内个数
两个无效等价类:个数小于6;个数大于18
- 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。
例如:请输入11位的手机号。
一个有效等价类:11位
一个无效等价类:不是11位
- 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类
布尔量:表示“真”或者“假”
- 在规定了输入数据的一组值(假定N个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类
例如:登录重要输入用户名和密码
- 在规定了输入数据必须遵守的规则的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
例如:用户名要求:6~18,由字母、数字、下划线组成;字母区分大小写;
- 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。
2.3 等价类划分法适用场景
针对:需要有大量数据测试输入,但是没法穷举测试的地方
- 输入框
- 下拉列表
- 单选和复选框
典型代表:页面级的输入框类测试
3. 边界值分析法
- 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
- 如果输入条件规定了值的个数,则用最大个数、最小个数、比这个最小个数少1,比最大个数多1的数作为测试数据
- 分析规格说明,找出其他可能得边界条件。
- 如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
- 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
3.1 边界范围节点
- 选取正好等于,刚好大于、刚好小于边界的值作为测试数据
- 上点:边界上的点(正好等于)
- 离点:距离上点最近的点(刚好大于、刚好小于)
- 内点:范围内的点(区间范围内的数据)
3.2 案例一:
需求;通过边界值法验证QQ号码的合法性
要求:6~10位自然数

3.3 使用场景
- 场景词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
- 典型代表:有边界范围的输入框类测试
3.4 总结
边界值可以覆盖等价类的长度,但是无法覆盖类型,所以设计用例时,必须两者结合。
五、测试步骤
等价类划分法用来筛选数据,而测试步骤的设计方法主要有因果图法、
5.1 因果图法
- 因果图法是一种适合于描述对于多种输入条件组合的测试方法
- 根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法
- 它适用于检查程序输入条件涉及的各种组合情况。
第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图。
原因和结果的关系:

- 恒等:原因A成立,结果B一定成立
- 非:原因A成立时,结果B一定不成立
- 或:原因A、B、C三者只要有一个成立,结果D就一定成立
- 与:原因A、B、C斗殴成立时,结果D才会出现。
第二步:根据功能说明在因果图中加上约束条件
- 其中互斥、包含、唯一、要求时对原因的约束,屏蔽是对结果的约束。他们的含义如下
- 互斥:表示不同时为真,即a,b,c中至多有一个为真。
- 包含:表示至少有一个为真,即a,b,c不能同时为假
- 唯一:表示a,b,c中有且仅有一个为真
- 要求:表示若a为真,则b必须为真。即不可能a为真且b为假
- 屏蔽:表示若a为真,则b必须为假

六、因果图法实例
- 阅读和分析功能说明书,识别出"原因"和"结果",并加以编号
- 案例:有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,他的软件规格说明如下。
- 若投入5角钱的硬币,按下"橙汁"或"啤酒"的按钮,则相应的饮料就送出来。
- 若投入1元的硬币,同样也是按"橙汁"或者"啤酒"的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
6.2 根据需求说明书找出原因-结果关系
| 原因 | 结果 |
| 投5角 | 橙汁 |
| 投1元 | 啤酒 |
| 选橙汁 | 找零5角 |
| 选啤酒 |
6.3 根据原因-结果关系画出因果图
因果图使用中的局限性:当原因和结果很多的时候,它们之间的关系连线就会很多,导致因果图的可读性变差。因此局部的小功能(原因和结果不是很多的时候)分析。
6.4 列出所有的原因和结果的列表,设计初步的测试用例步骤
| case1 | case2 | case3 | case4 | case5 | case6 | ||
| 投币 | 投5角 | 1 | 1 | 1 | |||
| 投一元 | 1 | 1 | |||||
| 按钮 | 选橙汁 | 1 | 1 | ||||
| 选啤酒 | 1 | 1 | |||||
| 结果 | 出橙汁 | 1 | 1 | ||||
| 出啤酒 | 1 | 1 | 1 | ||||
| 找零 | 1 | 1 | |||||
Case5,Case6这是一种bug,不能做测试设计。因果图的优势在于能够发现设计中存在的不足。
经过分析发现:
1)只选择银联,没有投币的时候,软件没有任何结果
2)只投币,没有选择饮料的时候,软件也没有任何的结果。
3)我们不能吧软件的缺陷设计成测试用例。
6.5 设计用例
| 测试用例编号 | 测试项 | 依赖用例 | 测试步骤 | 输入数据 | 预期结果 | 实际结果 | 测试人 | 备注 |
本文详细介绍了测试用例的概念、模板内容,强调了其在软件测试中的重要性,包括有效性、可复用性、易组织性和可评估性。此外,还讲解了黑盒测试中的等价类划分法和边界值分析法,以及如何通过因果图法设计测试步骤。等价类划分法用于筛选数据,边界值分析法关注输入边界条件,而因果图法则适用于处理复杂的输入条件组合。最后,通过实例展示了如何应用这些方法设计测试用例。

被折叠的 条评论
为什么被折叠?



