当前位置:  -> 首页 -> 测试经验 -> 软件测试中心信息化平台参考架构

上一篇 | 下一篇
软件测试中心信息化平台参考架构
作者:洛羽叶  点击率:1059  发布时间:2012-06-15

概述

一个有活力的组织总是在人员、流程和技术三方面不断改进,追求更高的社会效益和经济效益。大多数的组织都建立有信息技术部来实现 IT 技技术改进业务流程,提高人员效率,它们也会首先建立 IT 运维中心,或称为数据中心、信息中心,来运维和管控组织的 IT 系统。一些较大的组织还建立起专门的研发中心来掌控 IT 技术。随着 IT 在组织中的作用加大,为提高 IT 系统质量,测试中心逐渐从开发中心和运维中心中分离出来,逐渐形成信息技术部统一业务指导下的开发中心、测试中心和运维中心三中心相互制衡、共同发展的局面。特别是 2000 年以来,随着测试技术的发展和测试部门的不断成长,越来越多的组织开始建立自己的测试中心,测试不再仅仅作为开发的后期阶段,系统上线的前期阶段,而是贯穿整个应用系统的全生命周期中。测试中心在从需求的提出到系统的运维全过程中,与开发中心、运维中心进行业务交互,共同保证系统的高质量交付和运维,支撑组织业务的发展。

组织的信息技术部、开发中心、测试中心和运维中心共同负责组织的信息化平台,提供 IT 服务。随着这一部三中心的发展壮大,它们自身的 IT 水平开始受到重视。一般以为,它们为组织提供 IT 服务,那么它们自己的 IT 服务水平应该会较高,其实不然,由于业务部门提供了资金给 IT 部部门来提高信息化水平,IT 部门重点在于多、快、好、省地实现业务部门的要求,而常常忽视了自身的 IT 建设,一是缺乏专门资金,二来也缺乏时间。我曾看到一家大型的开发中心有员工 1500 多人来为企业开发 IT 系统,但为该开发中心自己建设 IT 系统的开发人员不到 5 人。在一家 400 多人的测试中心,仅仅从外包厂商那找来了 2 人开发满足测试中心自身需要的 IT 系统。本文探讨正在兴起的测试中心的信息化平台建设,首先基于测试中心的定位和业务流程,分析信息化平台建设目标,给出软件测试中心的信息化平台参考框架。


测试中心定位和业务流程

测试中心、开发中心和运维中心三足鼎立,相互制衡,在信息技术部的业务指导下,共同实现 IT 系统的开发、测试、运维和演进。测试中心主要负责 IT 系统的全生命周期质量保证。这一部三中心的主要业务模式如下图所示。


图 1. 一部三中心主要业务模式
图 1. 一部三中心主要业务模式

测试中心接受业务部门的测试需求和任务,与开发中心同步开始需求的分析,制定测试计划,设计测试架构,参与评审开发中心的系统需求和总体架构,编写测试用例。从开发中心接收到测试版本后,进行系统测试、性能测试(以及安全测试等非功能测试),和用户验收测试,测试过程中发现的问题即时反馈回开发中心修复。测试通过后,提交给运维中心上线,运行过程中,遇到功能缺陷,运维中心反馈回开发中心和测试中心确认,测试中心协助开发中心定位问题,开发中心修复缺陷后,再经由测试中心验证,提交给运维中心。运维中心在系统上线和运行过程中,遇到一些使用问题,如安装、系统配置,功能使用方式等,可要求开发中心提供技术支持。


测试中心信息化平台建设目标

