软件功能自动化测试之我见

发表于:2015-12-23来源:uml.org.cn作者:唐昌文点击数: 标签:
软件测试对软件质量的保证起着致关重要的作用。虽然国内软件企业越来越注重软件测试工作,但仍然存在这样一个不争的现实:除了部分大中型软件企业外,相当多的软件企业的软

  1前言

  软件测试对软件质量的保证起着致关重要的作用。虽然国内软件企业越来越注重软件测试工作,但仍然存在这样一个不争的现实:除了部分大中型软件企业外,相当多的软件企业的软件测试工作还完全处于手工测试状态,甚至还没有稳定的测试团队。在这样的企业环境下,软件测试工作变成了一项枯燥繁重的"苦差事"。大型软件项目的新增业务需求和变更需求比较多,且各类业务比较复杂,如ERP、CRM、SCM等等。软件开发往往采取模块化设计和增量集成的方式,加上某些系统对流程和权限的控制比较严格,从而导致单据从受理到进入归档状态是一个非常漫长的过程。测试人员准备测试数据比较困难,经常需要花很多时间去创建一张单并执行到预定的状态。此外还有大量的变更问题需要验证,软件测试中的许多BUG还需要进行回归测试。这些工作都存在大量的重复性劳动,有必要引入和运用功能自动化测试方法

  2自动化测试的适用性

  自动化测试的切入时机以基本完成软件的程序界面开发、页面控件相对稳定为宜。如果项目还处在界面开发阶段,对页面的配置尚存在较多争议或处于频繁更改的状态时,不宜进行自动化测试。因为这样既达不到保证软件质量、提高测试效率的目标,反而浪费人力物力维护测试脚本。

  当界面稳定后,自动化测试即可开始。但最好在以下几种情况下引入自动化测试,以便达到真正的测试效果。

  测试时间相对长,且存在大量重复性、机械性手工测试的项目

  产品型软件,每发布一个新的版本或打补丁都需要对其他模块执行相同的测试

  项目型软件,需求变更频繁,每变更一次,需要对原有的无争议的功能做测试

  经常需要更换应用程序部署站点的软件,每更换一次需要对所有功能做验证测试

  测试时间相对长,且存在大量需要执行回归测试的软件项目

  系统界面稳定,需要对业务流程进行验证测试的软件

  采用增量开发持续集成的项目,需要对频繁更新的程序执行验证测试

  软件项目采用主流开发平台技术,且不存在物理交互的测试,如刷卡测试

  项目工期紧、测试周期短的项目不应采取自动化测试

  界面的美观、声音的体验和易用性的测试不应采取自动化测试

  3自动化测试的工具集

  自动化测试的工具很多,按照用途可以划分为测试管理工具、功能自动化测试工具性能自动化测试工具单元测试工具、测试用例设计工具。按照收费方式,又可以分为商业测试工具、开源测试工具、免费测试工具。

  当前主流的自动化测试工具有Mercury Interactive Corporation、IBM Rational、Compuware Corporation、Segue Software等公司的系列产品。美科林公司的系列产品简介如下:

  4自动化测试的方法集

  自动化测试的脚本开发有多种参考方法,简要介绍如下:

  从上表可见,关键字驱动脚本的维护成本最低,但编程技能、设计和管理的要求是最高的。在自动化测试时,应根据实际的测试需求和条件选取适当的脚本开发方法。一般都会综合好几种开发方法。

  5自动化测试的基本流程

  5.1测试基本流程

  5.2制定测试计划

  在开展自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。

  5.3分析测试需求

  用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时,能够覆盖所有的需求点。一般来讲,基于Web系统测试需要覆盖以下几个方面:

  页面链接测试,确保各个链接正常

  页面控件测试,确保各个控件可靠

  页面功能测试,确保各项操作正常

  数据处理测试,确保数据显示准确、处理精确可靠

原文转自:http://www.uml.org.cn/Test/200906255.asp