测试驱动开发之可执行的文档

发表于:2009-12-02 14:08

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Nick Wang(cnblogs)    来源:51Testing软件测试网采编

  TDD已经发展多年,然而却仍未能普遍成为日常开发的实践之一,很多人在尝试使用TDD时遭遇了困难,并对TDD心存疑惑。我并非TDD方面的权威或专家,但希望能将我的经验和感想记录下来,希望能对某些仍对TDD有所困惑的人有所帮助,同时也希望能够听到不同的声音,共同交流与讨论。

  本教程不是工具的使用教程,也不是TDD入门知识普及教程,因此这里不会告诉你TDD是什么,TDD的工具如何使用。关于TDD的基本概念和工具的使用,已经有很多文档可以参考,请自行学习

  测试驱动开发之可执行的文档

  “编写单元测试更多是一种设计行为、文档行为而不是单纯的验证行为。 编写单元测试缩短了很多反馈周期;其中至少缩短了功能的验证周期。”   - Robert C. Martin

  对于TDD的验证功能(测试功能)大家都不陌生,也很好理解,可是对于TDD的文档功能却有很多人不了解。

  项目中的文档可以分很多种,例如需求文档、设计文档、用户手册、维护手册等等。这些文档可能是打印出来的,也可能以电子形式存在,而其内容可能是文字、图表、图形甚至是视频。今天我们讨论的文档偏向于设计文档,其他文档并不涉及。

  设计文档一般有两种用途,在程序开发出来之前,设计文档用于指导编码,而在编码之后,设计文档用于帮助理解代码。MSDN中的类库参考也是一种设计文档(同时也是帮助文档),它描述了类库的使用方式和它们之间的联系,更重要的是其中有很多的例子可以帮我们理解如何使用这些类库。那么这和TDD有什么关系呢?

  我们先看一个例子:

public void twelve_inches_should_equal_to_one_foot()
{
Inch twelveInches 
= new Inch(12);
Foot oneFoot 
= new Foot(1);

Assert.AreEqual(twelveInches, oneFoot);
}

public void one_foot_plus_two_inches_should_equal_to_fourteen_inches()
{
Foot oneFoot 
= new Foot(1);
Inch twoInches 
= new Inch(2);
Inch fourteenInches 
= new Inch(14);

Assert.AreEqual(oneFoot.Plus(twoInches), fourteenInches);
}

  可以看到,TDD的测试用例实际上也是一个个使用这些类和函数的例子,测试函数的名称就是测试所要表达的意图,测试代码就是实现这种意图的方式。你可以从测试代码中得到以下信息:这个函数或类能干什么,约束条件是什么,何时会引发异常,合理的输入范围是什么,对应于输入的输出是什么,如何调用这些API等等。
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号