基于测试中心的定位和主要业务流程,我们讨论在测试中心建立信息化平台有哪些需求,要达到哪些效果,实现哪些目标。我们看来,通过信息化平台,能够帮助实现测试工作的集约化、标准化和自动化。具体包括如下主要目标:

  1. 实现测试工作集中统一的管理。借鉴业界理念和方法,在测试中心工作的各个环节,如项目管理、进度管理、质量控制、版本管理、问题和缺陷管理、测试环境准备和维护、生产事件分析和管理、测试技术支持等,均形成中心统一的、流程化的管理模式,中心对于各类测试项目和任务,各级测试人员的监控和跟踪具备完善的信息化平台。
  2. 实现各类测试制度流程的固化。测试中心汲取业界领先实践和经验,通过信息化平台来固化业务流程和制度,测试人员在学习制度后无需再机械记忆和反复查阅制度,而通过信息化平台的硬性控制来保证制度在实际工作中的执行。
  3. 实现测试信息的智能分析和展现。研究业界领先的信息自动收集、展现和分析的方法技术。测试工作各方面的信息,包括过程指标、结果指标、员工绩效、部室评价与考核情况等各类信息均可以通过信息化平台进行自动收集、智能分析和主动呈现,系统根据不同角色的登录用户,按照对应的权限提供所关心的重点信息。
  4. 实现测试资产的有效积累。学习和掌握业界资产积累策略和方法,测试知识和经验能在平台上为全体测试人员分享,实现某个项目或某个员工好的测试方法或工具能被全中心的测试人员借鉴。测试人员的知识、经验和技能利用平台逐步积累和分享,从而使得测试中心资产重用率、分享率以及测试的自动化程度逐步提高。
  5. 实现测试工作的专业化。从业界成熟测试组织的组织和工作方式角度,研究通过测试信息化平台,实现各项测试工作合理的专业化分工,如测试设计和测试执行、技术测试和业务测试、功能测试和性能测试等能达到理想的分工合作状态,促进测试工作既能向专业纵深发展,又能通过平台实现整体合力。
  6. 实现测试工作强有力的风险控制。通过测试信息化平台,对环境准备、测试前移、技术测试设计、业务测试设计、测试实施、版本交接和投产等各个阶段实现自动化的风险识别和分析,将版本测试过程中各个环节的风险提示给相应的人员,并且跟踪其处理结果,实现风险管理和控制的智能化。

测试中心信息化平台参考框架

根据测试中心信息化平台建设目标,基于业务组件模型(CBM,Component Business Models),信息化平台参考框架如下:


图 2. 信息化平台参考框架
图 2. 信息化平台参考框架

全生命周期测试信息化平台分为三层:

  • 规划层,支持中心的战略方向,为中心领导提供决策支持。
  • 控制层,为中心提供业务管理能力,与开发中心、运维中心进行业务合作,协调测试中心内部各部门工作流程,监控项目质量和进度,处理异常情况等。
  • 执行层,增强测试中心的工程技术能力,快速高效地辅助测试人员完成各项测试工作。

三层平台共有 17 个 IT 能力组件,当它们整合在一起,形成一个有机的整体,协同工作,能够发挥出最大作用,避免信息孤岛,为测试中心领导、部门经理、项目经理、测试人员等提供日常工作的支撑平台,实现业务的运行和优化。下面详细描述这1 7个测试中心信息化平台 IT 能力组件。


测试中心信息化平台——规划层

测试中心信息化平台参考框架规划层包括"测试流程定义"、"项目组合管理"和"质量度量和报告" 3个 IT 能力组件。

"测试流程定义"描述测试中心的业务流程,定义各角色的工作任务和工作成果;将流程描述以网站的形式组织发布。项目启动时,从中心的流程库中选择适合的工作流程,各角色按照流程的要求,了解自己的职责。通过"测试流程定义"组件,测试中心建立起统一工作的基础,目前该方面广泛应用的工具为 RMC(Rational Method Composer),其中已经包括业界常用的一些测试流程定义,如 RUP、敏捷测试等等。

"项目组合管理"负责测试项目群管理。组织中很多应用系统需要协同工作,同时上线,测试时需要考虑到这一点,进行协同测试,排好测试计划,协调测试进度,实现版本的同时交付。项目组合管理常见的工具是 Focal Point。

"质量度量和报告"监测和衡量测试中心的业务绩效、项目状况,并产生各种要求的报表提供给各级领导做决策分析。一个好的工具平台能够自动从目前已有的测试中心信息化工具中搜集各种原始信息,如项目状态、测试结果等,而不是依赖于事后的手工填表、汇总,避免数据的重复录入和不一致情况。工具收集信息到数据库中,进行汇总、分析,再根据各级角色的要求,如中心领导、部门经理、项目经理、测试人员等,产生相应的报表,在统一的网站上实时呈现,如果需要,再自动生成文档。业界该方面的度量工具有 Rational Insight,根据测试中心的业务表现,生成"测试智能(Test Intelligence)报表。文档生成工具有 RPE(Rational Publishing Engine),从数据库中抽取信息,按照要求的模板和格式,生成文档报告。


测试中心信息化平台——控制层

测试中心信息化平台参考框架控制层包括"项目管理"、"需求管理"、"测试管理"、"配置管理"、"流程和缺陷管理"、"测试自动化"和"资产管理"7个 IT能力组件。下面详细描述这些 IT 能力组件。

"项目管理"从项目的范围、进度和成本三方面来监控项目从接收到交付的全过程。测试中心接受到测试任务,或者测试需求后,项目管理人员就参与进来,协调相应的资源,明确测试需求和任务,制定项目计划,在随后的项目执行过程中进行监督和协调,直到最终项目完成,进行总结。项目管理最常用工具为 Microsoft EPM(Enterprise Project Management)。

