测试用例设计(七)文章摘要
本周分享《测试用例设计》实验内容,由于知识含量较多,现在拆分为多篇分享,今日是第一篇。
回顾前期内容,请点击
:
实 验 简 介
本实验主要讲解测试用例设计方法,包括等价类,边界值,正交试验表,判定表,流程分析法,状态迁移法,错误猜测等。
实 验 目 的
(1)、掌握测试用例设计方法,以便设计高效的测试用例。
实 验 流 程
7.错误猜测法
什么是错误猜测法
在软件测试中,人们可以靠经验和直觉推测系统中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。
其基本想法是:根据以往的测试经验和对系统内部知识的了解,列出系统中各种可能有的错误和容易发生错误的特殊情况,再根据它们来设计测试用例。
随着在产品测试的实践中对产品的了解的加深和测试经验的丰富,使用错误推测法设计的测试用例往往非常有效,可以作为测试设计的一种补充手段。并且积累的经验越丰富,方法使用效率越高。
错误猜测不是瞎猜,它需要依据对系统薄弱地方的了解和对开发人员盲点的了解。错误猜测需要了解错误,因此需要了解缺陷分类,了解了缺陷分类更加有利于定性地从大的方面体系地把握错误、提高错误推测的全面性以及测试用例的命中率(有效性)。
关于缺陷的分类,如果公司已经开展了ODC正交缺陷分析的话,可以参考公司的有关缺陷分类文档,如果没有,最好进行明确定义。缺陷分类活动和错误猜测法的区别是,缺陷分类活动对缺陷进行定性分类找出改进点,主要关注缺陷预防;错误猜测关注于设计测试用例去发现问题。
错误猜想法有时是非常有效的,但要注意错误猜想法只能作为测试设计的补充而不能单独用来设计测试用例,否则可能会造成测试的不充分。也就是说,错误猜测法只是针对系统可能存在的薄弱环节的测试补充,而不是为了覆盖而测试。
如何使用错误猜测法
步骤1:确定合适的错误猜测CHECKLIST
在进行错误推测前需要根据软件的具体特点制订错误猜测CHECKLIST,使之适合在本软件当前版本的测试用例设计中有效的使用。该CHECKLIST可以根据缺陷分类文档来合理设计,保证CHECKLIST的完整性。下表是错误猜测CHECKLIST的样例
错误猜测CHECKLIST
类别一 | 类别二 | 易错误点 | 有/无 | 备注 |
软件特性错误特点 | 历史版本错误易发点 | 继承版本VxxxRyyyBzzz数据配置一致性处理错误很多 | ||
继承版本VxxxRyyyBzzz的数据库倒换备份容易出现问题 | ||||
。。。 | ||||
开发人员错误易发点 | XXX开发人员容易忽略并行处理 | |||
YYY开发人员输出英文信息常有错误 | ||||
。。。 | ||||
软件共性的错误特点 | 用户接口 | 应用输入强制产生所有错误信息 | ||
施加强制软件建立有默认值的输入 | ||||
探究允许的字符集合和数据类型 | ||||
输入缓冲区溢出 | ||||
找出可能会相互作用的输入及其组合 | ||||
多次重复同样的输入和输入序列 | ||||
使用不同的初始条件施加输入 | ||||
强制每个输入产生不同的输出 | ||||
强制无效输出 | ||||
强制改变输出属性 | ||||
强制屏幕刷新 | ||||
赋给无效文件名 | ||||
改变文件访问许可 | ||||
更改或破坏文件内容 | ||||
。。。 | ||||
系统接口 | 模拟能执行所有错误处理代码并经历所有异常的故障 | |||
强制数据结构存储过多或过少的值 | ||||
发现不充分地共享数据或交互的功能部件 | ||||
考察内部数据约束(大小、维数、类型、形状、状态、位置)或系统的指标相关限制 | 如年范围:1980~2099。 | |||
按容量填满文件系统 | ||||
强制介质忙或不可用 | ||||
毁坏介质 | ||||
内存耗尽处理 | ||||
网络故障处理 | ||||
。。。 | ||||
硬件、模块异常 | 资源限制极限模拟(CPU、内存等)、超负荷运行 | |||
强制系统某一个硬件模块失效 | ||||
强制系统某一个软件模块(进程级别)失效或不能完全正常工作 | ||||
根据产品内部模块间的偶合关系,强制子系统(某几个模块的组合)失效来观察系统的运行状况 | ||||
对模块间(特别是互为备份的模块间)的通讯进行强制异常或失效 | ||||
负荷分担方式下,验证系统对负荷异常增加时运行的情况 | ||||
系统/模块失效或掉电后系统恢复(双总线结构系统总线失效、双平面结构系统的单平面内部件失效) | ||||
信息冗余类的异常测试 | 数据库的事务完整性异常 | |||
数据库锁的异常处理 | ||||
数据库的备份与恢复异常(各种备份方式及条件) | ||||
存储物理设备异常恢复(心跳线异常、网络中断、网络风暴、掉电) | ||||
协议消息IE(信元)异常 | ||||
协议消息时序异常 | ||||
。。。 | ||||
时间冗余类的异常 | 握手中断(重发和握手) | |||
定时器异常 | ||||
。。。 |
步骤2:确定需要进行错误猜测的测试子项
错误猜测方法并不是任何时候和每个地方都需要使用的。如果是简单的功能验证,影响因素已经非常清楚和简单的情况下没有必要进行各种错误猜测。
对于影响因素比较复杂的、系统性的测试规格,可能需要作为常规特性测试设计的补充,使用错误猜测方法进行特性测试设计。
在特性测试需求分析活动时就应该确定哪些测试子项需要运用错误猜测法进行测试设计(参见前面关于特性测试需求分析的内容和逐级细分法的内容)。
步骤3:根据CHECKLIST检查对应测试子项的规格进行错误猜测
确定了需要进行错误猜测的测试子项,与错误推测CHECKLIST以后,就需要对每个测试子项的规格按照CHECKLIST逐一分析比对,如果发现有对应的“易错误点”,(在CHECKLIST中)标记“有”,并将具体的内容写入“测试用例”表,直到全部需要进行错误猜测的测试子项对比分析完毕。
设计的测试用例填写到下表:
用例编号 | 测试用例 | 覆盖的易错误点 |
案例
写一段程序来重新格式化文本,具体如下:
给定一个文本,以ENDOFTEXT字符结尾,并且文本内的字之间使用BLANK或者NEWLINE字符隔开,根据下面规则把该文本转成一行接一行的格式:
(1). 行在文本有BLANK或NEWLINE处中断;
(2). 行尽可能长;
(3). 没有行可以有超过MAXPOS长度的字符。
这段规格会使一个有经验的程序员怀疑程序能否在下面这些情况下正确工作(因此可以从这些情况中选择测试用例):
(1). 输入文本长度是零
(2). 文本包含一个非常长的字(超过MAXPOS)
(3). 文本除了BLANK和NEWLINE之外没有任何别的字符
(4). 一个文本有一个空行
(5). 字被两个或更多个NEWLINE或BLANK分隔
(6). BLANK为行的开头或结束字符
(7). 文本包含数字或特殊字符
(8). 文本包含不可打印字符
(9). MAXPOS被设置为一个超过系统默认行长度的数字
测试用例设计方法总结
下面通过一个表格将主要的黑盒测试用例设计方法进行归纳总结:
方法名称 | 特点 | 不足 | 测试类型 | 系统类型 | 备注 |
等价类边界值 | 分类、覆盖 | 不考虑组合 | 所有类型 | 所有系统 | 需要关注数据背后的信息 |
判定表因果图 | 全排列组合、人工化简 | 比较繁琐 | 功能测试 | 控制系统、游戏 | 用于测试比较复杂的处理过程 |
正交试验 | 两两组合、自动选取 | 不关心组合的实际意义 | 功能测试、配置测试 | 所有系统 | 关键是正交表的选取 |
状态迁移 | 测试修改 | 功能测试 | 手机、MP3 | 编辑修改功能也可采用 | |
流程分析 | 测试流程 | 功能测试、安装测试 | 金融系统、物流系统、电子商务系统 | 业务流程复杂的系统适用,只检查流程,不保证单功能正确 |
为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。
版权所有,转载本站文章请注明出处:蜗牛学院在线课堂, http://www.woniuxy.com/note/495