TDD与VTDD系列(五):提升产能1/3的开发方法:VTDD(概述)

前端之家收集整理的这篇文章主要介绍了TDD与VTDD系列(五):提升产能1/3的开发方法: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%,更重要的是,产出的是经过充分测试的代码,可以避免代码质量不可控造成的开发周期不可控,大幅缩短使产品稳定下来的时间。总的来说,引入VTDD,不但保证代码质量,而且,项目所耗费的人月可以减少大约30-50%,缩短开发周期,在“快鱼吃慢鱼”的市场竞争中赢得先机。

原文链接:/javaschema/287533.html

猜你在找的设计模式相关文章