论文部分内容阅读
[摘 要] 软件测试日益受到重视,自动化测试也成为一种趋势。文章介绍了大型复杂系统自动化测试平台的设计,以及引入自动化测试平台后,衍生出来的多种应用。
[关键词] 自动化测试;大型系统;软件测试;回归测试;系统运维
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2015 . 21. 096
[中图分类号] TP311.5 [文献标识码] A [文章编号] 1673 - 0194(2015)21- 0184- 04
1 前 言
随着我国信息业的不断发展,大型企业的软件系统变得规模巨大、业务日渐复杂,企业对软件功能、性能的要求也越来越高。越来越多的企业认识到软件测试对企业信息化的重要性,对软件的质量要求也越来越高。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。用机器替代人工执行重复的手动测试。是软件测试的重要组成部分。为了快速支持更短的上线周期,快速应对系统的变更和错误,提高测试团队的工作效率,构建自动化测试平台进行自动化回归测试成为企业信息化建设的必由之路。
大型复杂系统,规模巨大、数据海量、业务逻辑复杂,采用手工测试覆盖率远达不到要求。因此我们搭建了可以动态扩展的自动化测试平台,用于对软件版本的回归测试。在自动化测试平台的实际使用中,还将应用范围进行了拓展。将自动化测试平台应用延伸到了生产环境的监控、自动化运维等领域。
2 自动化测试工具分析
目前自动化测试工具主要分为三大类:
(1)国外商业化自动化测试软件。这类软件一般功能强大,提供了丰富的插件和完善的第三方接口,售后服务完善,应用范围广泛,但是价格一般比较昂贵。主要包括:HP QTP、IBM Rational Functional Tester等。
(2)开源或免费自动化测试软件。这类软件一般专注于某一领域,大部分可以免费使用。但是对使用者技术要求一般都比较高,软件的稳定性和易用性一般要低于商业软件。主要包括:Selenium、Watir、AutoIt等。例如:Selenium和Watir专注于Web测试,AutoIt专注于Windows程序。
(3)国内商业化自动化测试软件。随着市场对自动化测试工具的需求量越来越大,国内很多企业也开发出来国产化的自动化测试工具。考虑到开发成本,这类软件一般应用于特定领域或场景。目前,市场上种类较多,主要支持Web应用。由于产品化程度不高,一般都支持定制化开发功能。
3 自动化测试平台的需求
传统的自动化测试工具存在以下问题:自动化程度不高,不能实现无人值守;测试任务的组织、管理性较差;任务执行后的结果分析不灵活;未与被测环境进行关联,部署被测环境耗时耗力。
针对传统自动化测试的问题,我们对自动化测试平台提出了以下要求:
(1)支持Java Web、Web Service等应用的自动化测试。
(2)自动化测试脚本组件化,复用便捷。
(3)自动化测试脚本、业务数据分离。
(4)自动化测试脚本在统一的服务器集中管理。
(5)支持无人值守的批量执行自动化测试用例。
(6)支持测试用例执行状态的短信、邮件通知。
(7)支持测试缺陷的统一管理。
(8)支持灵活多样的分析报表。
(9)支持系统的自动化部署。
4 自动化测试的设计
4.1 自动化测试平台
平台如图1所示的自动化测试平台架构。自动化测试平台主要由两部分组成,包括:自动化测试、系统自动化部署。司令机和测试士兵机、部署士兵机通过Socket进行通信。
自动化测试,主要包括两个部分:司令机、自动化测试士兵机。
自动化部署,主要包括两个部分:司令机、自动化部署士兵机。
司令机、测试士兵机制作成标准虚拟机,可以实时进行横向或纵向扩展。部署士兵机可以由司令机与生产系统或测试系统服务器建立互信后,自动部署。
4.2 系统功能
自动化测试平台中执行自动化功能测试的单位是任务,一个任务由多个测试用例组成,一个测试用例由多个测试组件、测试数据组成如图2所示。
4.2.1 司令机
主要提供了测试组件管理、测试用例管理、任务管理、资源管理、策略管理、统计分析、日志查询等功能。
测试组件管理:对士兵机上传到司令机中的测试组件进行管理。
测试用例管理:将测试组件添加测试数据后,组合成测试用例,并添加用例所属系统、责任人等信息。
任务管理:将多个测试用例关联到对应的任务。设置任务的短信提醒策略、执行策略、责任人等信息。并支持手动触发任务执行。
资源管理:主要管理测试士兵机、短信和邮件发送服务器。
策略管理:系统提供了任务执行策略、短信和邮件发送策略。定时任务可以按照秒、天、周、月、年设置策略进行定时执行。发送策略支持按照任务和测试用例执行状态(成功/失败)发送短信和邮件。
日志查询:主要包括任务、测试集执行日志,短信发送日志等。
统计分析:分时间段,按业务系统进行各类统计、分析。
待办任务:分时间段、业务系统展示测试问题,由责任人判断出错原因。
指令发送:根据任务管理配置,向客户端发送测试任务执行指令。
4.2.2 测试士兵机
主要提供测试组件编制、任务执行、保存组件到司令机等功能。
编制组件:支持编制或录制脚本,支持检查点。
上传组件:将组件上传到司令机。
执行任务:接受司令机发送的指令,执行任务。
4.2.3 部署士兵机
编制部署流程:可以组合发布流程步骤,编制每个步骤的发布脚本和发布条件。
上传发布流程:将部署流程数据上传到司令机。
执行部署任务:接受司令机发送的指令,执行部署流程。
4.3 开发流程
自动化测试开发流程,如图3所示。
(1)在测试士兵机中编制基本的业务组件;
(2)业务组件保存司令机中;
(3)在司令机中,业务组件输入参数后,组合成测试用例;
(4)在司令机中,测试用例可以组合成任务;
(5)司令机给测试士兵机发送指令,由测试士兵机执行任务;
(6)士兵机将测试结果反馈给司令机。
4.4 自动化脚本编制原则
经过不断总结,在编制业务组件过程中,形成了自动化测试脚本编制原则。
C/S架构,一般情况下将每个功能作为一个业务组件。
B/S架构,一般情况下将每个页面划分一个业务组件。对于业务逻辑比较复杂的页面,可以将一个页面拆分为多个业务组件。
4.5 工作流程
自动化测试平台工作流程,如图4所示。
(1)ITSM系统通过接口向自动化测试平台发送版本发布需求;
(2)司令机发送测试系统部署、自动化测试执行指令;
(3)测试系统(部署士兵机)自动化部署系统新版本;
(4)测试士兵机对测试系统进行部署验证;
(5)测试士兵机对测试系统进行自动化测试;
(6)司令机发送生产系统部署指令;
(7)生产系统(部署士兵机)自动化部署新版本;
(8)测试士兵机对生产系统进行部署验证。
[关键词] 自动化测试;大型系统;软件测试;回归测试;系统运维
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2015 . 21. 096
[中图分类号] TP311.5 [文献标识码] A [文章编号] 1673 - 0194(2015)21- 0184- 04
1 前 言
随着我国信息业的不断发展,大型企业的软件系统变得规模巨大、业务日渐复杂,企业对软件功能、性能的要求也越来越高。越来越多的企业认识到软件测试对企业信息化的重要性,对软件的质量要求也越来越高。
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。用机器替代人工执行重复的手动测试。是软件测试的重要组成部分。为了快速支持更短的上线周期,快速应对系统的变更和错误,提高测试团队的工作效率,构建自动化测试平台进行自动化回归测试成为企业信息化建设的必由之路。
大型复杂系统,规模巨大、数据海量、业务逻辑复杂,采用手工测试覆盖率远达不到要求。因此我们搭建了可以动态扩展的自动化测试平台,用于对软件版本的回归测试。在自动化测试平台的实际使用中,还将应用范围进行了拓展。将自动化测试平台应用延伸到了生产环境的监控、自动化运维等领域。
2 自动化测试工具分析
目前自动化测试工具主要分为三大类:
(1)国外商业化自动化测试软件。这类软件一般功能强大,提供了丰富的插件和完善的第三方接口,售后服务完善,应用范围广泛,但是价格一般比较昂贵。主要包括:HP QTP、IBM Rational Functional Tester等。
(2)开源或免费自动化测试软件。这类软件一般专注于某一领域,大部分可以免费使用。但是对使用者技术要求一般都比较高,软件的稳定性和易用性一般要低于商业软件。主要包括:Selenium、Watir、AutoIt等。例如:Selenium和Watir专注于Web测试,AutoIt专注于Windows程序。
(3)国内商业化自动化测试软件。随着市场对自动化测试工具的需求量越来越大,国内很多企业也开发出来国产化的自动化测试工具。考虑到开发成本,这类软件一般应用于特定领域或场景。目前,市场上种类较多,主要支持Web应用。由于产品化程度不高,一般都支持定制化开发功能。
3 自动化测试平台的需求
传统的自动化测试工具存在以下问题:自动化程度不高,不能实现无人值守;测试任务的组织、管理性较差;任务执行后的结果分析不灵活;未与被测环境进行关联,部署被测环境耗时耗力。
针对传统自动化测试的问题,我们对自动化测试平台提出了以下要求:
(1)支持Java Web、Web Service等应用的自动化测试。
(2)自动化测试脚本组件化,复用便捷。
(3)自动化测试脚本、业务数据分离。
(4)自动化测试脚本在统一的服务器集中管理。
(5)支持无人值守的批量执行自动化测试用例。
(6)支持测试用例执行状态的短信、邮件通知。
(7)支持测试缺陷的统一管理。
(8)支持灵活多样的分析报表。
(9)支持系统的自动化部署。
4 自动化测试的设计
4.1 自动化测试平台
平台如图1所示的自动化测试平台架构。自动化测试平台主要由两部分组成,包括:自动化测试、系统自动化部署。司令机和测试士兵机、部署士兵机通过Socket进行通信。
自动化测试,主要包括两个部分:司令机、自动化测试士兵机。
自动化部署,主要包括两个部分:司令机、自动化部署士兵机。
司令机、测试士兵机制作成标准虚拟机,可以实时进行横向或纵向扩展。部署士兵机可以由司令机与生产系统或测试系统服务器建立互信后,自动部署。
4.2 系统功能
自动化测试平台中执行自动化功能测试的单位是任务,一个任务由多个测试用例组成,一个测试用例由多个测试组件、测试数据组成如图2所示。
4.2.1 司令机
主要提供了测试组件管理、测试用例管理、任务管理、资源管理、策略管理、统计分析、日志查询等功能。
测试组件管理:对士兵机上传到司令机中的测试组件进行管理。
测试用例管理:将测试组件添加测试数据后,组合成测试用例,并添加用例所属系统、责任人等信息。
任务管理:将多个测试用例关联到对应的任务。设置任务的短信提醒策略、执行策略、责任人等信息。并支持手动触发任务执行。
资源管理:主要管理测试士兵机、短信和邮件发送服务器。
策略管理:系统提供了任务执行策略、短信和邮件发送策略。定时任务可以按照秒、天、周、月、年设置策略进行定时执行。发送策略支持按照任务和测试用例执行状态(成功/失败)发送短信和邮件。
日志查询:主要包括任务、测试集执行日志,短信发送日志等。
统计分析:分时间段,按业务系统进行各类统计、分析。
待办任务:分时间段、业务系统展示测试问题,由责任人判断出错原因。
指令发送:根据任务管理配置,向客户端发送测试任务执行指令。
4.2.2 测试士兵机
主要提供测试组件编制、任务执行、保存组件到司令机等功能。
编制组件:支持编制或录制脚本,支持检查点。
上传组件:将组件上传到司令机。
执行任务:接受司令机发送的指令,执行任务。
4.2.3 部署士兵机
编制部署流程:可以组合发布流程步骤,编制每个步骤的发布脚本和发布条件。
上传发布流程:将部署流程数据上传到司令机。
执行部署任务:接受司令机发送的指令,执行部署流程。
4.3 开发流程
自动化测试开发流程,如图3所示。
(1)在测试士兵机中编制基本的业务组件;
(2)业务组件保存司令机中;
(3)在司令机中,业务组件输入参数后,组合成测试用例;
(4)在司令机中,测试用例可以组合成任务;
(5)司令机给测试士兵机发送指令,由测试士兵机执行任务;
(6)士兵机将测试结果反馈给司令机。
4.4 自动化脚本编制原则
经过不断总结,在编制业务组件过程中,形成了自动化测试脚本编制原则。
C/S架构,一般情况下将每个功能作为一个业务组件。
B/S架构,一般情况下将每个页面划分一个业务组件。对于业务逻辑比较复杂的页面,可以将一个页面拆分为多个业务组件。
4.5 工作流程
自动化测试平台工作流程,如图4所示。
(1)ITSM系统通过接口向自动化测试平台发送版本发布需求;
(2)司令机发送测试系统部署、自动化测试执行指令;
(3)测试系统(部署士兵机)自动化部署系统新版本;
(4)测试士兵机对测试系统进行部署验证;
(5)测试士兵机对测试系统进行自动化测试;
(6)司令机发送生产系统部署指令;
(7)生产系统(部署士兵机)自动化部署新版本;
(8)测试士兵机对生产系统进行部署验证。