APP下载

业务持续演进过程中全生命周期测试方法的研究与实践

2015-05-13陈伯慧周文斌

信息通信技术 2015年3期
关键词:测试用例联通辽宁

王 昊 陈伯慧 周文斌 郭 军

1 中国联通辽宁省分公司 沈阳 110041

2 东北大学信息科学与工程学院 沈阳 110819

引言

复杂业务系统的持续演进已经成为中国联通信息化建设的常态。中国电信业进入到了全业务运营时代[1-2],联通同时经营移动、固定、数据网络,全方位开展接入服务、通信业务、增值业务、内容应用等,用户量和数据量非常庞大,这使得现有业务越发复杂。在这当中,联通经营业务不断重组、2G、3G、4G多次升级,计费业务频繁变更,系统融合和集中一体化持续推进等,使得对复杂业务系统进行更敏捷的在线演进、持续升级成为常态。

如何在业务系统演进过程中确保质量,已经成为联通信息化建设中的关键问题。演进过程中常常出现功能失效、流程漏洞、性能较差等各种各样的情况[3-4],导致演进成本较高、开发周期较长、社会影响较大。

传统的由开发商主导的测试过程不能满足联通业务持续演进的需求。首先,集成测试效果较差。辽宁联通业务支撑系统由营业、计费、号线资源、服务开通、融合客服等20余套子系统构成,分别由不同的开发商进行开发,开发商往往聚焦自己分包任务的质量,而对集成后的效果分析和质量问题关注较少,导致集成测试效率较低,一旦出现问题,常常互相推诿。其次,测试技术水平较低。开发商在测试技术方面不够专业,既缺少掌握测试标准、测试体系、专业技术的测试技术人员,也缺乏价格昂贵的测试工具,并且在可复用测试用例库、大并发性能测试、运营性能优化等联通迫切需要的高端检测技术方面能力不足。最后,质量掌控能力较弱:对于联通而言,开发商主导的测试过程如同灰盒一样不透明,测试的完整性、可信度、完成度、缺陷等级等,都不能清晰掌握。

为解决上述问题,辽宁联通在过去的几年中,一直探索业务持续演进过程中多方驱动的全生命周期测试方法。

1 业务全生命周期测试过程

根据联通业务演进特点,将各个复杂的质量活动科学、合理、规范地管理起来是确保业务演进质量的基础。辽宁联通参考IBM RUP(Rational Unify Process)的定义[5],针对业务演进的迭代特点[6],制定了业务全生命周期测试过程UUP(Unicom Unify Process),如图1所示。业务生命周期可以分为初始、精化、构建、交付和运维等5个阶段,每个阶段都有各自的使命和里程碑,以及一系列的迭代。质量活动包括测试策略制定、计划评审、需求评审、风险控制、代码审查、单元测试、集成测试、配置审计、缺陷跟踪和分析、运行监控、问题评估等,它们共同构成了质量活动集。每个质量活动都相对独立,并有明确的任务、流程和交付物。与质量相关的活动可以贯穿整个生命周期,在不同的阶段执行不同的任务。

图1 联通业务全生命周期测试过程UUP

1) 初始阶段。提升问题定义、可行性分析以及需求分析质量。包括评审标书、概念文档、可行性分析报告和需求文档等,以缩短软件开发项目的落地周期、降低落地风险。

2) 精化阶段。提升软件架构质量。包括确保理解用户需求(可基于UML建立需求分析模型);审查开发计划;评估设计文档,确保架构的可靠性、可扩展性、可实施性和可理解性等;制定集成测试方案。

3) 构建阶段。提升实施质量。包括从第三方的角度,和开发商实现迭代式的互动,发现软件缺陷;识别开发过程中的风险;控制需求变更;控制实施进度,保证项目如期完成等。

4) 交付阶段。提升上线质量。包括对集成的系统进行功能、性能、安全等测试,以降低系统上线风险;对交付的开发文档、用户手册、代码、可执行系统等进行审查。

5) 运营阶段。提升运营质量。包括对业务支撑系统进行持续的远程监控,侦测系统缺陷、老化状态和安全漏洞,对问题、缺陷和新增需求进行收集和管理,分析原因并制定应对策略,以确保系统稳定、可靠并满足业务发展的需要;在系统的演进过程中设计并执行完整的、严谨的测试方案,制定风险管理机制和应急响应策略,以确保系统演进效果。

为更有效地支持业务全生命周期测试过程,辽宁联通建立“全流程需求变更和测试管理系统”,加强了对整个生命周期各个环节的管控,获得良好的实践应用效果。

2 敏捷协作模式

