测试用例设计

2011-07-17  邓智群 

编写测试用例是一种验证行为,更是一种设计行为,同样,它更是一种编写文档的行为。TDD的所有工作都是从一个测试用例开始,对软件产品的每个特定功能的测试构成的一个个测试用例,形成的完整用例集就是软件产品的测试方案。

  什么是测试用例

  测试用例是针对软件产品的某个特性所设计的测试执行,具体到类所提供的某个功能的测试执行,是测试执行和统计的基本单位。其主要目的是验证该功能点的正确性,而不是验证某个类的某个方法。

  测试用例由测试输入数据和与之对应的预期输出结果两部分组成。在单元测试中,一个好的测试用例在于能够发现至今没有发现的错误;在TDD,一个好的测试用例在于能提早发现并避免错误。测试用例的输入数据,包含合理的输入和不合理的输入。

  为什么要编写测试用例

  测试用例验证了程序的每一项功能的正确性。测试用例为后续的开发过程——无论是增加功能、更改程序结构、还是代码重构——提供了保障,保障以后的代码变动不会影响到原来的程序功能。

  先编写测试用例是一种设计行为。它使我们从调用者的角度观察、思考,迫使我们把程序设计成低耦合高内聚、易于调用和可测试的。

  编写测试用例是一种编写文档的行为。测试用例展示了类或方法如何调用,是非常良好的文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。

  测试用例是自动可回归动化的,编写完成之后,一劳永逸,可以随时运行测试。

  测试用例构成了设计和测试方案的基础。每个测试用例反映不同的场景、条件或事件,随着测试用例数量的增加,您对代码质量和产品质量也就越有信心。

  什么时候编写测试用例

  ·增加一个新的功能时,先要编写该功能的测试用例

  ·修正原有代码的Bug时,先为Bug写测试用例

  ·重构没有测试过的代码时,先写测试用例

  如何编写测试用例

  通常从开发某个功能开始,针对该功能编写测试用例(TestCase)。如果发现这个功能无法或很难用测试用例表达,那么细分此功能,直至根据它的子功能的测试需求可以写出测试用例为止。

  在传统的软件测试过程中,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。对于每个测试需求,至少需要确定两个测试用例:一个代表预期的条件,用于验证行为是否符合预期(正面测试);另一个代表不可接受的、异常的或意外的条件,它可用于核实测试需求是否未以非预期方式执行(负面测试)。在一般情况下,对于测试的每个需求来说,至少要有一个正面测试用例和为数较多的负面测试用例。一般至少需要编写以下测试用例:

  ● 结果是否正确

  ● 所有的边界条件是否正确

  ● 强迫异常条件发生

  测试用例间要完全解耦,形成独立的测试。

  不要去测试类中的每个方法。要测试这个类对外所能提供的功能。而且真正执行TDD时,在编写测试用例时,有些类是仍不存在的。

 

 

转自:http://www.51testing.com/html/07/n-240607.html

470°/4708 人阅读/0 条评论 发表评论

登录 后发表评论