"需求管理"主要关注项目的原始需求在整个测试过程中的覆盖和满足情况,确保这些需求都被测试到,包括功能和各种非功能属性方面,如性能、安全、扩展性等。保证测试工作的质量,是建设一流测试中心的基础。需求管理业界常用工具有 DOORS 和 RRC(Rational Requirements Composer),可以明确地审计测试需求到测试结果之间的关系。

"测试管理"管理端到端的测试过程,包括测试项目建立,测试案例设计开发和管理,测试运行管理,测试数据管理,测试环境管理等。业界常用平台有 RQM(Rational Quality Manager)和 HPQC(Quality Center),可以作为测试人员的日常工作平台,将测试过程中的各种任务,如制定测试计划、编写测试用例、准备测试环境、运行测试用例、记录测试结果等,无缝集成并进行统一管理。

"配置管理"主要用于管理测试的软件版本,建立测试中心的版本库,结合出入库流程管理,与开发中心、运维中心进行版本的接收和发布。可以考虑采用与开发中心相同的配置管理工具,如 ClearCase、SVN 等等。

"流程和缺陷管理"作为跨中心、跨部门、跨团队的流程执行引擎,如项目审批立项、测试任务接受流程、测试需求变更、软件版本出入库流程、缺陷管理流程等。业界常用工具平台有 ClearQuest,记录和驱动测试中心内的各项审批、确认、通知和协作流程,既能加快项目执行的进度,如每到审批环节,自动给相关人员发送电子邮件提醒,也便于测试工作流程的审计和各种统计分析,如测试过程中发现的缺陷处理状况和当年度、当月的数量等。

"测试自动化"主要是实现自动化测试环境部署,包括测试环境的自动化、测试执行自动化和测试结果收集自动化等。业界常用的工具平台为 BuildForge,把手工建立测试环境的过程脚本化,利用分布式自动化执行工具进行部署,其后可以自动调用测试工具进行测试,以及进行测试结果自动收集。通过测试自动化,提高整个测试工作的执行效率和准确性。

"资产管理"建立测试中心的测试资产库,实现对测试资产的管理和复用,帮助团队提升测试质量和效率,降低重复劳动量,加快响应速度和回归频度,提高测试中心生产力。业界常用平台为 RAM(Rational Asset Manager),它定位于组织级,在中心范围内建立集中统一的资产库,资产的生产和使用延伸到每个测试项目中的每一个测试人员,如在一个大型项目测试中经过验证的测试方案、甚至项目启动和汇报胶片都可以作为测试资产,便于将来任何类似项目的复用。


测试中心信息化平台——执行层

测试中心信息化平台参考框架执行层包括"代码测试"、"功能测试"、"性能测试"、"安全测试"、"测试数据管理"、"虚拟测试"和"测试门户和社区"7个 IT能力组件。下面详细描述这些 IT 能力组件。

"代码测试"对提交的测试软件版本源代码进行静态代码扫描和动态分析。白盒静态扫描用来检测源代码是否符合公司要求或行业标准的编码规则,集中生成扫描报告,从而确保代码风格的一致性、更少的错误和更好的应用程序性能。另外,对于一些关键应用,可以根据要求,进行代码的内存分析、性能分析,比如发现内存泄露、性能瓶颈等。通过一些专业化的工具,如 Logiscope、PurifyPlus、Appscan Source Edition、Fortify等等,进行代码的扫描测试,而不需要去了解代码自身的结构逻辑。

"功能测试",对软件的各项功能进行测试,一般需要手工进行,但对于 Web 应用和基于图形界面的应用,可以进行一些自动化测试,测试人员在第一次测试时录制标准答案,以后在应用发生了修改以后,或者需要覆盖更多测试环境情况下,调出第一次录制的脚本,让自动化功能测试工具自动运行,得出测试结果。目前业界常用的自动化功能/回归测试工具有 RFT(Rational Functional Tester)和 QTP(Quick Test Professional)。

"性能测试"描述测试对象与性能相关的特征,并对其进行评价而执行的一类测试,如描述和评价测试对象的响应时间、吞吐量以及操作的可靠性和限制等特征。一般可以使用被测系统的动态监测报告、响应时间及吞吐量报告、百分位图报告和各种性能比较报告,对被测对象进行性能测试。性能测试工具常见有 RPT(Rational Performance Tester)和 LoadRunner,可以有效地帮助性能测试工程师验证系统的性能,识别和解决各种性能问题。

