欢迎来到天天文库
浏览记录
ID:22557660
大小:51.00 KB
页数:7页
时间:2018-10-30
《测试驱动开发技术在航天领域的应用实践分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、测试驱动开发技术在航天领域的应用实践分析 测试驱动开发技术在航天领域的应用实践分析 测试驱动开发技术在航天领域的应用实践分析 测试驱动开发技术在航天领域的应用实践分析测试驱动开发技术作为软件敏捷开发中的一个重要组成部分,在软件开发实践中得到了广泛的应用。本质上,测试驱动开发技术是一种软件开发技术,而不是一种软件测试技术,它的作用在于通过测试来驱动开发,以提高软件的高内聚、低耦合程度,改善软件设计质量,减少软件代码中的缺陷率,提高软件开发的效率,提升软件产品的质量。 测试驱动开发技术相对于传统的软件开发流程,是一种开发思维上的转变。它
2、是一种基于目标驱动的软件开发思想,与传统的先编写代码再进行调试的开发流程不同,强调在编写产品代码之前先思考作为用户该如何去使用这个功能,先确定如何去用这个目标,并通过测试代码使目标明确可运行,之后再去思考如何实现这个功能,需要开发人员在用户与功能开发者之间不断进行角色切换,多角度思考。先编写测试代码,再编写产品代码,用测试来驱动开发。 测试驱动开发技术是随着敏捷开发技术不断发展应用起来的,敏捷开发除了测试驱动之外,还包括用户故事、结对编程、持续集成等要素。本文不针对测试驱动开发在敏捷开发中的实践,而是将测试驱动开发技术应用于传统的软件开发
3、,与传统的领域开发流程相结合,介绍测试驱动开发技术在领域应用中的实践。 1 测试驱动开发 本节介绍测试驱动开发的概念及测试驱动开发所起到的作用。 1.1 测试驱动开发概念 测试驱动开发技术是由KentBeck于20世纪90年代提出并不断发展起来的,基本方法是编写所有产品代码的目的都是为了使失败的测试能够通过。首先编写一个测试,由于它要运行的功能还不存在,所以它会运行失败。然后,编写产品代码使测试通过。作为结果,一个非常完整的测试用例集就和产品代码一起发展起来。软件重构、领域驱动设计、敏捷软件开发与实践等技术或实践均将测试驱动开发作为
4、一个必要条件和实践原则,它们的一个共同特点是均采用迭代开发思想,在开发过程中不断对已有产品进行精化和完善。软件重构关注改善既有代码的设计,从代码层面不断对软件进行优化,使代码结构更合理、扩展性更好,可理解性更强。领域驱动设计关注领域模型与代码实现的绑定,强调软件各个部分的设计应忠实地反映领域模型,与模型相对应,在开发过程中通过不断的重构与精炼去获得和实现深层次的领域模型。敏捷软件开发与实践将测试驱动开发作为一个基础实践,与其他实践结合形成一个完整的迭代开发流程。 1.2 设计作用 测试驱动开发要求在编写产品代码之前先编写测试,开发人员首
5、先必须站在产品代码使用者的角度去思考应该怎么去使用这个功能,这个功能应该提供哪些接口供测试代码来访问,这种思考方式会促使开发人员先从接口的角度考虑功能模块的设计,促进功能模块的接口设计的正确性与合理性,同时会激发开发人员去解除各个功能模块之间的耦合,这样才能够对各功能模块进行独立的测试,形成高内聚、低耦合的软件设计与实现。从一定程度上说,编程就是设计,测试驱动开发可以实现更好的设计。 1.3 文档作用 测试驱动开发的第二个作用是提供精确的功能模块使用说明文档。随着测试驱动开发过程的不断进行,会建立起一套非常完整的测试用例集,该用例集精确
6、的描述了各个功能模块的使用方法,功能模块的使用者通过测试用例可以准确的查看功能模块的接口及其使用方法,明确功能模块需要的前置条件及执行结果的后置条件,更好的理解模块的功能和作用。从一定程度上说,源代码就是文档,测试代码可以提供更准确、可验证的模块使用说明文档。 1.4 测试作用 测试驱动开发的第三个作用是测试,测试集是随着开发过程不断建立起来的,且均是先编写测试代码,后编写产品代码,通过这套完整的可运行的测试用例集,可以随时对产品代码运行测试用例,对开发过程中运行的所有测试实现可重复的自动化的运行,因此从开发人员角度考虑,可以认为产品代
7、码的正确性与测试用例是否全部通过是等价的。同时开发人员工作是否完成的标志从编译是否正确变成了测试用例是否全部通过。 1.5 基础设施作用 一个优秀的软件架构和软件产品的产生,需要结合应用领域不断的进行实践、重构、优化,包括代码级别的重构、设计模式级别的重构、领域模型的重构及软件架构的重构。对一个软件架构或产品不断进行不同级别的各种重构,势必会对已经可以正常工作的软件代码造成很大的影响,引入各种各样的软件Bug,这也是很多开发人员不愿意或没有勇气对已有软件进行重构或调整的原因。而测试驱动开发技术可以很好的解决这个问题,将测试驱动开发产生的
8、测试代码作为软件产品开发的一个重要组成部分与基础设施,一定程度上,软件的正确性与测试是否全部通过是等价的。在重构的过程中不断进行测试,如果因重构引出问题,测试结果会立刻显示出来,
此文档下载收益归作者所有