?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

最新长沙麻将下载:龙八国际手机版登录:以设计求质量启用经济高效的全面单元测试

?

长沙转转麻将必胜口诀 www.fv7j.com.cn 小序

周全单元测试是包管软件开拓历程质量的关键策略,但迄今为止并没有为人们广泛吸收。本文考核了阴碍周全单元测试的"拦路石",并先容了来自 IBM Rationa龙八国际手机版登录l 软件公司旨在降服这些拦路石的新技巧。

去年春天,我的一位同事获悉他的汽车因为某些部件的缺陷,正在被召回。事实证实,这对他来说仅仅是轻细不便。他把车开到经销商那里,人家免费为他替换了出缺陷的部件,不到几个小时,他就拿回了车。除了在经销商那里挥霍了几个小时的事情光阴之外,他并没有受到什么丧掉。但从汽车制造商的角度讲,问题要严重得多。此次召回涉及到的车主有 16500 人之多,给制造商造成的丧掉跨越 1.14 亿美元。这真是一笔不小的用度!

由此不可贵出结论,只要制造商能在产品临盆的早期发明部件的缺陷,就能节省一大年夜笔用度。即就是在所有的汽车都已经装置好但还没有交付的时刻发明缺陷,节省的用度也是很可不雅的。别的还可以避免因为客户的相信度受损和同业的恶意进击而造成的为难场所场面。我们不妨设想一下,假如制造商能在设计图纸时就发明这一缺陷,那他们节省的用度又该有若干呢?

以设计求质量及周全单元测试

以设计求质量的产品临盆措施包括一系列的策略、历程和实践,借助于它们,在开拓历程的早期就能够满意质量要求。这种措施既不是新闹事物,也不是无的放矢。比如,这种措施曾被用于制造波音 777 飞机。这种飞机的跨越 90% 的测试都是根据谋略机设计模型来完成的。在组装第一架飞机之前,实际上只造了一个样机,这样一来,就节省了几百万美元。

Steve McConnell 在他 1龙八国际手机版登录997 年出版的《软件项目生计指南》(Software Project Survival Guide)一书中验证了以设计示质量措施:在编码曩昔修复缺陷比在产品交付时或交付后要少花 50-200 倍的价值。这是个发人深省的数字且在业界引起了广泛的留意。然而,并不是所有的人都遵照以设计求质量的措施,而且事实上多年以来我们不停没有这样做,这究竟是为什么呢?这些问题很繁杂--以设计求质量是一个涉及范围很广的话题,根本弗成能在短短一篇文章之中将它评论争论清楚。但我们可以经由过程探究软件开拓相关的以设计求质量的一个方面,即周全的组件测试,作为一个"拍门砖"来理解该措施,以及为什么采纳该措施会有如斯伟大年夜的阻力。

为周全单元测试扫清障碍

只管所有的软件开拓职员都承认周全单元测试会带来极大年夜利益,但实际上周全单元测试远远没有获得遍及,尤其是对付中心层组件测试和缺少图形用户界面的组件测试。为何会呈现这种环境呢?由于这些事情既费时又乏味。在以前,降服这些障碍常常是得不偿掉。一个主要的问题在于,大年夜多半测试是为特定组件而量身订做的,重用更是时机渺茫。因为开拓团队的光阴压力很大年夜,是以他们为了赶进度而不得不将精力集中在开拓利用法度榜样本身上。平日,开拓职员觉得,对付每个项目假如都从头构建测试对象和存根,项目停止后再"扔掉落"它们。这个历程是一种挥霍。以是,他们宁愿将有限的资本都用在编写组件代码上面,而不是花在测试上面。

所幸的是,现在我们终于可以开脱这项困扰。IBM Rational 刚刚引进了一种新技巧,使我们能够进行经济高效的周全组件测试。IBM Rational 公司不停致力于为软件开拓职员供给各类对象,以赞助他们在更短的光阴内交付高质量的软件产品,Rational QualityArchitect 恰是此中的一部分。Rational QualityArchitect 经由过程使用能够自动天生测试代码的可视模型,简化了组件测试??刂霸笨梢约芯创唇ㄋ璧牟馐杂美?,而不用花费光阴来编写轻易掉足并且弗成重用的测试代码。

没龙八国际手机版登录有 Rational QualityArchitect 的组件测试

为了更好的理解为何这一新产品会使周全组件测试加倍轻易实现,让我们先来看一看没有 Rational QualityArchitect 的组件测试将面临哪些寻衅。

图 1 所示为四个未经测试的组件。假设现在组件 B 已经可以测试了,而其他的组件(A、C 和 D)还没有筹备好测试,纵然筹备好了,它们之中可能包孕一些缺陷,影响测试结果,并且使探求组件B中的差错加倍艰苦。因为这些缘故原由,开拓职员平日会编写他们自己的测试驱动法度榜样和存根,而事后就将它们"扔掉落"。

图 1:用于测试的四个组件

