- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
勿以恶小而为之,勿以善小而不为。——刘备
测试驱动开发技术在航天领域的应用实践
分析-
测试驱动开发技术作为软件敏捷开发中的一个重要组成部
分,在软件开发实践中得到了广泛的应用。本质上,测试驱动开
发技术是一种软件开发技术,而不是一种软件测试技术,它的作用
在于通过测试来驱动开发,以提高软件的高内聚、低耦合程度,改
善软件设计质量,减少软件代码中的缺陷率,提高软件开发的效
率,提升软件产品的质量。ﻪﻭ测试驱动开发技术相对于传统的软件
开发流程,是一种开发思维上的转变。它是一种基于目标驱动的
软件开发思想,与传统的先编写代码再进行调试的开发流程不
同,强调在编写产品代码之前先思考作为用户该如何去使用这个
功能,先确定如何去用这个目标,并通过测试代码使目标明确可
运行,之后再去思考如何实现这个功能,需要开发人员在用户与
功能开发者之间不断进行角色切换,多角度思考。先编写测试代
码,再编写产品代码,用测试来驱动开发。
ﻪ测试驱动开发技术是随着敏捷开发技术不断发展应用起来
的,敏捷开发除了测试驱动之外,还包括用户故事、结对编程、
持续集成等要素。本文不针对测试驱动开发在敏捷开发中的实践,
而是将测试驱动开发技术应用于传统的软件开发,与传统的领域
开发流程相结合,介绍测试驱动开发技术在领域应用中的实践。1ﻭ
测试驱动开发ﻭ本节介绍测试驱动开发的概念及测试驱动开发所
起到的作用。
ﻪ1.1测试驱动开发概念ﻭ测试驱动开发技术是由KentBeck
于20世纪90年代提出并不断发展起来的,基本方法是编写所有
勿以恶小而为之,勿以善小而不为。——刘备
产品代码的目的都是为了使失败的测试能够通过。首先编写一个
测试,由于它要运行的功能还不存在,所以它会运行失败。然后,
编写产品代码使测试通过。作为结果,一个非常完整的测试用例
集就和产品代码一起发展起来。软件重构、领域驱动设计、敏捷
软件开发与实践等技术或实践均将测试驱动开发作为一个必要
条件和实践原则,它们的一个共同特点是均采用迭代开发思想,在
开发过程中不断对已有产品进行精化和完善。软件重构关注改善
既有代码的设计,从代码层面不断对软件进行优化,使代码结构
更合理、扩展性更好,可理解性更强。领域驱动设计关注领域模
型与代码实现的绑定,强调软件各个部分的设计应忠实地反映领
域模型,与模型相对应,在开发过程中通过不断的重构与精炼去
获得和实现深层次的领域模型。敏捷软件开发与实践将测试驱动
开发作为一个基础实践,与其他实践结合形成一个完整的迭代开
发流程。1.2ﻭ设计作用ﻪﻭ测试驱动开发要求在编写产品代码之前
先编写测试,开发人员首先必须站在产品代码使用者的角度去思
考应该怎么去使用这个功能,这个功能应该提供哪些接口供测试
代码来访问,这种思考方式会促使开发人员先从接口的角度考虑
功能模块的设计,促进功能模块的接口设计的正确性与合理性,
同时会激发开发人员去解除各个功能模块之间的耦合,这样才能
够对各功能模块进行独立的测试,形成高内聚、低耦合的软件设
计与实现。从一定程度上说,编程就是设计,测试驱动开发可以
实现更好的设计。
1.3文档作用ﻭ测试驱动开发的第二个作用是提供精确的功
能模块使用说明文档。随着测试驱动开发过程的不断进行,会建
立起一套非常完整的测试用例集,该用例集精确的描述了各个功
能模块的使用方法,功能模块的使用者通过测试用例可以准确的
勿以恶小而为之,勿以善小而不为。——刘备
文档评论(0)