- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VTDD可视化测试驱动开发
VTDD(可视化测试驱动开发)
技术白皮书
广州凯乐软件技术公司
2010年6月内容介绍
如果您的项目面临这些问题:开发费用和进度失控、可靠性差、难以维护;如果您期望改进开发过程,改变被动现状,但一直很忙顾不上,请考虑使用VTDD。
TDD(Test-Driven Development,测试驱动开发),具有明确需求、明确设计、测试即文档、代码质量可控、提高开发效率等优点,但也具有资源利用不充分、自动化程度低、干扰编程思维等缺点。
VTDD(Visual TDD),可视化的TDD,是TDD的改进和升级。VTDD继承了TDD的优点,克服了TDD的缺点。
VTDD的改进可归纳为“三化”:可视化、自动化、现实化。可视化:开发过程中,程序行为可视。自动化:由工具自动完成隔离补齐、测试代码生成、数据表格化、底层模拟、覆盖统计、协助找出遗漏数据等工作。现实化:VTDD分为三级,其中,第一级(VTDD1)基于现有流程、可在项目周期的任意时段引入,且不影响进度。
企业项目普遍周期紧张,顾不上流程改进,想等“有空”时再说。然而代码质量不可控,正是开发周期不可控的主因,当前项目延期,又会造成下一个项目更紧张,总是“没空”。TDD的一个重要优势是易于引入,不影响当前项目的编码进度,并大幅缩短使产品稳定下来的时间,减少总的周期,缓解总是很紧张的局面,特别适合于总是“没空”的企业。
本白皮书介绍VTDD基本概念和特性,并演示VTDD过程,提出相关工具要求,指出VTDD实施策略,最后介绍实施VTDD的几点建议。VTDD概述
TDD(Test-Driven Development,测试驱动开发),是一种具有突出优点的软件开发、设计和测试方法。TDD的基本思路是测试先行,通过测试来推动开发的进行。TDD的重要目的不仅在于通过测试使产出的代码质量可控,还在于在开发过程中帮助程序员去除模棱两可的需求。
TDD具有明确需求、明确设计、测试即文档、代码质量可控、提高开发效率等优点,但也具有不可忽视的缺点:
自动化程度低:编写测试代码的时间,大致相当于开发产品代码的时间。对于大型项目的并行开发,还面临隔离、补齐、内部输入等问题,人工解决这些隐含问题的时间,往往不少于编写一般测试代码的时间。
资源利用不充分:单元测试的输出可以完整描述程序的行为,这是一种宝贵资源,TDD忽略了这一点。程序行为就是在什么输入下,会执行哪些代码,会产生什么输出。如果程序行为一目了然,测试对于开发的驱动效益将翻倍。
干扰编程思维:灵感、创意、思路是脆弱、易失的,编程工作需要连贯的专注。TDD过程中,测试所耗费的时间往往是开发时间的一至两倍,且与编写产品代码交替进行,难免影响编程思维的连贯性。干扰思维可能会造成程序员本能的抵制,使TDD难于推广、难于长期坚持。
VTDD(Visual TDD),即可视化的TDD,是TDD的改进和升级。VTDD继承了TDD的优点,克服了TDD的缺点。改进可归纳为“三化”:可视化、自动化、现实化。
可视化:开发过程中,程序行为可视。可视化降低编程劳动强度,并大幅提升编码效率,中等复杂度的函数,编写效率提高一倍以上,复杂度越高,效率提升比例越大。
自动化:由工具自动完成隔离补齐、测试代码生成、数据表格化、底层模拟、覆盖统计、协助找出遗漏数据等工作。人的工作主要在于:在数据表格中列出程序功能点,这是明确需求、明确设计、促进开发的过程。测试时间成本趋向于零。
现实化:VTDD分为VTDD1(自然级)、VTDD2(重构级)、VTDD3(敏捷级)。自然级基于现有流程、可在项目周期的任意时段引入,且不影响进度。此后可逐步提升到重构级和敏捷级,进一步改进开发流程,“先固化,再优化”。
您的项目是否面临这些问题:开发费用和进度失控、可靠性差、难以维护?如果您期望改进开发过程,改变被动现状,请不要等待,立即引入VTDD。项目越紧张,越需要尽快改进开发方法。等“有空”时再改进是不现实的。代码质量不可控,正是开发周期不可控的主因,拖延下去,只会使问题累积。当前项目的延期,会造成下一个项目更紧张,更不会“有空”。请您想一想,去年这个时候紧不紧张?前年呢?什么时候轻松过?如果不做出改变,明年这个时候,后年这个时候,一样还会很紧张,恐怕永远等不来“有空”。项目周期越紧张,越需要让新产出的代码质量可控,这样才能换来进度可控,项目才有可能按计划完成。只有行动,立即行动,才可能换来宽松和从容。
但是,“先顾眼前”,也是不得已的选择。VTDD既不影响眼前,效果也立竿见影。假如一个项目,编码周期为四个月,在第二个月引入VTDD1,当月进度不减,此后两个月,进度可以加快大约15-30%,更重要的是,产出的是经过充分测试的代码,可以避免代码质量不可控造成的开发周期不可控,大幅缩短使产品稳定下来的时间
文档评论(0)