现在来斟酌一下开拓测试驱动法度榜样的繁杂度。一个模拟组件 A 行径的的测试驱动法度榜样必须驱动组件 B、对其进行调用、供给一组输入,以及记录组件B的相应。同时,组件 B 所依附的组件 C 和组件 D 的所有功能必须由存根来供给,并且根据组件B的不合输入,它们必须返回精确的结果。这听起来像一种繁杂的"字母汤"烹饪法,难道不是吗?

别的,纵然是在完成对单个组件的测试之后,仍旧要应对许多寻衅。在场景测试傍边,为了测试一个给定序列的调用,必须将两个或更多的组件进行同时测试。假如客户端软件还没有完成,开拓职员就必须花光阴来创建一个模拟的客户端以驱动特定的场景。根据一些软件开拓团队的申报,他们为了创建这些测试对象所花费的光阴盘踞总开拓光阴的一半以上,而这些测试对象险些不具有重用性。

具有 Rational QualityArchitect 的组件测试

Rational QualityArchitect 为我们供给了开启经济高效的周全单元测试之门的钥匙:它充分使用了软件开拓职员在开拓历程的早期创建工件(即可视模型),来天生测试对象??刂霸笨梢杂肐BM Rational Rose孕育发生可视化的模型,一旦开拓职员知道各个组件所必须履行的行径,他们就可以在一个模型之中将该行径记录下来。因为这些模型是用来为组件自动天生代码的,以是在这个意义上,开拓职员能够应用 IBM Rational Rose 来天生的可视模型显得功能分外强大年夜。这也恰是 Rational QualityArchitect 作为Rational Rose Enterprise 包中的一个组件的缘故原由。

对付单元测试来说,开拓职员必须完成以下三个目标:

测试单个的软件组件的单个措施。

依次测试多个组件中的多个措施。

为不完备或未完成的组件天生存根,以使一个组件的测试不依附于其他组件的存在。

这三种测试中的每一种又由两部分组成:

驱动测试历程的测试对象或框架代码

测试用例数据

这便是必要做的整个事情。是不是很简单?为了阐述更详细一点,让我们来看一个例子。假设我要测试一个 Enterprise JavaBean(EJB)组件。我必要做两项事情:

首先,创建所有要连接到办事器(EJB 就驻留在此中)的测试代码(A),然后实例化 bean,调用 bean 的操作并验证返回的结果。

接下来,创建用来调用单个操作的测试数据(B)。

虽然创建测试数据很具寻衅龙八国际手机版登录性,但实际上创建测试代码加倍费时,且很逝世板。

记着,可视模型中已经包孕了创建测试代码所需的整个信息??墒幽P桶辛俗榧捌洳僮鞯牟季置枋?,还有操作的参数及返回的值类型。在设计阶段或在基于现有组件的逆向工程阶段,可视模型是由阐发师创建照样由开拓职员创建并不紧张。创建测试框架代码所需的整个输入已经"各就各位"。

这时该轮到 Rational QualityArchitect 接收我的事情了。经由过程阐发可视模型中给出的组件布局,Rational QualityArchitect 可以天生测试单个组件或涉及到多个组件的一系列操作所需的整个代码。QualityArchitect 以致可以在真正的组件被支配之前天生存根组件作为占位符来运行。

测试代码只是办理规划的一半。我还必要测试数据。这里,QualityArchitect 使开拓职员的事情轻易得多。因为不必再为创建测试代码的繁琐历程所困扰,我可以将留意力集中在创建我们感兴趣的和故意义的测试数据上。QualityArchitect 以致可以在不必要特殊的测试用例时,赞助天生随机的测试数据。当必要特定的测试数据时,QualityArchitect 可以供给一个简单的像电子数据表一样的界面来输入数据。

节省资源,节省光阴,没有返工

在没有 Rational QualityArchitect 时,周全单元测试历程中的早期测试是那样的费时和低效,乃至于很多公司都放弃了这项事情,只管它的代价是显而易见的。有了 Rational QualityArchitect,使我们能够进行早期测试,由于 QualityArchitect 自动天生了测试对象和存根--且跟着模型在开拓历程傍边的赓续演进,测试对象和存根的天生也不是一次性的而是增量式的。对一个从事单元测试事情的开拓职员来说,Rational QualityArchitect 实际上打消了创建一次性的测试代码的耗时耗力事情,现在所要做的只是向一个电子数据表中输入数据这样简单的事情。

更紧张的是,在开拓历程的最早几个阶段,所有这些测试都是在可视化模型以外完成的。经由过程使用用于测试操作的现有资产,Rational QualityArchitect 使得软件开拓团队能够采纳以设计求质量的措施,而又不占用过多的软件根基开拓光阴。

只管在软件业中召回事故不常发生,但存在缺陷的软件系统与存在缺陷的汽车一样具有破坏性,其所造成的后果可能比后者加倍严重。在软件项目中采纳以设计求质量的措施,这一目标值得我们为之奋斗。早期的测试可能为一个汽车制造商节省 1.14 亿美元,它也会为软件系统龙八国际手机版登录开拓公司带来类似的资源节省。波音公司已经证明可以使用谋略机设计来安然地测试全部飞机。Rational QualityArchitect 确保您能够在繁杂的软件系统中实现同样的目标。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: