测试用例概念
测试用例是指为实施测试而向被测试系统提供的输入数据,操作或各种环境设置以及期望结果的一个特定集合。
测试用例控制软件的执行过程,他是对每一个测试项目的进一步实例化。
写测试用例的好处
- 理清思路,避免遗漏
这里是我们认为最重要的一点,假如我们测试的项目大而复杂,我们可以把项目功能细分,根据每一个功能通过编写用例的方式来整理我们测试系统的思路,避免遗漏掉要测试的功能点。 - 跟踪测试进展 通过编写测试用例,执行测试用例,我们可以很清楚的知道我们的测试进度。
- 历史参考
在我们所做的项目中,也许会有很多功能是相同或相近的,我们对这类功能设计了测试用例,便于以后我们遇到类似功能的时候可以做参考依据。 - 重复性 我们测试一个系统不是一个人测一遍就算测完的,需要多人反复的进行测试,那么我们就需要测试用例来规范和指导我们的测试行为。
- 其他好处 通过编写测试用例,也能体现工作内容,工作量,领导也能了解到员工的工作情况。 总结:
组织性、功能覆盖、重复性、跟踪统计、测试确认
设计测试用例前的准备和材料的组织
- 阅读文档(需求文档,原型文件,操作手册等),向相关人员咨询。
- 探索性测试并文档化。
测试用例的内容
项目名称、功能模块名、预置条件、用例编号、步骤、预期、结果。
注意事项:
使用最可能发现错误的用例
不重复,不冗余
选择相似用例中最有效的
用例复杂度适中,不能太简单,不能太复杂
更新和维护测试用例
- 在开始执行过程中,需求,设计都可能发生变化,功能会随之发生变化
- 有些问题是在测试过程中,随着对被测系统的了解加深,可能的分支或输入,输出会有更多需要考虑的。
等价类划分
定义:
等价类划分作为一种典型的黑盒测试方法,它完全不考虑程序的内部结构,只是根据对程序的要求和说明进行测试用例的设计。
把程序的输入域划分成若干部分,从每个部分中选择少数代表性数据作为测试用例。代表性数据在测试中等价于此部分其他值。
例子:只支持字母和数字,并定义长度的文本框输入
为空
长度过短(长度小于需求)
长度过长(长度大于需求)
全数字
全字母
全汉字
全特殊字符
数字和字母组合
其他组合
等价类方法小结
首先从程序的功能说明中找出各个输入条件,然后为每个条件划分为两个或更多的等价类,确定等价类划分后,列出相应的等价类表,再根据表给出测试用例,细化和完善。
等价类方法的特点、要点和注意事项
特点:
测试内容相同
一个用例能捕获,此等价类其他数据也能捕获。
注意事项:
有效、无效
要点:
某输入条件说明了一个必须成立的情况,可划分一个有效等价类和一个无效等价类
对输入取值范围或值的个数进行了规定,可以确定一个有效等价类和两个无效等价类
布尔值可以确认一个有效等价类和无效等价类
若规定了一个输入规则,可以确认一个有效等价类和若干无效等价类。例如输入数字的文本框。
边界值分析
输入输出的边界最容易产生错误
确定边界值的方法:正好等于,刚刚小于,刚刚大于
例如:文本框长度定义为4-8个字符
按边界值分析方法,测试用例可以设计为输入7个字符,8个字符,9个字符三种情况
隐含边界值
例如 闰年2月29日,平年2月28日
因果图方法
- 分析软件哪些输入,哪些输出
- 找出原因和结果之间的关联
- 某些原因和结果的组合是不能出现的
- 把因果图转换判定表
- 每一列作为一条用例
例子:
工资分为年薪制a1,月薪制a2
犯错误程度分为普通a3,严重a4
工资为a1的员工犯普通错误扣工资b1,犯严重错误扣工资b2
工资为a2的员工犯普通错误扣工资b3,犯严重错误扣工资b4
其中,a1和a2为互斥;b1,b2和b3,b4是互斥;a3和a4可以同时具备。需要把这个组合整理成判定表
- 判定表
测试用例
其他的测试方法
- 通过测试和失败测试
- 通过测试:验证系统和需求是否一致,满足需求
- 失败测试:破坏软件,迫使出错,证明系统不需要做什么
- 错误猜测 基于经验和直觉,推测可能出错的地方,有针对性设计测试用例 例子: 采购收货,计量单位和采购单位没有换算
那我就可以猜测,采购换货后的收货,可能存在此问题;入库后的换货可能也存在此问题。 - 随机测试 随机使用数据,模拟用户操作。
随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试一起进行。 - 状态转换图
- 状态流程图
- 测试大纲方法
- 树状结构
使用测试方法设计测试用例
- 边界值分析首先要考虑
- 等价类划分补充和完善
- 错误推测进行追加
- 有输入条件组合可以使用因果图
- 自动化和随机测试
- 参考无经验用户的做法
- (状态转换图和大纲法)