1、引言
测试设计遵循与软件设计相同的工程原则。好的软件设计包含几个对测试设计进行精心描述的阶段。这些阶段是:
● 测试策略
● 测试计划
● 测试描述
● 测试过程
上述四个测试设计阶段适用于从单元测试到系统测试各个层面的测试。
测试设计由软件设计说明所驱动。单元测试用于验证模块单元实现了模块设计中定义的规格。一个完整的单元测试说明应该包含正面测试(Positive Testing)和负面的测试(Negative Testing)。正面测试验证程序应该执行的工作,负面测试验证程序不应该执行的工作。
设计富有创造性的测试用例是测试设计的关键。本文档介绍了测试说明的一般设计过程,描述了一些结构化程序设计单元测试中采用的用例设计技术,同时也增加了面向对象编程中对类进行单元测试所采用的测试用例设计技术,这些可作为软件测试人员的参考阅读资料。
2、设计单元测试说明
一旦模块单元设计完毕,下一个开发阶段就是设计单元测试。值得注意的是,如果在书写代码之前设计测试,测试设计就会显得更加灵活。一旦代码完成,对软件的测试可能会倾向于测试该段代码在做什么(这根本不是真正的测试),而不是测试其应该做什么。单元测试说明实际上由一系列单元测试用例组成,每个测试用例应该包含4 个关键元素:
被测单元模块初始状态声明,即测试用例的开始状态(仅适用于被测单元维持了调用间状态的情况);
被测单元的输入,包含由被测单元读入的任何外部数据值;
该测试用例实际测试的代码,用被测单元的功能和测试用例设计中使用的分析来说明,如:单元中哪一个决策条件被测试;
测试用例的期望输出结果,测试用例的期望输出结果总是应该在测试进行之前在测试说明中定义。
以下描述进行测试用例设计,书写测试说明的7步通用过程。
2.1 测试用例设计步骤
2.1.1 步骤1:首先使被测单元运行
任何单元测试说明的第一个测试用例应该是以一种可能的简单方法执行被测单元。看到被测单元第一个测试用例的运行成功可以增强人的自信心。如果不能正确执行,最好选择一个尽可能简单的输入对被测单元进行测试/调试。
这个阶段适合的技术有:
● 模块设计导出的测试
● 对等区间划分
2.1.2 步骤2:正面测试(Positive Testing)
正面测试的测试用例用于验证被测单元能够执行应该完成的工作。测试设计者应该查阅相关的设计说明;每个测试用例应该测试模块设计说明中一项或多项陈述。如果涉及多个设计说明,最好使测试用例的序列对应一个模块单元的主设计说明。
适合的技术:
● 设计说明导出的测试
● 对等区间划分
● 状态转换测试