软件测试与IT系统的质量提升
2015-05-13
中国联通集团研究院 北京 100032
背景
随着互联网时代的来临,电信行业的发展经历了巨大的变革,作为企业核心竞争力的体现,信息系统的稳定性和可靠性已成为一家企业生存与发展的关键。新产品推广周期的不断缩短,使得行业竞争日趋激烈,为满足中国联通的业务发展需要,提高中国联通在国内、国际的市场竞争水平,改善总部、各省公司系统间集成缺少整体意识、缺乏规范指导、重复投资等情况,中国联通对IT系统进行了统一的规划和建设,以适应“管理集中、系统集中、系统融合、规范统一”的发展思路。
统一的规划建设给传统的信息系统项目管理方法和质量带来挑战和压力。联通集团IT系统建设面临着从单项目向多项目、甚至项目群组演进的过程。融合的业务需求、集中统一管理的需求,推动电信IT支撑系统逐步从省集中向总部集中演进,核心运营支撑系统的集中化趋势越来越明显,大多数的系统均需要具备一级架构,多点支撑的能力。
IT信息系统集中化有力地推动了企业发展,加快了技术的更新、提高了运营商的工作效率。但是,集中化给IT支撑带来较大的风险。传统的信息系统工程建设以最终验收为目的的质量检查,已经不能适应新形势下的系统建设需求。如何完善和保障IT系统建设项目全生命周期质量管理是一个迫在眉睫的问题。
中国联通集中化的信息系统建设,需要从项目式的质量管理转化为精细化的、集中的、全面的质量管理。研究中国联通IT系统建设全面质量管理,具有现实的意义。
对IT信息系统全面的质量管理,既适应中国联通企业发展新形势的需求,也为信息系统集中化过程中IT系统建设保驾护航、提供保障;同时,也是提升集中化项目(项目集群)管理水平的要求。
1 电信行业IT系统发展情况
当前,电信运营商的IT支持系统,包括业务支撑、财务、人力、采购、项目管理以及运营支撑等各项工作。从某种程度讲,IT系统的质量决定了公司的战略执行质量。
电信运营商I T系统已发展成为庞大的支撑体系,可分为三大类,即业务支撑系统BSS(Business Support System)、运营支撑系统OSS(Operation Support System)、管理支撑系统MSS(Management Support System)[1]。
在建设过程中,大型信息化系统建设,往往面临时间紧、任务重的特点,IT系统的上线,是一个时间与质量的权衡过程。以牺牲质量为前提的建设工程不仅会给企业带来高昂的维护费用,甚至可能丢失用户,给企业造成难以弥补的经济损失。中国联通的IT信息系统建设,也面临着同样的问题和考验。如何在保障质量的情况下提高效率,有效监理和管控IT系统工程建设质量、上线质量、运维质量,成为IT系统集中化过程中一个重要的课题。
纵观IT系统项目特点,由于其集中系统自身和建设过程的复杂性,往往同时具有超大型、并发性、关联性、创新性等明显特点,导致在需求统一、标准统一、管控环节以及管控点检测等方面的工作难度均大大增加(如图1所示)。同时,中国联通IT系统的架构还面临一个由两级架构过渡到集中架构的过程,建设压力也从省分逐步向总部转移;系统的集中化,也同时让数据管理和运行维护职能集中,运维过程中的质量问题影响范围从原先的一省或几省瞬间扩展到全国,质量问题影响范围呈几何级数上升趋势。可见,集中化的IT系统为企业带来了快速的响应,同时,也要求企业对其建设维护响应速度升级,对质量管控的要求明显提高[2-3]。
图1 集中化IT系统项目特点及建设特点
2 中国联通质量管控发展情况
为应对IT系统建设的快速发展,中国联通在IT系统建设过程中采取了各种质量保障手段,遵循IT系统生命周期发展规律,从自行开展测试到引入第三方测试、从手工测试到自动化测试,从单项目测试到多项目协调统一管理,逐步建立了一套较为规范、完善的质量保障体系,服务于现有IT信息系统建设,为系统建设起到保驾护航的作用。
作为联通IT测试主要支撑单位,联通研究院终端与测试实验室已经取得CNAS资质,具备了完整的质量管理体系及独立的检测实验室能力。同时,为集团提供各类IT系统测试支撑服务,包括选型测试、新业务新技术POC验证、体验测试、性能测试及调优、安全性测试等。
依据IT质量管控5级模型(如图2所示),中国联通目前已达到“已管理级”的水平,即具备了依据质量管控计划顺利完成项目的能力;但质量管控的流程和措施尚未形成统一要求和标准,未在各项目间复用;在质量的量化改进及数字化管控方面尚有较大的提升空间。
图2 质量管控5级发展模型
3 测试是质量保障的最重要手段
IT系统的建设发展过程也是IT系统的质量保障发展过程。从各大电信运营商历次的运营支撑系统建设发展过程来看,作为质量控制的最主要手段,测试对系统的质量起到极大的推动作用,测试的作用功不可没,在建设过程中,可以看到从不同角度针对不同目的的测试形式,如入围检测、选型测试、验收测试、上线前测试、维护过程质量跟踪等,这些测试都从不同的角度和层次起到了保障项目质量的作用(如图3所示)。
图3 IT系统及测试发展趋势
3.1 ISO/IEC9126质量模型
ISO正式推出的软件质量模型是ISO/IEC 9126系列标准[4],该模型是一个树形结构,高层定义了6个质量特性,中间层定义了对应的质量子特性,第三层为度量。质量特性与质量子特性的对应关系如表1所示。
表1 ISO/IEC 9126模型中质量特性与质量子特性的对应关系
3.2 IT系统生命周期各个阶段质量问题
IT系统的生命周期的各个阶段均应有相应的质量保证,在软件测试的V模型中,展示了测试在IT系统生命周期各个阶段对应的内容(如图4所示)。
图4 软件测试V模型
软件测试的V模型中各个阶段的测试,对应于软件开发各个阶段可能出现的问题列示如下。
1) 需求分析阶段的问题。对用户需求不合理的简化,造成系统功能及性能方面出现重大缺陷;将用户需求复杂化,造成系统冗余程度过高,降低系统运行效率,提高项目开发成本与使用成本。
2) 设计阶段的问题。未能反应需求中的用户要求,造成系统功能的遗漏;对需求的理解不准确,造成系统功能实现的错误;设计方法选择不当,造成系统结构不合理,导致运行效率降低和稳定性下降。
3) 开发阶段的问题。未按照设计进行编码或编码错误,造成系统功能错误、性能不满足要求、业务流程产生断点。
4) 用户手册及帮助的问题。对系统功能模块描述不完整,与系统实际功能不一致;缺乏必要的操作示例;手册版本与实际发行版本不一致等。
5) 测试发现缺陷的闭环问题。对问题严重程度分类不正确,对问题修改后未进行回归测试。回归测试在核查原有问题修改情况的同时,还需要检查相关模块是否产生新的问题,回归测试工作可保证缺陷及时有效解决,从而实现对系统缺陷全过程跟踪。
在完成系统的整体测试后,对系统的功能、性能、流程的测试结果进行分析并对系统整体情况进行评估,全面把握系统总体质量情况,为系统的后续开发、推广和运行打下基础。
3.3 软件测试在电信行业的应用
以电信行业典型的IT系统为例,在其建设过程中都要经历立项、需求分析、系统设计、编码、系统测试、上线投产、运行维护几个主要阶段。
软件开发过程中主要涉及需求开发、软件实现和系统测试三个重要的环节(如图5所示)。当软件团队大、软件系统复杂时,为提高软件质量,需要规范需求管理、配置管理和测试管理流程,并引入相应的支撑工具提高管理自动化水平。
图5 测试推进全面质量管理
1)需求变更。需求管理主要是对需求进行分类量化,并对需求处理流程进行跟踪。2)版本管理。对开发、测试、上线版本进行综合统一管理,确保版本可追溯性,明确上线版本的变更情况。3)缺陷跟踪。对测试过程、客户反馈的问题进行跟踪,通过缺陷状态的流转实现缺陷的闭环管理,确保不漏测、不漏发,降低系统上线风险。4)测试管理平台。对测试过程各个阶段进行统一数据库的管理,测试过程实时统计、查询,测试结果及用例形成知识库;自动化测试体系构建和实施。
以上流程的整合使用,可完成从业务需求到上线决策整个过程的质量控制。需求的变更和版本的控制可以从根本上对厂商的开发行为、质量进行监控;各个过程的测试实施,可提交客观的过程质量数据,配合KPI的制定和使用,使得IT系统质量真正做到事先可管、过程可控、测试监督的全面质量管理体系,提升整个IT系统支撑能力。
4 中国联通IT系统质量管控
4.1 覆盖IT系统全生命周期的质量管控体系
中国联通在IT系统建设运维过程中,对于IT系统的质量管控内容,也经历了从无到有的过程。联通研究院终端与测试实验室总结多年的测试支撑工作经验,提出IT系统全生命周期质量管控的体系,并协助集团公司完成测试平台搭建、规范管理、报表统计等多项工作。同时,也完成了自身的质量体系建设和运行,并通过中国合格评定委员会的审核,取得CNAS资质。这也意味着,联通研究院已经具备领先于同行业的IT检测技术和能力。
作为IT系统测试的重要支撑单位,联通研究院终端与测试实验室提出的IT系统全生命周期质量管控体系,对IT系统生命周期各个阶段进行了分析,并对各阶段所需的质量保障工作进行了定义和规范。同时,在支撑工作中,通过购置和自主研发搭建了一套完整的测试平台,形成体系、规范、工具三位一体的测试研发和支撑平台;其中有三个大的关键点,即国际规范的质量标准和评估体系、统一的验证测试方法和流程以及规范专业的工作模板。
对应于软件测试V模型,IT系统生命周期各个阶段均会面临不同的质量问题。作为运营商的IT系统,不仅需要关注系统建设本身的质量管控,还需关注准备阶段、运维阶段的实际问题。故根据电信行业IT建设的主要规律,将系统建设过程进行了重新划分,主要分为规划设计阶段、采购阶段、需求分析阶段、研发测试阶段、工程实施阶段、上线运维阶段等六大阶段(如图6所示)。
1) 规划设计阶段。是IT系统建设的准备阶段,包括技术准备、资源准备等,在这个阶段,对于新技术新业务有必要进行POC验证或选型测试或软硬件兼容性评估等各项工作,以确保新技术、新业务与已有业务或系统的兼容性和可扩展性。
2) 采购阶段。主要组织选型入围测试、软件版本评估测试、硬件版本评估测试等类型的检测活动。
3) 需求分析阶段。需求的定义和变更始终是IT建设的重要环节,可以说,没有明确的需求,就没有成功的系统。对于需求分析阶段常见的检测活动,可以分为需求一致性评估、规范符合性分析以及需求后评估等工作。
4) 研发测试阶段。在新的IT系统研发过程中,研发测试阶段可能需要组织和实施多次各类检测,包括对系统架构的评估、数据模型的测试、系统原型的体验、安全性测试、UAT测试等等,如果项目过大,建议进行阶段性版本接收测试,以降低长期研发后形成的版本与需求不符的风险。
图6 中国联通IT系统全生命周期质量管控
5) 工程实施阶段。在时间紧、任务重的建设过程中,IT系统上线前必须要完成上线前系统测试,测试内容应涵盖软件六大质量特性,包括功能性、可靠性、易用性、效率、维护性和可移植性,并对必要的文档进行检查。IT系统上线前的测试至关重要,只要时间允许,就应进行充分的测试和验证,以确保系统上线后的正常稳定。对于总部和省分两级的支撑系统,需要组织端到端的业务验证,以确保系统的完整性。
6) 上线运维阶段。IT系统的生命周期必然伴随着问题和缺陷,各阶段的问题和缺陷,到运维阶段都可能成为定时炸弹,影响用户体验和业务发展,因此,上线阶段还需要对版本进行升级迭代,每次的版本升级迭代都必须进行版本验证,对于核心业务流程,则需要自动回归测试。同时,某些系统缺陷,如性能问题,在IT系统运行一段时间、积累一定的数据后才显现出来,所以,系统上线后有必要进行性能优化工作。
4.2 自有团队测试与开发厂家测试相结合,提升效益降低成本
质量目标是描述软件产品质量特点的要求,因为可能要涉及到不同的人员,要执行的测试时机和实质也不尽相同,所以对测试阶段进行了划分。及时有效的测试有助于节约大量的产品开发费用、缩短IT系统上线时间,并可提升最终用户的满意度。
根据行业分析数据,在需求阶段所引入的每一个缺陷,到了用户验收阶段都会造成约7 000美元的损失,导致成本迅速增加。在项目结束时,可能出现预算已经用完却还需要额外支出的情况,这也是许多IT项目失败的原因。
中国联通在软件开发生命周期各阶段进行分析,依据成本效益原则,对IT系统交付质量的管控策略进行定义,确定每一阶段管控内容。由于大部分缺陷在用户验收及生产中才能被检测出来,但实际却出现在需求和设计阶段,因此,需要在验收前进行有效质量管控,以尽早识别缺陷,降低修复成本。图7是在测试阶段的管控策略,由开发厂家测试和自有测试团队验收相结合,并同时增加内部用户、外部用户的体验性测试。
IT系统建设工程项目均较为复杂,工程实施时间长达1年或数年,因此,在工程领域一次性测试所有不同目标显然不太现实;所以通常采用分类分段的方法实施,对每个测试阶段都重点考量具有该阶段特点的质量目标。
4.3 专业测试平台的建设
针对联通集团IT系统测试及质量管控的需求,联通研究院搭建了专业的测试平台,可支撑从测试管理到缺陷跟踪等一系列质控工作的开展(如图8所示)。同时,测试平台可输出测试数据,进行质控分析,为质量管控提供数据和依据。测试平台集成多个专业的测试工具,为设计、研发、测试、版本发布、省分运维等相关人员提供一个及时交互的平台,提升了测试效率,实现了对缺陷的实时跟踪和管理。
图7 联通自有测试与开发厂家测试相结合的测试策略
图8 测试平台示意图
从测试管理角度看,测试平台实现了对测试需求、测试用例、测试执行、缺陷以及手工测试的管理,不仅可以对以往散落在个人手里的测试资产实现集中统一管理,也可以对测试的过程进行追溯。此外,测试平台可以对其他自动化测试执行工具(性能、功能、安全、代码审计等等)进行有效集成,提供统一项目测试报表。
目前,I T系统测试方向已拥有行业先进的测试工具(如测试管理工具ALM、性能测试工具LoadRunner、自动化功能测试工具QTP等),能够对基于UNIX系统、Windows系统、Linux系统、SUN Soloris的各种信息系统及产品进行测试,测试范围主要涵盖联通集团核心业务支撑系统(BSS)、大ERP系统、综合客服系统、网管系统、u-Cloud系统 、经营分析系统等重要IT系统,可对中间件、数据库、应用服务器等进行自动化的功能及性能测试。
在此基础上,联通研究院根据检测项目的需要,自主研发了包括“URL收集工具、IDC拨测工具、结果对比工具、测试靶站、轻量级DNS适配工具、IDC/ISP靶站关键字生成工具、IDC/ISP邮件自动发送工具”等多个测试工具,可以进行信息安全测试。此外,还有代码检测DTS白盒测试工具(合作研发)、动态性能分析及诊断、Web应用程序安全性检测等测试工具。
4.4 常见测试类型及特点
针对联通IT系统全生命周期质量管控体系,不同阶段的IT系统面临不同类型的问题,最有效的解决手段就是测试,可以说测试是质量保障的重要手段,鉴于篇幅有限,表2选取几种常见测试进行说明。
表2 各类型测试服务特点和意义
5 IT系统质量评估
5.1 IT系统质量评估依赖于测试数据分析
长期的测试数据积累,有利于进行IT系统质量评估及质量改进。图9展示了某一年度前十个月的IT项目测试效果分析图,其数据共选取了某一年度主要IT系统的5个测试项目,对该年度每个测试项目10个月的功能点数量及缺陷数量进行了统计分析,在对其缺陷率进行分析的基础上,将其趋势进行了展示。通过对图9的分析,可以清晰地看到该项目是否符合其所处生命周期的缺陷特征。其中,C平台测试是年度新建项目,故其缺陷率处于上扬趋势,而A系统测试项目,由于A系统已上线,处于稳定运行阶段,故其缺陷率以及缺陷率趋势均处于较低水平。
5.2 测试数据分析为质量监控与资源配置提供依据
测试数据的收集和分类整理,不仅展现了具体的工作进度和工作量,长期的数据积累也可以作为质量监控及资源配置的依据[5]。随着质量管控体系的建设及测评数据的完善,质量分析与监控成为可能,管理人员可以通过质量数据的变更情况,来分析和预测可能存在的质量问题,从而提出质量监控的重点,形成质量监控的良性循环,同时,也有利于做到资源的有效配置。依赖于真实测试统计数据之上的管理决策更加准确、资源配置更为有效,资源利用率大幅增加,形成了良性循环。
图10为某项目测试规模分析数据,可以看到在上线和发布阶段需要部署大量的人力,但在系统稳定运行、进入运维阶段后,测试人员数量等都稳定在一定的水平上。
6 下一代软件测试的发展方向——全面的质量管理
经过多年的发展,中国联通已经形成了一体化的质量管控能力,覆盖了主要的IT系统建设、运维及终端采购、管理等各个阶段或过程,基本进入初步质量管控的阶段,各部门均开始有意识地进行质量管控工作,并且形成了交叉覆盖;近年来,在大型的IT系统建设项目上,基于领导或项目负责人对IT系统的关注程度越来越大,在项目组织实施及质量管控方面,都进行了统筹考虑,形成了一体化的项目建设团队,大型IT系统建设的统筹管理,非常有利于一体化的质量管控及测试团队的成长。当形成了完善的事前评估、事后把关、过程监督之时,也意味着IT系统的测试能力及全面质量管控工作又迈进了一步。但是,比对国内外先进的质量管控手段,我们在测试技术、测试工具研发能力、质量体系运行情况方面,尚未形成完整的闭环管控,要想达到精细化的质量管控,尚需推进数据后管理,从标准、流程、方法论、工具集各方面进行努力和积累。
图9 IT项目缺陷率趋势分析
图10 A项目测试规模分析图(示例)
7 典型案例
典型案例1:uCLOUD平台测试。本测试项目从配置管理(代码及文档)、自动化编译发布、功能测试、性能调优、源代码检测等多个方面对平台进行测试,应用黑盒、白盒等测试技术,对系统研发、版本发布、平台上线、验收等各阶段设置关键管控点,管理层可实时了解被测系统的质量情况(如图11所示)。
典型案例2:北方六省BSS系统测试项目缺陷跟踪流程。本测试项目的被测系统需支撑总部、省分两级系统,在测试策略制定过程中,考虑了总部、省分两级测试的策略。即基线版本在总部集中测试后,流转到省分测试环境,进行测试。两级测试均通过后,方可进行生产环境的上线部署,以确保上线版本的稳定性,有效降低了系统上线风险(如图12所示)。
图11 uCLOUD平台测试项目案例示意图
图12 北方六省BSS系统测试项目案例示意图
参考文献
[1]电信运营商的IT系统(MSS、BSS、OSS)介绍_百度文库[EB/OL].[2015-05-18].http://wenku.baidu.com/view/d1d4f8235901020207409c1c.html
[2]中国联通BSS域服务集规范[EB/OL].[2015-05-18].http://course.baidu.com/view/f562ae18a32d7375a4178074.html
[3]中国联通IT系统总体技术体制[EB/OL].[2015-05-18].http://doc.mbalib.com/view/234bf2f9f983d4494e12ab53 f3a1cd91.html
[4]中华人民共和国国家标准GB/T16260.1-2006/ISO/IE C9 126-1[S].2001
[5]克洛彭格波,佩特拉克.项目质量管理[M].北京广联达慧中软件技术有限公司,译.北京:机械工业出版社,2005:15