APP下载

大型复杂系统软件测试管理

2018-02-27文洋杜晨王定军

电子技术与软件工程 2018年19期
关键词:测试工具软件测试

文洋 杜晨 王定军

摘要

软件测试日益受到重视,大型复杂系统建立统一软件测试管理规范也成为一种趋势。本文介绍了大型复杂系统的测试管理,内容包括测试组织、测试环境、测试流程、测试考核、测试工具等方面。

【关键词】软件测试 大型复杂系统 测试环境管理 测试考核 测试工具

1 概述

随着我国信息业的不断发展,大型企业的软件系统变得规模巨大、业务日渐复杂,企业对软件功能、性能的要求也越来越高。众多企业开始逐步认识到软件开发质量对企业信息化的重要性,如果软件本身存在缺陷,将造成企业人力、物力和财力的巨大浪费,甚至造成不可弥补的损失。因此,为保证软件质量,需要在软件开发完成以后,针对软件测试工作进行有效管理。

如何对软件测试进行有效管理,主要需要建立一整完善的软件版本测试体系。首先,要对测试过程进行分层管理,测试过程一般包含软件出厂测试、用户验收测试、功能回归测试三个环节。其次,基于分层测试,设置不同层级的测试标准,模拟生产系统建立预生产环境,形成闭环测试流程管理,有效解决软件出厂测试不严谨、测试场景不充分、测试数据不理想等原因造成的故障和问题。最后,要制定测试管理规范,对测试组织及职责、测试环境管理、测试标准、测试流程、测试考核、测试工具等进行规范管理。

2 测试组织

一般而言,独立的测试团队能够更专业、更公正的完成相关测试。因此,通过引入第三方独立测试团队,与包括软件开发厂商测试团队在内形成由甲方测试主管统一管理的测试组织(如图1所示)。甲方测试主管两人,互为A、B角,软件开发厂商测试团队包括测试经理和测试工程师。第三方测试团队包括自动化功能测试团队、性能测试团队、安全测试团队、环境管理团队。由甲方测试主管、软件开发厂商测试经理、第三方测试团队测试经理组成测试管理办公室。

3 测试环境管理

高效的测试环境管理可以提高软件测试质量。完备的测试环境包括四部分:开发环境、测试环境、预生产环境、生产环境。通过自动化部署、自动化冒烟测试提高环境管理的效率。

(1)开发环境:提供给系统厂商开发人员使用,主要用于软件开发后单元测试。

(2)测试环境:提供给系统厂商软件测试人员使用,主要用于集成测试、系统测试。

(3)预生产环境:定期同步生产环境数据,并进行数据清洗。提供给用户进行需求验证,第三方测试团队进行自动化功能测试,主要用于用户接受测试、回归测试。

(4)生产环境:提供给第三方测试团队进行性能测试。

开发环境、测试环境、预生产环境、生产环境由甲方统一管理,采用严格的授权管理。开发环境的单元测试通过后的版本,可以通过工单申请发布到测试环境。测试环境的集成测试、系统测试通过后的版本,可以通过工单申请发布到预生产环境。预生产环境用户接受测试、自动化化回归测试通过后,可以通过工单申请发布到生产环境。

4 测试分类

根据测试的阶段,将测试分为单元测试、集成测试、系统测试、验收测试、回归测试(如表1所示)。

(L)单元测试:对软件中的基本组成单位进行测试。例如:一个模块、一个过程等等。由厂商软件开发人员完成。

(2)集成测试:在软件系统集成过程中进行测试,其主要目的是检查软件单位之间的接口是否正确。由厂商软件测试人员完成。

(3)系统测试:对已经集成好的软件系统进行彻底的测试,以验证软件的正确性、性能等满足其规约要求。

(4)验收测试:验证软件是否满足用户需求。是软件投入使用之前的最后测试。

(5)回归测试:软件维护阶段,对软件进行修改之后进行的测试。验证修改达到预定目的、修改不影响其他功能的正确性。

5 测试流程

测试流程一般包含测试需求、测试计划、测试准备、测试执行、测试报告五大流程。首先根据软件需求和质量目标明确测试需求,编制软件测试需求规格说明书并进行评审;其次,制定测试计划,包括测试策略、测试准则、测试资源、责任人、测试时间进度等;再次,按照测试计划开始准备测试所需要的数据、环境、测试人员及账号准备等;最后,执行测试用例,并将期望结果与实际测试结果比较,形成测试报告。

