贯穿项目生命周期利用自动化测试保证软件开发的质量

发表于:2009-1-05 16:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:申震杰    来源:IBM

  在 Agile 开发过程中采用测试驱动开发作为指导原则

  ClearQuest 的开发采用了 Agile 开发方法③。测试驱动开发 (Test Driven Development)④ 是 Agile 开发过程中的一个核心思想,而自动化测试又是做到测试驱动开发的一个基本条件。有了自动化测试的框架,才能保证测试代码和源代码同时开发,做到测试驱动。

  由于 Agile 开发本身具有开发迭代周期短,每个迭代的成果都是可使用的特点,这就要求做到如下几点:

  ● 保证所做的开发工作没有偏离用户需求

  ● 在有限的时间内,充分利用有效资源,保证代码质量

  ● 每个迭代中所提交的成果都是后期可用的,尽可能避免重复劳动

  这些要求决定了自动化测试在 Agile 开发过程中的重要地位。利用自动化测试,在测试框架成型和一个迭代中的设计接口已经确定的情况下,源码和测试代码的开发可以同步进行,在充分利用有效资源的同时,如果开发人员在开发的过程中偏离了用户需求,在进行自动化测试的时候还会发现并纠正这些问题;在重量级软件开发和维护中,手工测试很难每次覆盖所有功能(如果要覆盖所有功能,需要相当长的时间,而且所需的时间随着功能的增多还会逐渐增加),而利用自动化测试,则可以通过测试用例的逐步积累而使得整个测试框架涵盖所有功能(自动化脚本可以在夜间以及节假日运行,不需要耗费人力),所以每次运行自动化测试都相当于运行所有功能的完整的测试,并且都能发现当前迭代中的开发工作是否对以前所有其他的功能是否造成影响;Agile 开发的迭代周期很短,这就要求所有的工作更为有效,自动化测试可以帮助开发人员高效地完成测试工作,不必为每次都花费人力和时间运行重复的人工测试而烦恼;并且自动化测试可以在非工作时间运行,也就是说在测试代码开发完毕之后,其测试工作可以不占用工作中的有效时间。

  由此看来,Agile 开发过程中,无论从软件的实用性,质量保证还是开发效率的角度,都离不开自动化测试。

  ClearQuest 开发过程如何结合各种不同自动化测试

  ClearQuest 开发过程中对各种自动化测试的应用,主要取决于两个因素:ClearQuest 本身的结构和开发过程中的开发阶段。本文 2.2 节中,从 ClearQuest 本身的结构出发描述了各种不同的自动化测试的应用。而本节将从 ClearQuest 开发过程的角度出发,来描述各种不同的自动化测试的应用。

  ClearQuest 开发过程采用了 Agile 开发方法,在 Agile 的每一个迭代中,根据 ClearQuest 本身的结构和每个迭代开发过程中的各种不同需要,应用了上一个章节中所列举出的各种自动化测试。我们将结合 ClearQuest 的一个模拟开发实例,描述各种不同的自动化测试在一个 Agile 的迭代过程中被引入的具体阶段和具体场景。

  在 ClearQuest 的各个开发阶段中,对各种不同的自动化测试,如单元测试、功能测试等,又会有不同的侧重。图 2 从整体上对 ClearQuest 开发过程中对各种自动化测试的应用做了描述。

  图 2:各种自动化测试在开发过程中各个不同阶段应用的频率

  

  在图中我们可以看到,单元测试从开发过程的开始阶段就被引入,并且贯穿整个开发过程的始终,因为只要有代码的变动就会有单元测试的发生,但随着开发过程进入后期,代码修改量逐渐变少,单元测试应用的频率也会逐渐降低。功能测试中包括的新的测试,在每个迭代结束的时候发生,而之前在每个迭代中期,由于不停地有代码修改,但是新的功能测试的用例还未开发完毕,所以需要周期性地做回归测试,随着后期代码修改逐渐减少,功能回归测试的频率也会随之降低。性能测试在功能测试开始的时候就尽可能被引入以便发现一些设计上的问题,而在开发过程的后期,由于整个功能已经集成起来,更多的性能测试的用例可以被执行,并发现更多的问题。

  让我们以一个 CQ Eclipse 的新功能的开发为例,来更形象地说明这个问题。

  该功能涉及以下两个部分:

  ● CQ Eclipse GUI 和相应事务逻辑

  ● 在 CQ Core 中实现新的 API,该 API 需要被应用于 perl 和 Java

  从前面的表 1 可以看出来,这个案例中,除了 Windows Client GUI 自动化测试以外,其他的自动化测试将全部在此功能的开发中有所应用。该功能的开发总体计划模拟甘特图如下图。图中仅仅给出了开发最初的 4-5 个月内的总体计划,但足以说明各种自动化测试的作用。

  图 3:模拟 ClearQuest 中一个新功能开发计划的前期甘特图

  

43/4<1234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号