18
次編輯
變更
测试驱动开发
,無編輯摘要
'''测试驱动开发'''(英语:Test-driven development,缩写为TDD)是一种软件开发过程中的应用方法,由[[极限编程]](Extrame Programming)中倡导,以其倡导先写测试程序,然后编码实现其功能得名。 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。测试测试驱动开发始于20世纪90年代。测试驱动开发的目的是取得快速反馈并使用“illustrate the main line”方法来构建程序。 测试驱动开发的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD是 XP(Extreme Programming)的核心实践。它的主要推动者是 Kent Beck。[[File:TDD process with ft and unit test.png|缩略图|右|TDD process with functional test and unit test <ref> {{Cite book | author = Harry J.W. Percival | title = Test-Driven Development with Python Second Edition, | location = 美国 | publisher = O'Reilly Media, Inc. | date = August, 2017 | ISBN = 978-1-491-95870-4 | language = 英文 }} </ref> ]] ==什么是测试驱动开发==测试驱动开发是戴两顶帽子思考的开发方式:先戴上实现功能的帽子,在测试的辅助下,快速实现其功能;再戴上重构的帽子,在测试的保护下,通过去除冗余的代码,提高代码质量。测试驱动着整个开发过程:首先,驱动代码的设计和功能的实现;其后,驱动代码的再设计和重构。 测试驱动开发有广义和狭义之分,常说的是狭义的 TDD,也就是 [[UTDD]](Unit Test Driven Development)。广义的 TDD 是 [[ATDD]](Acceptance Test Driven Development),包括 [[BDD]](Behavior Driven Development)和 Consumer-Driven Contracts Development 等。 本文所说的测试驱动开发(TDD)指狭义上的 TDD,也就是「单元测试驱动开发」。==为什么需要测试驱动开发== ===传统编码方式===盖房子的时候,一个新手或菜鸟级的小师傅,却可能不知道拉线,而是直接把砖往上垒,垒了一些之后再看是否笔直,这时候可能会用一根线,量一下砌好的墙是否笔直,如果不直再进行校正,敲敲打打。 ===测试驱动编码方式===工人师傅砌墙,会先用桩子拉上线,以使砖能够垒的笔直,因为垒砖的时候都是以这根线为基准的。测试驱动编码的方式就像老师傅砌墙,先写测试代码,就像工人师傅先用桩子拉上线,然后编码的时候以此为基准,只编写符合这个测试的功能代码。 ==测试驱动开发的主要环节==测试驱动开发主要有一下几个环节<ref> {{Cite book | author = Kant Beck | title = Test-Driven Development By Example | location = 美国 | publisher = Addison Wesley | date = November 08, 2002 | ISBN = 0-321-14653-0 | language = 英文 }} </ref># 添加一个测试# 运行所有的测试并查看是否有新的测试失败# 编写功能代码# 再次运行测试# 重构代码 ==参考文献=={{reflist}}
[[Category:300_科学类]]
[[Category:310_数学总论]]
[[Category:312_电脑科学]]