关闭

TDD 测试驱动开发

发表于:2009-8-18 12:04

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

 作者:MyNameSky    来源:Javaeye博客

  TDD的基本思路 是通过测试来推动整个开发的进行。

  优势:

  1.通过编写测试用例 可以确保对需求描述的无二意(无歧义)

  2.编写测试用例  也是一种代码设计的过程

  3.测试用例是对代码的最好的解释

  4.测试驱动开发提供的测试集就可以作为你编码信心的来源

  5.测试用例可以保障代码的正确性,能够迅速发现、定位bug

  过程:

  测试驱动开发的基本过程如下:

  1) 明确当前要完成的功能。可以记录成一个 TODO 列表。

  2) 快速完成针对此功能的测试用例编写。

  3) 测试代码编译不通过。

  4) 编写对应的功能代码。

  5) 测试通过。

  6) 对代码进行重构,并保证测试通过。

  7) 循环完成所有功能的开发。

  TDD的原则:

  1) 测试隔离。不同代码的测试应该相互隔离。对一块代码的测试只考虑此代码的测试,不要考虑其实现细节(比如它使用了其他类的边界条件)。

  2) 测试列表。需要测试的功能点很多。应该在任何阶段想添加功能需求问题时,把相关功能点加到测试列表中,然后继续手头工作

  3) 先写断言。测试代码编写时,应该首先编写对功能代码的判断用的断言语句,然后编写相应的辅助语句。

  4) 可测试性。功能代码设计、开发时应该具有较强的可测试性。其实遵循比较好的设计原则的代码都具备较好的测试性。

  5) 及时重构。无论是功能代码还是测试代码,对结构不合理,重复的代码等情况,在测试通过后,及时进行重构.

  6) 小步前进。软件开发是个复杂性非常高的工作,开发过程中要考虑很多东西,包括代码的正确性、可扩展性、性能等等,很多问题都是因为复杂性太大导致的。

  测试技术

  怎么编写测试用例

  测试用例的编写就用上了传统的测试技术。

  * 操作过程尽量模拟正常使用的过程。

  * 全面的测试用例应该尽量做到分支覆盖,核心代码尽量做到路径覆盖。

  * 测试数据尽量包括:真实数据、边界数据。

  * 测试语句和测试数据应该尽量简单,容易理解。

  * 为了避免对其他代码过多的依赖,可以实现简单的桩函数或桩类(Mock Object)。

  * 如果内部状态非常复杂或者应该判断流程而不是状态,可以通过记录日志字符串的方式进行验证。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号