概念
测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。
用例的设计方案
要针对某个功能/物体进行测试,就可以采用以下思路:功能测试 + 界面测试 + 性能测试 + 兼容性测试 + 易用性测试 + 安全测试。
这只是一种思路,但还是要从七大类出发,这样设计出来的用例基本上才能覆盖大部分场景,不至于漏掉一些Bug。
1、从整体角度设计分析测试用例:基于需求
(1)、验证需求的正确性和合理性
(2)、分析需求、细化需求、从需求中分解出测试项 ,根据测试项找出功能,进行测试用例的编写。
测试用例设计七大方法
总共有七大方法,主要有:等价类、边界值、判定表、因果图、正交试验、状态迁移和流程分析法。
等价类
等价类就是把输入划分成若干个等价类,从每一个等价类中取出一个测试用例,如果这个测试用例能够测试通过,那么我们就说这个测试用例代表的等价类测试通过。
有效等价类:符合程序规格说明的数据集合;
无效等价类:不符合软件需求规格说明的数据集合;
创建账号:
1、会员昵称:必填,长度在20个字符以内,可以重复;
2、登录密码:必填,6-16位字母数字符号组合(可以是纯数字,纯字母,纯符号);
3、手机号码:未注册过的第一位是1,第二位大于2的11位自然数;
4、邮箱地址:用户名@主机名.域名(@前的用户名只能包含字母,数字,下划线),邮箱地址不能重复;
5、QQ: 6~11位的自然数(0-9),选填项,可以重复;
6、性别:保密,男,女
7、手机,邮箱至少填写其中一个
8、提交成功,跳转到列表页面,列表增加一条数据
9、内容填写错误,点击确认提交,提示对应的错误信息
边界值
针对输入和输出的边界进行测试用例的设计。
边界值法是在等价类方法的基础上来的,步骤与等价类类似,但综合了一起。
- 根据等价类方法划分有效等价类和无效等价类,确定上点、离点及内点,每个点统一编号;
- 设计一个新的用例,使其尽可能的覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖;
- 设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖;
判定表
分析和表述若干输入条件下,被测对象针对这些输入做出的响应一种工具;在遇到复杂业务逻辑时,可以利用该表,理清业务逻辑关系。
组成:
条件
- 条件桩:列出问题中的所有条件;被测对象的所有输入
- 条件项:列出条件对应的取值,所有可能条件下的真假值;
动作
- 动作桩:针对问题条件的可能采取的操作;
- 动作项:列出条件项的、各种取值情况下应该采取的动作结果;针对动作桩被测对象响应的可能取值;
规则:
1、判定表中贯穿条件项和动作项的一列就是一条规则。
2、假设有n个条件,每个条件的取值有两个(0,1),全组合有2的n次方种规则。
3、动作项和条件项组合在一起,形成业务逻辑的处理规则。
操作步骤:
- 明确需求,确定条件桩、动作桩
设计和优化判定表
- 列出条件桩和动作桩
- 填写条件项,对条件进行全组合3)、根据条件项的组合确定动作项
- 简化、合并相似规则(有相同的动作)
- 抽取测试用例
因果图
参数之间存在逻辑关系,不同逻辑之间的组合会输出不同的结果 参数之间存在约束关系,输出结果不确定
逻辑关系:
- 恒等:当输入条件发生时,结果一定会出现;当输入条件不发生时,结果一定不会出现;
- 非:当输入条件发生时,结果一定不会出现;当输入条件不发生时,结果一定会出现;
- 与:当多个输入条件装,只有所有输入条件都发生,结果才会出现;
- 或:当多个输入条件种,只要有一个发生,结果就会出现;
有一个修改文件的功能性需求:
如果第一列是A或B,第二列数字,则修改文件;
如果第一列不正确,则给出M,第二列不正确则给出L。
正交实验
参数全都是有效的,有效参数之间的组合会输出不同的结果
测试兼容性(不同的环境之下运行的程序)
操作系统: Windows7 、Windows8 、Windows10 ,Windows11
浏览器: 360、火狐、google、IE
分辨率: 1024x768、1920x1024、1920x768、1444x1024
网络: WIFI、4G、3G、2G
状态迁移
关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态转移。
- 根据需求明确状态节点;
- 绘制状态迁移图;
- 绘制状态迁移树;
- 抽取测试用例;
场景法
通过运行场景对系统的功能点或者业务流程进行描述,从而提供测试效果的一种方法。
基本流:从系统的某个初始状态开始经过一系列状态后到达终止状态的过程;
备选流:以基本流为基础,在经过的每个判定节点处,满足不同的触发条件而导致其他事件流;
总结
综上,根据具体的测试目标和需求,我们可以选择合适的方法或将它们结合使用来设计全面有效的测试用例,从而提高软件质量和用户体验。
原则:
- 具有输入功能, 但输入之间没有组合关系,推荐等价类法
- 输入有边界如长度、类型,用边界值补充测试用例
- 多输入, 多输出, 输入和输出存在组合关系,推荐使用判定表
- 多个功能的组合测试,流程图和场景法
- 最后推荐使用错误推测法来进一步补充测试用例。
2 条评论
这是一篇佳作,无论是从内容、语言还是结构上,都堪称完美。
文化底蕴深厚,引经据典信手拈来。