如何将联通业务演进过程的各参与方紧密组织在一起,为共同的产品质量目标冲刺,以更快的速度达到更高的质量,这是测试管理的关键问题。辽宁联通从2009年起,引入第三方测试,即在开发商测试的基础上,增加第三方测试环节。并且基于Scrum思想[7],探索由联通、开发团队、第三方测试团队共同组成的多方测试驱动的联通业务系统持续演进的敏捷协作模式(如图2所示),三方形成了紧密互动关系。

1)三方都有迭代,每一轮迭代都有各自的任务。由于职责不同,任务也不同。2)三方以产品质量目标为核心。联通定义产品质量目标,开发团队实现这个目标,而第三方测试团队则负责验证和保障这一目标。3)联通将需求文档与需求变更交付给开发团队,从开发团队和第三方测试团队活动项目状态,并以此为参考对项目进行控制。4)开发团队定期向联通提交项目状态,并在迭代过程中向第三方测试团队持续交付待测模块。5)第三方测试团队以持续验证为核心,将质量问题快速反馈给开发团队,配合开发团队进行协同开发;同时将测试结果、建议以及项目状态反馈给联通。6)第三方测试团队与开发团队都对项目状态进行反馈,其不同点在于:前者的反馈数据源于测试结果,并经过统计分析,是客观、公正、清晰、可度量和可信的;而后者的反馈则往往是主观、避重就轻、模糊、不可度量和可信性较低的。

图2 联通质量保证敏捷协作模式

辽宁联通通过“全流程需求变更和测试管理系统”,将联通、开发商和第三方测试机构紧密组织在一起,有效提升需求透明度、并行开发效率、集成测试质量,提高了辽宁联通的进度掌控能力、系统需求变更管理能力。

3 可复用测试资产

多年来,联通庞杂的业务知识和测试经验都集中在专业人员的大脑当中,或者复杂、无规范和厚重的文档里。如何在业务演进过程中梳理、提炼、积累并有效地继承和复用测试资产,以达到更快的测试响应、更低的测试成本和更成熟的测试方案,这是联通在测试技术上面临的重要问题。辽宁联通在长期业务演进过程中,逐步积累起来的可复用测试资产,包括业务模型库和测试用例库,它们是高效率测试的重要基础。

1) 业务模型库。业务模型是对联通业务对象、业务流程的可视化表示。它专注于分析业务领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。

在特定领域里,面向业务流程的联通深度应用和面向业务活动的作业处理成为系统核心,系统中领域知识的广度和复杂度也随之成几何级数增长,对于测评人员而言,软件复杂度、弹性、可靠性和效率等都受到前所未有的挑战。即测评人员仅从某个单独的应用软件理解业务,通常存在理解不完整、理解歧义,甚至理解错误等情况,并且分析业务所需要的时间较长。然而,特定领域中的软件产品存在共性需求,将其业务流程抽象出来,可以复用各领域业务经验,减少业务理解的偏差,提高测试效率。

辽宁联通基于UML(Unif i ed Modeling Language,统一建模语言),主要采用部署图、用例图、活动图和时序图等构建ESS、BSS等核心业务的模型库,形成重要的可复用资产。目前,已经形成业务模型1256个。

2) 测试用例库。测试用例的复用可以有效提高软件系统的维护效率并降低维护的成本[8]。辽宁联通建立软件测试用例库的目的是为了通过复用测试经验、加快业务演进的验证速度。在功能测试实施过程中,直接复用成熟的测试用例所付出的代价要远远小于重新开发测试用例,因此,测试用例的可复用程度直接关系到回归测试的实施效率。复用和共享软件测试过程中最重要的知识资产——测试用例,是降低软件测试费用的一个重要途径。

辽宁联通参考UML类图的建模思想[9],创新性地提出测试用例建模方法,如图3所示。

图3 测试用例模型图(登录)

①每个类是一个测试用例套,用例套中的属性是测试数据集的抽象表示,方法则是测试用例的抽象表示。前缀F、S、P分别表示功能、安全和性能类的测试用例。②所有测试用例套都包含在某个用例库里。③子测试用例套可以继承父测试用例套中的所有测试用例和测试数据集。④每个测试用例都有一份测试用例文档与之配套。⑤测试用例库分为可复用测试用例库和领域业务测试用例库。

4 性能监测预警平台

