测试用例分析与设计是整个测试生命周期中非常重要的一个活动,该测试活动的输出是后续测试执行的主要输入,其质量直接影响后续测试效率、有效性及测试质量。测试用例分析与设计的过程,采用的技术与方法,以及测试人员的测试经验与技能等,都会影响最终的测试用例质量。
图1是测试用例设计生命周期示意图。在该示意图中,包括了测试用例设计相关的主要测试活动,可能可以采用的技术与方法等。主要的测试活动包括:
1)确认测试用例设计的参考输入来源;
2)识别初始测试条件(测试点);
3)采用测试类型分析与功能交互分析细化测试条件;
4)采用测试用例设计技术与方法设计测试用例;
5)输出测试用例规格说明。
图1 测试用例设计生命周期
1)确认参考输入来源
测试用例设计不能仅仅依靠测试人员大脑中的一些经验和知识,良好的测试用例设计需要参考各种不同的参考输入文档。其中包括:
(1)开发文档,指的是软件开发过程中的各种软件工作产品,例如:系统需求规格说明、概要设计规格说明等;
(2)用户需求,测试的工作不仅是验证开发文档中定义的要求是否满足,同时也需要确认软件产品是否真正满足用户的需要。因此,测试人员了解用户需要是非常必要的。
(3)标准与规范,开发文档中有些内容之来来源于标准与规范,而没有在文档中详细描述其中的要求,因此它们也是测试人员进行测试设计的重要参考依据;
(4)类似产品需求,随着迭代-增量开发模型应用越来越广,测试人员经产面临的产品是基于已有系统之上,因此,以前产品的版本信息和质量信息对于当前的测试也很重要;
(5)测试经验知识库,可以来自测试执行的经验、测试过程中发现的缺陷分析和分类、用户反馈的缺陷的分析和分类等;
(6)其他隐现需求,例如:和开发人员面谈得到的信息、杂志和网络中的一些缺陷列表等。
2)识别初始测试条件
测试人员得到测试用例设计的主要参考来源之后,需要对这些文档内容进行仔细学习和研究,并从不同的参考输入来源中识别初始的测试条件(或者测试点)。测试条件颗粒度可以根据参考输入文档的内容来确定,例如:一条需求条目映射为一条初始测试条件,或者多条需求条目映射为一条初始测试条件。
3)细化测试条件
根据参考输入来源获得的初始测试条件,通常来说颗粒度是比较粗的,测试人员需要采用测试类型分析和功能交互分析等方法进行细化。例如:针对某条初始测试条件,测试人员可以考虑是否在每个不同的测试类型上面都需要考虑。详细的测试类型分析与功能交互分析,请参考后续的文章。
4)设计测试用例
得到细化的测试条件之后,测试人员需要采用不同的测试用例设计技术与方法,来设计具体的测试用例。在设计测试用例的过程中,测试人员可能发现测试条件需要更新,或者当前的测试条件并适合设计。因此3)细化测试条件与4)设计测试用例之间并不是单向的测试活动,它们之间有时候需要不断的相互迭代。
5)输出测试用例规格说明
最后,包含测试步骤和期望结果的测试用例,按照测试对象特性或者特性组合形成不同的测试用例规格说明。