各软件开发厂商项目经理负责各自系统的单元测试、集成测试、系统测试,测试过程记录在测试管理系统中。生产系统版本升级需要经过用户接受测试、第三方回归测试。在ITSM系统中提交生产系统部署需求申请,需要同时提交测试用例和厂测试报告,系统自动化在预生产系统部署待发布版本。启动用户测试子流程、自动化回归测试子流程。测试结果反馈到ITSM系统,经过审核后,带发布版本自动化灰度部署到生产系统。

6 测试考核

为保证软件版本质量,同时对厂商测试团队、第三方测试团队进行打分考核。软件版本发布前需要经过用户测试、回归测试,测试结果对开发厂商测试团队进行考核。系统版本上线后发现软件缺陷,对第三方测试团队、开发厂商测试团队同时进行考核。软件缺陷按照严重程度划分为五级致命、严重、一般、輕微、建议。根据BUG的数量、严重程度进行扣分。

制定统一的测试考核指标,对人均编制测试用例数量、人均执行测试用例数量、人均单功能、测试用例覆盖率(Σ测试用例数量/Σ系统功能点数量)、测试用例有效率(Σ缺陷数量/Σ测试用例数量)、自动化测试代码量等指标进行考核。

每月召开测试组织的测试例会,对上月测试情况进行展示、对考核情况进行通报,对版本上线后发现的软件缺陷进行根因分析,并提出改进措施。对下月测试内容、测试计划。

7 测试工具

7.1 测试管理系统

测试管理工具,主要用于对测试需求、测试计划、测试用例、测试过程、软件缺陷进行跟踪管理的工具。通过测试管理工具,可以让测试人员、开发人员更好的协同工作,提高测试效率,提升软件版本的质量。软件测试管理工具前期使用过BugFree、Readmine和Testlink等工具。目前,主要使用禅道进行测试管理,并在此基础上进行增强开发。满足对测试的全面管理。包括人员管理、编制测试用例、执行测试用例、记录测试用例对应的软件缺陷、生成测试报告、自动计算测试考核指标等。

7.2 自动化测试平台

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,用机器替代人工执行重复的手动测试,是软件测试的重要组成部分。一般而言,大型系统部署规模较大、包含海量数据且业务逻辑复杂,采用手工测试覆盖率远达不到要求,因此,我们自主研发了可动态扩展的自动化测试平台,用于对软件版本的回归测试。自动化测试平台主要分为司令机、士兵机两部分。司令機主要提供了测试组件管理、测试用例管理、自动化测试任务管理、统计分析等功能;士兵机主要提供组件编制、自动化测试任务执行和执行结果反馈功能(如图2所示)。

7.3 自动化部署平台

自动化部署管理软件,可以将大量繁杂的手工部署自动化,由人工部署向自动化部署进行转变,缩短了因系统部署导致的系统中断时间。而且,因其全流程均采用自动化方式,避免了发布人员与发布包的直接接触,提高了发布包的准确率并降低了发布过程中的误操作行为。因此,我们自主研发了自动化部署平台,主要分为两个部分,服务端和客户端。服务端用于环境管理、定义部署流程、执行部署流程、生成任务部署报告等。客户端用于执行部署流程步骤中使用到的原子操作命令、反馈命令执行结果、记录操作日志等。实现了一键式部署简单易用,发布过程可实时以图形化方式显示发布状态以及自动处理发布异常,能持续将日常发布经验集成到系统中。系统部署后,可自动进行中间件状态校验、系统功能校验。

7.4 其他工具

除了测试管理系统、自动化测试平台、自动化部署平台外,性能测试工具Meter、白盒源代码安全扫描工具Fortify SCA、黑盒漏洞扫描工具AppScan等都是日常测试使用较多的工具。

通过以上对测试发布全过程的优化,中国电信在系统维护过程中做到了测试流程的规范管理,软件质量的有效管控。同时,我们也看到,在软件测试这条路上,还需要继续摸爬滚打,不断的自我否定和提升,但作为测试人员,始终相信,测试之路将会越来越有技术含量,越来越多繁花相伴。

参考文献

[1]段念,软件性能测试过程详解与案例剖析[M].北京:清华大学出版社,2016.

[2]Rom Patton,软件测试[M].北京:机械工业出版社,2012.

[3]Tim Riley&Adam Coucher,测试之美[M].北京:机械工业出版社,2010.

[4]王峰,陈杰,软件测试的艺术[M].北京:机械工业出版社,2006.

猜你喜欢

测试工具软件测试
基于OBE的软件测试课程教学改革探索
Http并发连接测试工具
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
刍论软件工程开发与测试的有效关联
基于移动平台APP测试
手车式真空断路器回路电阻测试电流线接头研究
福禄克推出先进的连接式测试工具系统
智能电能表软件测试技术概述
《软件测试》课程教学策略研究