`

Test-Driven Development(测试驱动开发)

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

  优势:

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

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

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

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

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

  过程:

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

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

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

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

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

  5) 测试通过。

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

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

  TDD的原则:

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

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

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

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

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

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

  测试技术:

  怎么编写测试用例

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

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

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

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

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

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

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

    * 职责转变 - 某些开发人员认为,他的工作就是实现功能,写代码;测试只是测试人员的事情,不在他的职责范围内。这是错误的认识,完备高质量的单元测试也是开发人员的职责!

    * 思维转变 - 很多开发人员拿到需求后,喜欢立刻就埋头开始写代码实现。TDD要求测试为先,开发人员首先要思考的不再是功能如何实现,而是应该如何去进行验证,并列出需要的测试场景。这是一个大的逆向思维转变。

    * 需求分析能力 - TDD比传统的编程方法需要开发人员具备更强的需求分析能力,要求开发人员对业务有跟深入的理解。
0
1
分享到:
评论

相关推荐

    Practical Test-Driven Development using C# 7.epub

    Test-Driven Development (TDD) is a methodology that helps you to write as little as code as possible to satisfy software requirements, ...测试驱动开发使用C#7 和 TypeScript的epub版,比转换的PDF排版更好。

    Test-Driven Development with Python 【第二版】

    Test-Driven Development with Python, 2nd Edition English | 2017 | ISBN-10: 1491958707 | 592 pages | PDF,MOBI,EPUB (conv) | 8.59 Mb By taking you through the development of a real web application from...

    测试驱动开发 Test-Driven Development

    Test-driven development replies to this contradiction with a paradox-test the program before you write it. A new idea? Not at all. Since the dawn of computing, programmers have been specifying the ...

    Test-Driven+Development+By+Example-测试驱动开发【高清+有目录+可搜索+可编辑】

    第25 章测试驱动开发模式会....................…........... 吻.....……..... ……....... 诊....………………………......... 97 测试(名词)暹.雪.... 雪......................….............................

    测试驱动开发Test-Driven+Development+By+Example(中英文)

    测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前先编写测试用例。这种做法旨在提高代码质量、可维护性和减少缺陷。《Test-Driven Development By Example》是一本由...

    测试驱动的Java开发(Test-Driven Java Development)-2015年英文原版,0积分

    **测试驱动开发(Test-Driven Development)**是一种软件开发方法论,它强调在编写实际代码之前先编写测试用例。这种做法有助于确保代码的质量,并促进了更加模块化的设计。TDD的核心理念包括: 1. **红绿重构(Red-...

    Test-Driven Java Development

    针对Java语言,结合实例介绍测试驱动开发的方法。英文原版。 Test-driven development (TDD) is a development approach that relies on a test-first procedure that emphasises writing a test before writing the...

    Test-Driven Development: A Practical Guide

    **测试驱动开发(Test-Driven Development,TDD):实践指南** 测试驱动开发是一种软件开发方法,由Kent Beck在2003年提出并推广,它强调先编写测试,然后编写满足这些测试的代码。TDD的核心原则是“测试先行”,即...

    Test-Driven Development by Example.rar

    《测试驱动开发实战》这本书是Kent Beck的经典之作,它详细阐述了Test-Driven Development(TDD)的概念、方法和实践。TDD是一种软件开发过程,其中编写测试代码在编写实际功能代码之前进行,以确保软件的高质量和可...

    Modern C++ Programming with Test-Driven Development

    全书共11 章,涵盖测试驱动开发的基本工作方式、潜在好处、怎样利用测试驱动开发解决设计缺陷、测试驱动开发的难点和成本、怎样利用测试驱动开发减少甚至免除调试工作,以及如何长时间维持测试驱动开发。

    使用Python进行测试驱动的开发Test-Driven Development with Python

    本动手指南通过从头到尾地指导您开发真实的Web应用程序,展示了使用Python进行测试驱动的开发(TDD)的实际优势。

    Test-Driven Development By Example

    非常经典的一本书:通过实例学习测试驱动开发。 作者:Kent Beck

    TDD(Test-Driven Development)的Demo

    TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD得原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法...

Global site tag (gtag.js) - Google Analytics