近年来,随着联通业务的迅速发展,保证业务系统在运营过程中的性能稳定性和可靠性已经成为信息化建设亟需解决的主要共性问题之一。特别是随着中国联通系统融合和集中一体化的推进,各省联通在性能测试方面,由传统的负载能力测试,逐步转为以客户感知为主要目标的性能测试。在系统上线前进行软件性能测试的传统方法已经无法保证系统运营时的可靠性和稳定性,这是由于:①用户行为难以预知;②软件老化造成系统性能下降;③部署环境动态伸缩随需而变;④业务系统常常在线演进;⑤系统缺陷几乎无法穷尽。变化和缺陷是系统运营过程中的常态,而传统的上线前测试不能模拟系统运营过程中各种变化,并无法发现系统的所有缺陷。

在系统运营过程中进行性能监控和预测、提出性能调优建议是解决这些问题的可行之道。辽宁联通与辽宁北方实验室有限公司和东北大学进行产学研合作,研究在线业务性能监测和预警平台,通过持续监测业务状态,预测可能发生的并发情况;通过评估系统的负载能力,判断系统性能衰减趋势;通过分析性能指标,指导部署环境的配置策略;通过自动执行测试用例,支持系统在线演进;通过分析性能瓶颈,发现系统深层缺陷。

平台部署在云计算环境下,逻辑架构如图4所示,主要包括5个功能。1)并发模拟器。面向多应用多业务,模拟用户行为持续发出并发请求。2)并发控制器。制定并发测试策略,分发测试脚本,分解并发请求任务,控制各虚拟机时间同步,控制并发过程。3)监控数据收集器。收集用户请求访问日志,分析用户访问行为,形成性能状态数据库。4)性能分析和预警模块。采用多种算法分析系统性能状态、运行趋势,在必要时发出预警信号;5)性能状态和趋势可视化界面。采用多种图表动态呈现业务系统性能状态和趋势,以及可能的瓶颈位置。

5 测试实践

辽宁联通在长期的业务运营实践当中,不断探索业务演进过程中的全生命周期测试方法。“沈抚铁升位并网项”是一个典型的实践案例。

2010年5月,辽宁省通信管理局组织召开了沈抚铁本地网共用024升位并网工作启动会,要求于2011年8月完成项目。这个项目要改造的系统较多,业务功能覆盖面很大,系统间关联关系密切,涉及多个部门,沟通、协调复杂度高,存在信息不对称和不确定性等风险。这些情况对软件测试工作提出了非常高的要求。辽宁联通按照业务持续演进过程中全生命周期测试方法,对该项目测试工作的组织和实施如下。

图4 辽宁联通业务系统性能监测和预警平台逻辑架构

1) 在过程方面,按照项目全生命周期测试过程来组织。明确内部各个相关部门、外部各个开发分包商以及第三方测试机构的迭代计划、任务、里程碑,确定了集成测试的组织者、责任人,提出并网后运营过程中的各种风险应对预案,包括在线演进过程中的应急响应、测试准备、方案评审、入场时机、执行单位、问题发布、缺陷管理、回归测试等管理机制。这些工作使得测试过程变得有条不紊、秩序井然,项目控制能力迅速提升,保证了项目的顺利实施。

2) 在管理方面,运用敏捷协作模式。各个参与方的工作包括:①辽宁联通负责向开发商提出业务需求,向第三方测试机构提出测试需求。②开发商负责产品开发并向运营商通报开发风险与进度,向第三方测试分别提供待测系统的测试案例。③第三方测试机构负责测试工作并向开发商提供测试缺陷、测试案例整改意见、缺陷跟踪情况,向运营商提供测试业务模型、第三方测试用例、测试总结与分析、开发商测试案例评价、测试日报、周报、月报。④考虑到这个项目的复杂性,省公司又抽调各市公司业务骨干到测试现场执行测试,尽可能地保证测试质量、降低演进风险。

每天早上,辽宁联通都组织“测试站会”,由测试工作的各个参与方汇报进展和当日计划,及时沟通协作内容。在每个迭代(大约每半个月为一个演进迭代周期)中,辽宁联通联合各个测试参与方召开“冲刺规划会议”,制定迭代计划,确定本轮迭代的测试任务列表、优先级、执行单位、执行时间等。在迭代结束时,召开“冲刺回顾会议”,总结测试任务的完成情况。运用敏捷协作模式,使得测试工作变得非常高效,缩短了测试周期。

3) 在技术方面,积累和使用可复用测试资产。在沈抚铁024并网测试项目中,面对复杂、庞大的业务内容以及来自联通、开发商和第三方测试机构的业务掌握能力和技术水平参差不齐的测试人员,辽宁联通提出必须通过建立业务模型库和测试用例库,充分整合业务人员和测试人员的经验与知识,以提高测试的科学性、完整性,并通过复用测试用例提高测试效率。在该项目中共积累测试业务模型205套,积累可复用测试用例1 245个。根据第三方测试机构统计,基于业务模型库和测试用例库,测试人员平均测试效率由过去的每人每天执行125个测试用例,提高到256个。积累和使用可复用测试资产,在业务演进过程中大幅提高了测试效率。

