大型复杂系统软件测试管理
所属栏目:计算机应用论文
发布时间:2018-10-18 13:00:49 更新时间:2018-10-18 13:00:49
摘要:软件测试日益受到重视,大型复杂系统建立统一软件测试管理规范也成为一种趋势。本文介绍了大型复杂系统的测试管理,内容包括测试组织、测试环境、测试流程、测试考核、测试工具等方面。
【关键词】软件测试大型复杂系统测试环境管理测试考核测试工具
1概述
随着我国信息业的不断发展,大型企业的软件系统变得规模巨大、业务日渐复杂,企业对软件功能、性能的要求也越来越高。众多企业开始逐步认识到软件开发质量对企业信息化的重要性,如果软件本身存在缺陷,将造成企业人力、物力和财力的巨大浪费,甚至造成不可弥补的损失。因此,为保证软件质量,需要在软件开发完成以后,针对软件测试工作进行有效管理。
如何对软件测试进行有效管理,主要需要建立一整完善的软件版本测试体系。首先,要对测试过程进行分层管理,测试过程一般包含软件出厂测试、用户验收测试、功能回归测试三个环节。其次,基于分层测试,设置不同层级的测试标准,模拟生产系统建立预生产环境,形成闭环测试流程管理,有效解决软件出厂测试不严谨、测试场景不充分、测试数据不理想等原因造成的故障和问题。最后,要制定测试管理规范,对测试组织及职责、测试环境管理、测试标准、测试流程、测试考核、测试工具等进行规范管理。
2测试组织
一般而言,独立的测试团队能够更专业、更公正的完成相关测试。因此,通过引入第三方独立测试团队,与包括软件开发厂商测试团队在内形成由甲方测试主管统一管理的测试组织(如图1所示)。甲方测试主管两人,互为A、B角,软件开发厂商测试团队包括测试经理和测试工程师。第三方测试团队包括自动化功能测试团队、性能测试团队、安全测试团队、环境管理团队。由甲方测试主管、软件开发厂商测试经理、第三方测试团队测试经理组成测试管理办公室。
3测试环境管理
高效的测试环境管理可以提高软件测试质量。完备的测试环境包括四部分:开发环境、测试环境、预生产环境、生产环境。通过自动化部署、自动化冒烟测试提高环境管理的效率。
(1)开发环境:提供给系统厂商开发人员使用,主要用于软件开发后单元测试。
(2)测试环境:提供给系统厂商软件测试人员使用,主要用于集成测试、系统测试。
(3)预生产环境:定期同步生产环境数据,并进行数据清洗。提供给用户进行需求验证,第三方测试团队进行自动化功能测试,主要用于用户接受测试、回归测试。
(4)生产环境:提供给第三方测试团队进行性能测试。
开发环境、测试环境、预生产环境、生产环境由甲方统一管理,采用严格的授权管理。开发环境的单元测试通过后的版本,可以通过工单申请发布到测试环境。测试环境的集成测试、系统测试通过后的版本,可以通过工单申请发布到预生产环境。预生产环境用户接受测试、自动化化回归测试通过后,可以通过工单申请发布到生产环境。
4测试分类
根据测试的阶段,将测试分为单元测试、集成测试、系统测试、验收测试、回归测试(如表1所示)。
(1)单元测试:对软件中的基本组成单位进行测试。例如:一个模块、一个过程等等。由厂商软件开发人员完成。
(2)集成测试:在软件系统集成过程中进行测试,其主要目的是检查软件单位之间的接口是否正确。由厂商软件测试人员完成。
(3)系统测试:对已经集成好的软件系统进行彻底的测试,以验证软件的正确性、性能等满足其规约要求。
(4)验收测试:验证软件是否满足用户需求。是软件投入使用之前的最后测试。
(5)回归测试:软件维护阶段,对软件进行修改之后进行的测试。验证修改达到预定目的、修改不影响其他功能的正确性。
5测试流程测试流程
一般包含测试需求、测试计划、测试准备、测试执行、测试报告五大流程。首先根据软件需求和质量目标明确测试需求,编制软件测试需求规格说明书并进行评审;其次,制定测试计划,包括测试策略、测试准则、测试资源、责任人、测试时间进度等;再次,按照测试计划开始准备测试所需要的数据、环境、测试人员及账号准备等;最后,执行测试用例,并将期望结果与实际测试结果比较,形成测试报告。
各软件开发厂商项目经理负责各自系统的单元测试、集成测试、系统测试,测试过程记录在测试管理系统中。生产系统版本升级需要经过用户接受测试、第三方回归测试。在ITSM系统中提交生产系统部署需求申请,需要同时提交测试用例和厂测试报告,系统自动化在预生产系统部署待发布版本。启动用户测试子流程、自动化回归测试子流程。测试结果反馈到ITSM系统,经过审核后,带发布版本自动化灰度部署到生产系统。
6测试考核
为保证软件版本质量,同时对厂商测试团队、第三方测试团队进行打分考核。软件版本发布前需要经过用户测试、回归测试,测试结果对开发厂商测试团队进行考核。系统版本上线后发现软件缺陷,对第三方测试团队、开发厂商测试团队同时进行考核。软件缺陷按照严重程度划分为五级:致命、严重、一般、轻微、建议。根据BUG的数量、严重程度进行扣分。制定统一的测试考核指标,对人均编制测试用例数量、人均执行测试用例数量、人均单功能、测试用例覆盖率(∑测试用例数量/∑系统功能点数量)、测试用例有效率(∑缺陷数量/∑测试用例数量)、自动化测试代码量等指标进行考核。每月召开测试组织的测试例会,对上月测试情况进行展示、对考核情况进行通报,对版本上线后发现的软件缺陷进行根因分析,并提出改进措施。对下月测试内容、测试计划。
7测试工具
7.1测试管理系统
测试管理工具,主要用于对测试需求、测试计划、测试用例、测试过程、软件缺陷进行跟踪管理的工具。通过测试管理工具,可以让测试人员、开发人员更好的协同工作,提高测试效率,提升软件版本的质量。软件测试管理工具前期使用过BugFree、Readmine和Testlink等工具。目前,主要使用禅道进行测试管理,并在此基础上进行增强开发。满足对测试的全面管理。包括人员管理、编制测试用例、执行测试用例、记录测试用例对应的软件缺陷、生成测试报告、自动计算测试考核指标等。
7.2自动化测试平台
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,用机器替代人工执行重复的手动测试,是软件测试的重要组成部分。一般而言,大型系统部署规模较大、包含海量数据且业务逻辑复杂,采用手工测试覆盖率远达不到要求,因此,我们自主研发了可动态扩展的自动化测试平台,用于对软件版本的回归测试。自动化测试平台主要分为司令机、士兵机两部分。司令机主要提供了测试组件管理、测试用例管理、自动化测试任务管理、统计分析等功能;士兵机主要提供组件编制、自动化测试任务执行和执行结果反馈功能(如图2所示)。
7.3自动化部署平台
自动化部署管理软件,可以将大量繁杂的手工部署自动化,由人工部署向自动化部署进行转变,缩短了因系统部署导致的系统中断时间。而且,因其全流程均采用自动化方式,避免了发布人员与发布包的直接接触,提高了发布包的准确率并降低了发布过程中的误操作行为。因此,我们自主研发了自动化部署平台,主要分为两个部分,服务端和客户端。服务端用于环境管理、定义部署流程、执行部署流程、生成任务部署报告等。客户端用于执行部署流程步骤中使用到的原子操作命令、反馈命令执行结果、记录操作日志等。实现了一键式部署简单易用,发布过程可实时以图形化方式显示发布状态以及自动处理发布异常,能持续将日常发布经验集成到系统中。系统部署后,可自动进行中间件状态校验、系统功能校验。
7.4其他工具
除了测试管理系统、自动化测试平台、自动化部署平台外,性能测试工具JMeter、白盒源代码安全扫描工具FortifySCA、黑盒漏洞扫描工具AppScan等都是日常测试使用较多的工具。
通过以上对测试发布全过程的优化,中国电信在系统维护过程中做到了测试流程的规范管理,软件质量的有效管控。同时,我们也看到,在软件测试这条路上,还需要继续摸爬滚打,不断的自我否定和提升,但作为测试人员,始终相信,测试之路将会越来越有技术含量,越来越多繁花相伴。
参考文献
[1]段念,软件性能测试过程详解与案例剖析[M].北京:清华大学出版社,2016.
[2]RomPatton,软件测试[M].北京:机械工业出版社,2012.
[3]TimRiley&AdamCoucher,测试之美[M].北京:机械工业出版社,2010.
[4]王峰,陈杰,软件测试的艺术[M].北京:机械工业出版社,2006.
月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!