"安全测试"主要是针对 Web 应用进行安全检测,防范人为滥用、网络攻击、病毒扩散、恶意窜改应用数据等。常用工具有 AppScan,对 Web 应用和 Web Services 进行自动化安全扫描,简化企业发现和修复 Web 应用安全隐患的过程,根据发现的安全隐患,提出针对性的修复建议,形成多种符合法规、行业标准的报告,方便相关人员全面了解企业应用的安全状况。

"测试数据管理"将测试数据作为测试资产,进行系统化的管理,支持测试数据的评估、核准、使用、评价和更新维护的循环往复过程。对于组织的复杂应用,可以考虑利用已有的真实数据,与运维团队合作,全部或者部分地导出数据,进行数据筛选和内容模糊化处理。这样的数据集类型丰富,比例和关联关系更接近真实世界,是较为理想的系统模拟测试数据。这方面常用的工具有 Optim。

"虚拟测试"通过管理和创建虚拟应用的方式使得测试团队在相关系统没有就绪的情况也能够进行测试。对于一个应用的复杂测试场景可能需要多个其它系统协作来进行,这时可以通过模拟其它测试应用来加快测试进度,集中力量于被测应用。这方面常用工具有 GHVIE(Green Hat Virtual Integration Environment),可对常用的消息中间件处理机制进行模拟。

"测试门户和社区"提供测试中心的信息入口,所有人员都可以在这里找到测试中心的各项业务、管理和技术信息,并提供协作空间,比如可以为每个测试项目创建一个社区,社区中可以包含成员管理、文件共享、任务分派、共享书签、博客、Wiki 等等功能,测试小组成员可以在社区中分享文档、共同创作,对测试任务完成情况进行跟踪维护等。规划层、控制层和执行层中的各 IT 能力组件都可以在测试门户中发布信息,如测试中心各级人员都能看到"质量度量和报告"组件中发布的绩效报告。常见的工具有 Lotus Portal/Connection。


基于云计算的信息化平台

上面详细描述了测试信息化平台的 17个 IT 能力组件,为增强实现的灵活性和有效利用测试资源,这些 IT 能力组件可以采用云计算的方式来提供。下图显示了整个测试中心的云计算架构。


图 3. 测试中心云计算架构
图 3. 测试中心云计算架构

测试信息化平台应用和企业的业务应用都构建在云平台之上。初期阶段,也是目前最常用的云计算方式,测试中心整合所有的硬件服务器,形成"基础架构云"(IaaS, Infrastructure as a Service),所有的 IT 能力组件都可以或逐步加入到云平台上。随着云平台逐渐演进到平台云(PaaS, Platform as a Service)和软件云(Software as a Service),这些 IT 能力组件的实现方式也将同步演进。


结束语

本文首先在讨论 IT 技术发展的基础上,引出了 IT 系统建设的主体之一 —— 测试中心自身的 IT 建建设问题,先分析了测试中心的定位和业务流程,给出信息化平台的建设目标,基于这些目标,给出了测试中心的信息化平台参考框架,分为规划层、控制层和执行层,共有 17 个 IT 能力组件,然后对每个能力组件进行了详细说明,列出各能力组件在市场上常用的工具平台。IT 能力组件和常用工具组合如下图所示。


图 4. 常用的工具平台
图 4. 常用的工具平台

实际采用哪个工具平台来实现 IT 能力组件,不仅要考虑该工具的功能和性能,还要考虑它和其它工具平台之间的集成,避免形成信息孤岛。当一些工具平台能集成到一起时,对应的 IT 能力就能相互促进,获得更大效果,比如 Insight 和 DOORS、EPM、CQ、RQM 等等集成,自动收集数据,生成报表,不仅实现了测试质量度量和报告,还很好地展现了需求管理、项目管理、流程管理和测试管理这些 IT 能力,增加了他们的价值。

本文最后简要介绍了测试信息化平台与云计算的关系,给出了最常用的基于基础架构云的 IT 能力组件实现方式。

在实践中,各测试中心如何构建自己的信息化平台?可以参照自身的 IT 建设现状,以信息化平台参考框架为蓝图,看看有哪些 IT 能力组件还没有,然后根据组织需求的紧迫程度来设定 IT 信息化平台建设路线图,逐步提高测试中心 IT 水平,推动组织的健康发展。

标签: 软件测试 
引用地址:本站原创
   站点首页      技术人生      旅途足迹      我要留言      友情链接      关于站长   
[本站统计]
在线人数:0
今日访问:24
总访问量:1471162
Copyright 2006-2022 EasyWeb 1.6 订阅 All Rights Reserved
粤ICP备08028977号-1
www.luoriver.com
Created by WWH in 2006