测试用例的设计是测试设计的重要内容,关于测试用例的设计方法,当前不少出版的测试书和发表的测试
文章,不少存在着表述错误,主要是把测试用例中的输入数据的设计方法与测试用例的设计方法混为一谈,对测试初学者和测试用例设计人员产生误导。
这种错误的主要表现举例如下:
测试用例的设计方法包括:
◆ 等价类划分法
◆ 边界值法
◆ 功能图与判定表法
◆ 错误推测法
◆ 用户场景法
◆ ......
其实,测试用例中输入数据的设计方法只是测试用例设计方法的一个子集,上面列出的集中方法都是确定黑盒测试用例的输入测试数据的一般方法,而不是测试用例的设计方法。
除了确定输入数据之外,测试用例的设计还包括如何确定测试用例的设计策略,如何组织设计用例,如何从测试需求等文档创建完整的测试用例。
对测试执行人员来说,测试用例的表示内容包括以下几个方面:
◆ 测试用例的测试目标
◆ 测试用例的被测功能点描述
◆ 测试用例的测试运行环境
◆ 测试用例的执行方法(包括测试步骤,输入测试数据或测试脚本)
◆ 测试期望的结果
◆ 执行测试的实际结果
◆ 其他辅助说明
乍看起来有点像测试策划(计划)考虑的因素。但是测试用例的设计和测试计划的设计关注点不同,测试计划考虑的宏观和全面些,而测试用例考虑的更窄。
设计测试用例首先要考虑以下几个问题:
◆ 为什么要设计测试用例?
◆ 谁来写测试用例?这些写测试用例的人的测试技术和对被测试产品了得有多深入?
◆ 测试用例写给谁看,多少人将试用测试用到?
◆ 分配给写测试用例的时间是多长?要安排几个人来写?
◆ 怎么在测试用例的成本、质量和效率方面达到平衡?
只有回答了这些问题,才能确定测试用例的具体写作方法和表现形式。一般而言,公司里分配写作测试用例的时间并不长,而且提供的文档也不全面,所以写测试 用例要符合测试部门的当前现状和项目的测试特点,综合考虑,所以看起来有点像测试计划的某些内容,但是对问题的细化程度不一样。
测试用例的设计是一项复杂的测试工作,测试用例的设计方法需要考虑测试的目标,被测试软件的特性,测试者人力资源的技术和能力,测试组织形式,测试进度、测试成本等多个方面。
在设计测试用例时,可以综合运用以下方法:
◆ 根据被测软件的功能和特性点设计测试用例:
● 根据被测试功能点设计测试用例
● 根据软件性能指标设计测试用例
● 根据软件的兼容性要求设计测试用例
● 根据软件的国际化用户要求设计国际化测试用例
● 根据...设计...用例
◆ 根据软件的组成元素设计测试用例
● 设计软件设计用例
● 设计联机帮助和文档手册的设计用例
● 设计软件的模版等数据文件的测试用例
◆ 根据软件的开发阶段(里程碑)设计测试用例
● 单元测试设计用例
● 集成测试设计用例
● 系统测试设计用例
● 验收测试设计用例
◆ 根据...设计测试用例
● ......
具体到设计每个测试用例而言,可以考虑如下:
◆ 根据被测的最小目标,确定测试用例的测试目标
◆ 根据用户使用环境确定测试环境
◆ 根据以下因素确定测试用例的步骤
● 用户使用软件的步骤或者特定场景,确定测试执行步骤地具体内容
● 执行者对产品的熟悉程度确定步骤的详细或粗略程度
● 被测特性的复杂性也决定步骤的详细或粗略程度
● 测试用例的执行方法(手工测试或自动化测试)确定步骤地内容表示
● 自动测试用例要编写和调试测试脚本,手工测试给出执行步骤
● ......
◆ 根据设计规格说明书确定期望的测试用例执行结果
◆ ......
确定测试用例的输入数据确实对于测试用例非常重要,它决定着测试用例的执行效果和效率,但是确定输入测试数据只是设计测试用例的一个步骤,而不是全部。因此,不能把测试用例的设计方法等同于测试用例数据的方法。