测试驱动开发研究.docVIP

  • 15
  • 0
  • 约6.17千字
  • 约 6页
  • 2021-04-09 发布于广东
  • 举报
测试驱动开发研究 【内容提要】结合目前软件开发过程存在缺陷,充分借鉴极限编程思想,积极倡导应 用测试驱动开发方法。本文分别从测试驱动开发概念、测试驱动开发优点、测试驱动开发实 现筹方而分别进行了阐述。最后结合实例描述了在软件开发过程中如何应用测试驱动方法和 理念。 【关键词】 测试驱动开发测试用例 重构 测试 引言 软件工程是计算机学科中一个十分重要的研究领域。口 20世纪60年代以來,人们在这一领 域做了人量的工作,逐渐形成了系统的软件开发理论、技术和方法,它们在软件开发实践中 发挥了重要作用。传统软件开发流程图: 然而,随着软件规模的不断扩人和软件复杂性的不断提髙,传统的软件开发方法已逐渐不能 适应当代软件开发的需要,正是在这种背景下提出的一种全新的软件开发方法——测试驱动 开发。 一、 测试驱动开发定义 测试驱动开发(Test Driven Development,英文缩写TDD)是极限编程的一个重要组成部 分,它的基本思想就是在开发功能代码Z前,先编写测试代码。它以不断地测试推动代码的 开发,既简化了代码,又保证了软件质量。也就是说在明确要开发某个功能后,首先思考如 何对这个功能进行测试,并完成测试代码的编写,然后编写相关的代码满足这些测试用例。 然后循环进行添加其他功能,直到完成全部功能的开发。代码整洁可用是测试驱动开发所追 求的目标。这种方法在实际中能够起到非常好的效果,使得测试工作成为设计的一部分,很 好地把开发和测试融合为一个整体。 二、 测试如何驱动开发过程 在编写程序之前,每个人都会先进行设计的T作。可能有些人的设计比较正式,绘制模 型,编写文档。有些人的设计只是存在于脑海之屮。且不论是设计是精细还是粗糙,你都为 随后的编码活动制定了一个标准。这个标准的明确程度和你的设计的细致程度有关。但应该 承认,这个标准是不够细化的。因为你的设计不可能精细到代码级的程度。而标准不够明确 的则会产生一些问题,例如,在编写代码的过程屮,伤〈还可能会发现原先的设计出现问题, 从而中途改变代码的编写思路。这将会导致成果难以检验,进度难以度量。 既然以设计为导向的标准不够明确,不够具体。那什么样的标准才是合适的呢?只能是 代码。因为代码是最明确、最具体的。所以测试优先的本质其实是忖标竹理。编写测试代码 其实是在制定一个小目标。这个小tJ标非常的明确,它规定了你需要设计的类、方法。以及 方法需要满足的结果。这些日标制定完成Z后,你才开始编写代码来达成该1=1标。测试的1=1 标要比设计的目标粒度更小,但是成本上却更为经济。测试优先是软件开发中一种细粒度的 目标管理方法,通过明确的目标,推动软件开发的进行。 测试驱动开发改变了编码的过程,并且这种改变不仅是可能的,同时也是值得去做的。 开发包括三方而的活动:编写测试用例,编码并进行测试,重构代码以消除重复代码使其更 简单、更灵活、更容易理解。这个过程会频繁地重复,每次进行测试均是为了保证产品的止 确性。设计、编码和测试三者Z间的鸿沟将不再存在,这样可以促进你对整个环境更好地理 解。因此,设计和编码将随着项kl的成熟逐步得到改善而非降低。测试驱动开发实现流程图: 大多数设计都是从上|佃卜创建,并基于对观察的特性进行分类,促进对问题的理解和解 决。换句话说,我们试图创建层次结构的对象,它模型化了问题域。相反,TDD则是从下 而上,通过对一些小问题,依次实施一系列简单的解决方案,最后演进为设计。 重构确保了设计集中于一个好的解决方案而不是逐渐脱离设计。如果你认为这是设计Z 根本,你就对了。TDD将在这十年潜在地改变软件开发的方法,就像过去十年面向对彖技 术所做到的那样。 三、 测试驱动开发优点 项H进度可预测。而传统的方式很难知道什么时候编码工作结束。 大部分时间代码处在高质量状态,100%的时间里成果是可见的。 全面止确的认识代码和利用代码,而传统的方式没有这个机会。 为利用你成果的人提供Sample,无论它是要利用你的源代码,述是氏接重用你提供的组 件。 开发小组间降低了交流成本,提高了相互信赖程度。 系统可以与详尽的测试集一起发布,从而对程序的将來版本的修改和扩展提供方便。 rh于可以保证编写测试和编写代码的是和同的程序员,降低了理解代码所花费的成本。 为减少文档和代码之间存在的细微的差别和山这种差别所引入的Bug作岀杰岀贡献。 在预先设计和紧急设计之间建立一种平衡点,为你区分哪些设计该事先做、哪些设计该 迭代时做提供了一个可靠的判断依据。 发现比传统测试方式更多的Bugo 使IDE的调试功能失去意义,避免了令人头痛的调试和节约了调试的时间。 四、 测试驱动开发步骤 编写测试用例 实现测试用例 步骤: 新增测试用例(TestCase)。 编译代码,新增的测试用例很可能编译不通过。 做

文档评论(0)

1亿VIP精品文档

相关文档