4) 在工具方面,采用性能在线监测和预警平台。性能是沈抚铁024并网项目测试的一个关注重点。辽宁联通除在上线前进行周密的性能测试外,还首次在该项目中使用性能在线监测和预警平台。①性能监测。技术人员根据联通业务性能需求,设计自动化性能监测脚本,然后部署到云平台上并启动监测程序,定期向业务系统发出多个请求;根据系统反馈回来的响应时间、失败事务数等指标、平台分析性能状态,并根据分析结果以可视化的方式呈现。②性能预警。平台不断获取业务系统的性能数据,根据相关的性能预测模型,判断业务系统在未来一段时间可能存在的性能风险;如存在风险,平台将在监控界面上闪烁并发声报警,同时,向各个相关方发出Email报警消息,提醒相关方尽快采取措施解决问题。

在沈抚铁升位并网项目中,性能在线监测和预警平台通过实时性能监控与预测来预知性能趋势,共发出32次预警通知,使开发方和辽宁联通在性能瓶颈发生之前能够有尽量多的时间进行调整、优化,从而大幅降低了项目的运营风险。

6 展望

随着联通信息化建设的飞速发展,联通的测试管理、过程组织、技术方法和工具平台也在不断演进。纵观历史,展望未来,可将联通的测试能力归纳为3个阶段。1)第1阶段:开发商主导的测试。对于联通而言,测试过程为灰盒,测试质量较低,存在问题较多。2)第2阶段:多方共同驱动的业务全生命周期测试。联通、开发团队和第三方测试团队敏捷协作,能够建立可复用的测试资产,能够研发适用的测试工具提高效率和效果。这一阶段测试过程为准白盒,测试质量较高,存在问题较少。3)第3阶段:自主的自动化的测试。随着业务知识和测试经验不断被提炼,可复用测试资产日趋丰富和完善,并且由自动化测试工具执行的比例不断加大,联通不再过度依赖开发商或第三方测试机构提供的测试服务。同时,面对联通的大数据和云计算趋势,将使用更多的自动化测试和自优化技术,如超大并发性能测试工具、性能自适应优化平台等。这一阶段测试过程为白盒,测试质量和效率极高,测试成本极低,存在问题极少。

辽宁联通目前处于第2阶段水平。未来,将朝着第3阶段的目标持续演进。

参考文献

[1]Fei Kang,Janice A.Hauge,Ting-Jie Lu.Competition and mobile network investment in China's telecommunications industry[J].Telecommunications Policy.2012,36(11):901-913

[2]Yongwoon Shim,Dong-Hee Shin.Analyzing the development of 4th generation mobile network in China:actor network theory perspective[J].Info.2015,17(1):22-38

[3]Norman Wilde,SikhaBagui,John Coffey,et al.Interoperable Systems and Software Evolution:Issues and Approaches[J].Digital Enterprise Design and Management.Springer Berlin Heidelberg,2013,205:45-56

[4]Thomas Stephen W,Adams Bram,Hassan Ahmed E,et al.Studying software evolution using topic models[J].Science of Computer Programming.Part B,2014,80:457-479

[5]PhilippeKruchten.The rational unified process:an introduction[M].Boston,MA,USA:Addison-Wesley Longman Publishing Co.,Inc.,2003

[6]Daniel Stahla,Jan Boschb. Modeling continuous integration practice differences in industry software development [J].Journal of Systems and Software.2014,87:48-59

[7]Ken Schwaber.Agile Project Management with Scrum[M].Microsoft Press,2004

[8]GuoShaojie,Tong Weiqin,Zhang Juan,et al.An application of ontology to test case reuse[C]//Mechatronic Science, Electric Engineering and Computer (MEC),2011 International Conference on,2011:775 - 778

[9]Soh Z,Sharafi Z,Van Den Plas B,et al.Professional status and expertise for UML class diagram comprehension:An empirical study[C]//Program Comprehension(ICPC),2012 IEEE 20th International Conference on,2012:163-172

猜你喜欢

测试用例联通辽宁
辽宁之光
风起轩辕——联通五千年民族血脉
基于SmartUnit的安全通信系统单元测试用例自动生成
读辽宁 爱辽宁
一张图读懂联通两年混改
微信搭台“联通” 代表履职“移动”
辽宁舰
基于混合遗传算法的回归测试用例集最小化研究
5G:电信联通的生死攸关之时
01海上辽宁