不断蔓延的软件测试基础结构的危险[2]

发表于:2010-05-04来源:作者:点击数: 标签:软件测试危险
不断蔓延的软件测试基础结构的危险[2] 软件测试 避免恶性循环 你将如何避免影响?警示符号是什么?技巧在于,在你陷入恶性循环之前控制住你自己。在你实际已经离开很远的时候很难意识到你离开太远了。一个很老的 Bug gs Bunny卡通片说明了这一点。Buggs感到沮

  不断蔓延的软件测试基础结构的危险[2]   软件测试

  避免恶性循环

  你将如何避免影响?警示符号是什么?技巧在于,在你陷入恶性循环之前控制住你自己。在你实际已经离开很远的时候很难意识到你离开太远了。一个很老的Buggs Bunny卡通片说明了这一点。Buggs感到沮丧是因为对于兔子的慷慨比更具破坏性的动物少得多。他决定要通过跨越南北美洲来迂回前进破坏出一条路以便表示慷慨。他的慷慨是1百万美元。后来他发现他正被整个陆军和海军搜寻。正当炮弹在他周围降落,他悔恨,"可能我离开得有一些远了。"

  你可以避免这种命运。这里是三种你需要注意的情况:

  人们把他们的精力倾注在基础结构,而不是测试上面

  正如我们早先所讨论的,做软件工作的乐趣之一就是如果你的想象力无限,你将可以创建出任何复杂的系统。成为软件测试工程师的人们,当他们通常是以破坏东西来拿薪水的时候,对这个警报器的声音是没有免疫力的,并且经常将他们的创造精力倾注在建立复杂的测试基础结构上。(有几分像想当导演的演员。)这将自动成为一个问题吗?不,但当工程师们对于基础结构的情感因素,使他们对它的真实效用和限制失去判断力时,它可能会成为一个问题。

  测试工程师们可能将他们的基础结构,看作所有问题的理想解决方法,但是在某些情况下,它甚至根本就不是一个解决方法。(记住一句古老的说法"当你所拥有的全部就是一把锤子时,任何东西看起来都像一个钉子")。更糟糕的是,他们对于基础结构的巨大投入以及不断地追加,会阻止他们看到他们的基础结构该到停止使用或至少需要重新架构的时候了。他们可能没有记住,他们的基础结构曾经也是新的,并且取代了其它一些工具。

  讽刺的是这个竟然发生在软件测试工程师的身上,因为软件测试的基本原则之一就是测试团队必须独立于软件开发组织,为的是使测试团队保持客观性。一个简单的事实是:你很难客观和严格地对待自己的工作。

  基础结构的维护费用在不断增长

  你是否留意过城市和乡镇是怎样建设新公园的,但只是几年之后,它们便因为失修变得破烂了?城市看起来总是找到一条筹集资金的路来建公园,并且有时以需要正面新闻的人的名字来命名,但他们通常没有资金来维护它们。

  维护:那是软件开发的成本,包括软件测试基础结构开发,这一点每个人都忘了去记住。是什么使一个软件测试基础结构的维护成本的增长超出控制?通常的情况是一个软件程序开始时很小,并且被设计成服务于一个特殊的需要。接着它变成了它自己的一个牺牲品,并被扩展来执行更多的任务。然而,它的基础体系结构并没有被修改,以便来处理这种增长。随着时间的过去,越来越多的用户可见的特性被增加,并且每一个新变化都会导致出现问题;当缺乏一个基础结构时,这些问题可能十分严重,它允许使一个程序变成一个单一的巨大的实体,而不是一个由组件支持的核心。结果,越来越多的人需要修改软件,并测试它,以便保证每一个修改不会使程序变得不稳定。

  投入在基础结构的时间和精力是无关紧要的;它总是缺乏一个你执行当前任务所需要的功能或特性。为什么会出现这种情况呢?可能是因为基础结构尝试成为所有人的一切基础,并且它的维护人员总是尝试扩展它的原始基础结构来符合新的测试要求。

  简单代码和智能数据的开源社区模型通常被认为是设计和创建一个程序的一个非常有效的方法。一个经常扩展的,单片的程序与这个模型正好相反,它可能是维护人员的一个梦魇。

  使用测试基础结构,高维护成本的一个征兆是建立一支"工具团队"来维护基础结构。这个工具团队是独立于软件测试团队的,而软件测试团队是工具的实际使用者。我已经在多元化公司见到了这个模型,但我一直没有看见它们很好地工作。测试团队和工具团队不可避免地要在工具的成本和时间消耗上产生分歧。为什么?就是因为创建工具的人不用工具完成他们的工作。我认为一个模型在所有,或至少是许多创建和维护测试工具的软件测试工程师那儿,会工作得更好。这个模型可以追随开源社区模型,在开源社区模型中工具使用者(或是"消费者")可以直接对工具的创建和维护作出贡献。

原文转自:http://www.ltesting.net