自动化测试能增强软件测试的规范化和标准化,如果实施方法得当,它可以:

  减少浪费在重复性手工测试工作上的时间
  创建优良可靠的测试过程,减少人为错误
  增强测试的覆盖率以及产品质量

  但是,测试自动化不能:

  完全代替手工测试
  立即降低测试投入,提高测试效率
  保证100%的测试覆盖率
  补偿劣质的测试过程

  要对自动化测试形成正确的认识,切不可好高骛远,脱离实际的以为企业实施了测试自动化,可以克服从前的一切问题。实际上,软件测试自动化在企业内部的推广,也是一个与时俱进的持续性过程。

  自动化测试工具

  自动化测试定义为通过测试自动化工具开发和执行测试脚本,以评估软件的需求。测试工具分为两类:

  找错工具(fault-finding):根据既定的测试标准寻找被测程序中的缺陷,包括静态分析工具(一些白盒测试工具例如PerformanceRunner的jtest含有该功能)、动态测试工具(市面众多的测试工具robot、autorunner、qarun等)

  测试支持工具:测试管理工具(如testcenter,testdirecter等)、其他支持工具(如clearquest、clearcase等)

  自动化测试成功的关键要素

  企业购买了自动化测试工具,下一步是要在公司内部推广自动化测试。那么,自动化工具能够给企业的测试流程带来多少变更呢?如何在测试工作中使用自动化测试工具呢?RUP提出这样的自动化测试关键要素:

  自动化测试必须看成一个软件开发项目,因为测试脚本是代码,而测试代码是自动化测试的根本;有效的开发并维护良好的测试脚本,是自动化测试的重中之重。

  自动化测试同样需要经历计划、设计、开发、维护、版本控制过程,具体而言,包括四个关键过程:
  清晰的定义和可持续的实现过程
  获得企业组织管理上的支持
  审思成熟的项目计划
  稳定的结构设计

  以下逐一讲解每个关键过程。
    
  定义测试过程

  一)定义测试过程的重要性

  所谓过程,是为了构建某目标而设计的一系列分步执行的动作;软件工程里,目标是构建软件系统或增强现有软件系统;软件测试里,目标是高效的测试软件程序,发现软件缺陷并确认软件需求。

  一个定义良好并严格根据其实施的测试过程,是自动化测试成功的关键。所谓凡事预则立,不预则废,在一个随机或非系统性的测试环境里,很难实施测试自动化;缺乏稳定的测试过程,拿起工具开始录制脚本等,这样的方式是愚蠢的,所做的投入也必将导致失败。

  二)RUP简介

  RUP(RationalUnifiedProcess)是IBMRationalsoftware提出的软件工程实施过程,在业界经历了数千个软件项目的实践,是当前为成功的软件工程方法论之一!RUP是一种迭代的、以架构为中心的、用例驱动的软件开发方法;RUP是一种具有明确定义和结构的软件工程过程,它明确规定了人员的职责、如何完成各项工作以及何时完成各项工作,以及软件开发生命周期的结构,定义了主要里程碑和决策的关系;RUP也是一个过程产品,提供了可定制的软件工程的过程框架,支持过程定制、过程创作和多种类型的开发过程,可通过装配过程产品得到过程配置。RUP配置可以用于不同规模的开发团队和规范程度不同的开发方法,RUP产品包含过程配置和过程视图,以指导项目经理、开发人员、测试人员等角协作开发软件。

  RUP的核心包含几个基本原理,它们支持应用迭代方法进行软件开发:

  尽早并且不断的化解重大风险
  确保满足客户的需求
  把注意力集中放到可执行的软件上
  尽早在项目中适应变化
  在早期确定一个可执行架构
  使用构件构造软件系统
  建立高效团结的开发团队
  始终重视质量