软件功能自动化测试之我见 软件测试
1前言
软件测试对软件质量的保证起着致关重要的作用。虽然国内软件企业越来越注重软件测试工作,但仍然存在这样一个不争的现实:除了部分大中型软件企业外,相当多的软件企业的软件测试工作还完全处于手工测试状态,甚至还没有稳定的测试团队。在这样的企业环境下,软件测试工作变成了一项枯燥繁重的"苦差事"。大型软件项目的新增业务需求和变更需求比较多,且各类业务比较复杂,如ERP、CRM、SCM等等。软件开发往往采取模块化设计和增量集成的方式,加上某些系统对流程和权限的控制比较严格,从而导致单据从受理到进入归档状态是一个非常漫长的过程。测试人员准备测试数据比较困难,经常需要花很多时间去创建一张单并执行到预定的状态。此外还有大量的变更问题需要验证,软件测试中的许多BUG还需要进行回归测试。这些工作都存在大量的重复性劳动,有必要引入和运用功能自动化测试方法。
2自动化测试的适用性
自动化测试的切入时机以基本完成软件的程序界面开发、页面控件相对稳定为宜。如果项目还处在界面开发阶段,对页面的配置尚存在较多争议或处于频繁更改的状态时,不宜进行自动化测试。因为这样既达不到保证软件质量、提高测试效率的目标,反而浪费人力物力维护测试脚本。
当界面稳定后,自动化测试即可开始。但最好在以下几种情况下引入自动化测试,以便达到真正的测试效果。
测试时间相对长,且存在大量重复性、机械性手工测试的项目
产品型软件,每发布一个新的版本或打补丁都需要对其他模块执行相同的测试
项目型软件,需求变更频繁,每变更一次,需要对原有的无争议的功能做测试
经常需要更换应用程序部署站点的软件,每更换一次需要对所有功能做验证测试
测试时间相对长,且存在大量需要执行回归测试的软件项目
系统界面稳定,需要对业务流程进行验证测试的软件
采用增量开发持续集成的项目,需要对频繁更新的程序执行验证测试
软件项目采用主流开发平台技术,且不存在物理交互的测试,如刷卡测试
项目工期紧、测试周期短的项目不应采取自动化测试
界面的美观、声音的体验和易用性的测试不应采取自动化测试
3自动化测试的工具集
自动化测试的工具很多,按照用途可以划分为测试管理工具、功能自动化测试工具、性能自动化测试工具、单元测试工具、测试用例设计工具。按照收费方式,又可以分为商业测试工具、开源测试工具、免费测试工具。
当前主流的自动化测试工具有Mercury Interactive Corporation、IBM Rational、Compuware Corporation、Segue Software等公司的系列产品。美科林公司的系列产品简介如下: