一、H3C测试体系
平台测试。其主要负责H3C的基础软件平台的测试,包括平台新开发项目的验收测试,持续集成新特性的平台主线的系统级测试,以及一些专项测试(如协议专项测试)。专项测试是指H3C专指测试团队针对重要特性或不稳定特性主动发起的短时间,高强度测试,人员精干,目标聚焦,重点突破,通常效果非常好,能极大提升被测对象的成熟度。H3C所有测试团队都可根据需要发起专项测试。
产品测试。除了少量产品TR4之前项目验收测试之外,产品测试主要关注产品TR4之后产品版本的系统测试,包含SDV/SIT/SVT几个阶段,确保产品版本达到H3C制定的质量标准。
鉴定测试。这是H3C特有的一个环节,为了更严格的保证产品质量,H3C引入了内部的独立第三方测试团队——鉴定测试团队,代表用户对产品进行全方位的严酷测试,没有通过鉴定测试的产品不能大规模上市,工作重点在于对产品版本的ADCP(部分产品EDCP)进行独立严格的验收鉴定测试,做为产品版本的TR6根本质量依据。同时,针对行业和应用的解决方案也有相应的鉴定测试团队。
二、 PTM产品测试管理流程
1. PTM产品测试管理流程
H3C的产品开发遵循的是IPD流程,软件测试是IPD-PTM(Product Testing Management)流程。PTM是IPD流程体系中专门为产品测试工作量身打造的子流程,是IPD的关键子流程之一,用于指导产品的全流程测试工作,是H3C的产品测试端到端管理流程,和其他子流程(如IPD-CMMI,IPD-HCMM等)一道,共同确保产品团队能按计划、高效的推出满足客户需求的高质量产品。IPD全周期中各产品开发阶段都有对应的测试活动(如图1所示)。从实践来看,这个流程对于大型软件的质量保障非常有效。PTM的主要特点和作用如下:
PTM为产品测试抽象出覆盖完整生命周期的统一测试业务流程,明确划分了生命周期中各测试阶段,定义了各测试阶段的关键测试活动,使测试团队的工作开展可以有章可循,有法可依;
PTM为产品测试活动制定了操作规范,度量标准和审计手段,并提供经过实践检验的方法、工具支持以及IT支撑,使测试工作的开展更高效,对测试质量和产品质量的评价也能更客观、更全面;
PTM为产品测试构建了端到端的开放流程平台,使测试及缺陷修复活动中的各类经验和数据得以长期有效积累,为测试技术、缺陷分析技术、缺陷修复技术的研究提供决策方向,使测试和开发过程成为可持续优化的闭环。
图1测试生命周期(PTM和IPD各阶段对应)
PTM是IPD流程体系中专门为产品测试工作量身打造的子流程,用于指导产品的全流程测试工作。从图1的流程要求可以看出,在产品的概念阶段测试即介入产品研发,需要任命测试经理(TM)和测试系统工程师(TSE),并组建产品测试团队。
Charter到TR3,对应测试需求分析和计划阶段。在设计层面,产品要完成从产品包需求,到产品规格,再到概要设计的设计过程,相应的,TM和TSE可需要完成从可测试需求,到测试规格,再到测试点的测试设计过程;在计划层面,产品要完成E2E*(注:即end to end,端到端)总体计划到3/4级计划的细化过程,相应的,TM和TSE需要输出E2E测试计划和E2E测试策略,作为后续测试活动开展的总纲。具体上讲,TR1产品重点关注产品包需求的完备性以及选择的产品概念是否满足产品包需求,测试相应的定义产品可测试性需求,纳入产品包需求进行跟踪;CDCP制订产品E2E计划,测试相应的制订E2E测试计划(总体),为后续测试活动绘制路线图;TR2重点关注产品设计需求到产品设计规格的完备性,测试通过进行产品测试需求分析,输出产品测试规格,明确后续测试内容的总纲;TR3确保设计规格已经完全、正确地在概要设计中得到体现,测试则根据产品测试规格进一步细化输出测试点;PDCP产品输出3/4级E2E计划,测试则输出细化的E2E测试策略和E2E测试计划。测试需求分析和计划阶段非常重要,且往往易被忽视。该阶段测试工作做的扎实,系统的可靠性、测试的完备性等方面都能得到很好的保障,有经验的TM和TSE也可以通过E2E计划和策略,很好的控制后期测试活动的节奏。
TR2到TR4,对应测试设计阶段,主要任务是完成测试前期设计,包括测试方案设计和测试用例设计两个阶段。在测试方案设计阶段前期,TSE需要带领测试设计团队在产品测试规格的基础上,对特性、特性组合或者典型应用的测试需求进行进一步的分析和细化得到测试项;针对各个测试项,明确测试需要的网络环境、背景配置、背景流量以及测试中使用的测试工具和测试仪器。测试用例设计阶段则是在测试方案中已经定义好的环境中,进一步确定需要具体输入哪些测试数据,采取哪些测试步骤和测试操作对测试项进行验证。这个阶段相当于开发团队的编码阶段,本阶段的工作非常关键,因为后续的测试执行要做到有序有效必须依靠良好的测试设计。这个时候测试组必须规模投入,否则不可能做好大量的测试设计工作。
TR4到TR6阶段,是测试执行阶段。这是整个产品测试生命周期中持续时间最长,投入最大的阶段,TR4之前所有的测试工作,像测试计划,测试策略和测试设计都将在这个阶段接受检验。从这个时候起,产品测试团队的作用明显的体现出来——测试团队的工作直接决定了产品的进度和质量,一个优秀的测试团队将是高质量产品的最佳保障。该阶段分为以下三个测试阶段,测试目的和测试重点各有不同。
1) SDV阶段(TR4-TR4A):System Design Verification 系统设计验证。关注系统基本功能测试,包括模块基本功能、命令行、协议一致性、性能规格、压力等测试以及简单的组合测试。可视产品质量情况,在后期适当开展部分SIT阶段的测试内容。
2) SIT阶段(TR4A-TR5):System Integration Test 系统集成测试。对于软件测试团队来说,压力测试,多模块组合测试,大规模的组网测试是这阶段的主要测试内容,力求覆盖所有模块。
3) SVT阶段(TR5-TR6):System Verification Test 系统验证测试。这个阶段产品已经比较稳定了,软件测试团队的测试内容和SIT阶段相仿,但更多的是通过分析产品测试数据,针对薄弱环节进行重点测试和专项测试。
TR6到GA阶段,对应产品测试关闭阶段,主要目标是评估产品质量并积累经验数据。主要工作包括:依据各阶段的度量数据,评估产品质量,预测遗留缺陷;结合测试SOW和E2E测试计划评估测试是否达到目标;积累经验数据,作为后续产品测试改进的依据。
GA以后,PTM流程结束,退出产品测试。
2. PTM流程产品具体应用说明
PTM是一个全流程的系统工作,其应用目标是把握软件产品的质量,。下面具体谈谈在H3C产品IPD开发流程中,如何利用PTM全流程地把握产品质量。
在产品概念阶段,测试团队就开始介入,在产品规格、客户应用方面提出自己的建议,尤其这个阶段必须完成产品的可测试性需求。这个阶段要保证我们的产品与其定位相符,能够满足客户需求,同时保持竞争优势。达不到这些基本要求,谈不上好质量。
在产品计划阶段,测试团队需要根据产品开发计划,确定产品总体测试计划,并制定总体测试策略。另外,在这个阶段,测试团队需要建立测试需求跟踪矩阵,确保产品的每个设计需求、设计规格以及典型的客户应用都有对应的测试需求来进行跟踪。
在产品开发阶段,测试团队的主要任务是完成测试设计,即确定测试方案和测试用例,明确在什么样的测试环境中,采用什么样的测试仪器和测试工具,构建什么样的业务流量,采取哪些测试步骤对产品的每个测试需求进行验证。在H3C,每个软件特性项目,在以开发团队为主的单元测试、集成测试和系统测试活动之外,还有测试团队组织的编码层面的代码鉴定,以及项目功能层面的验收测试,对每个软件特性的质量层层把关。相对独立的特性层面之外,我们还有一个产品层面的验收测试,确保产品的功能性能规格得到了100%实现,并且没有阻塞测试的致命和严重问题。只有产品的每个软件特性,以及整个产品都通过了验收,才能进入下一个产品验证阶段。
产品验证阶段,事实上就是产品的系统测试阶段。在这个阶段,前后会有两个团队对产品展开测试。首先是产品测试团队,会依据内部研发版本发布节奏,分多个轮次对产品的功能、性能和稳定性全方位测试,并且开展复杂环境,复杂组网下的多特性组合测试。在产品测试团队完成测试之后,等待产品的还有另外一个更严酷的考验,即测试中心独立的鉴定测试,测试中心在H3C内部被产品称为“魔窟”。测试中心会对产品在大规模组网,大规模压力,复杂操作情况下对产品的功能、性能和稳定性进行鉴定测试,测试环境比产品真实应用环境更加复杂,更加严酷,对产品质量是重大的考验。代表客户的独立、严格的鉴定测试的加入,是H3C质量保障非常有特色的一点。产品通过鉴定测试的标准是鉴定DI小于6,并且严重以上问题都必须有规避措施。只有达到了这样的标准,产品才能被批准正式大规模发布。
3. 结束语
流程的好坏在于是否实用,好的流程能够通过正确的过程导出正确的结果。PTM就是这样一种实用的流程,它在H3C研发体系运用多年,通过持续的优化和改进,至今仍保持着强大的生命力。随着测试技术理论和实践的日新月异,浓缩了H3C测试经验的PTM,也将不断持续它生命中的黄金时代。
IPD(Integrated Product Development)流程介绍
IPD流程对一个产品包从概念到生命周期管理阶段结束所需所有流程的主要活动进行管理。流程分为6个阶段:概念、计划、开发、验证、发布和生命周期。DCP标志着大多数阶段的结束。在每个DCP,PDT/LMT经理完成阶段退出决策评审材料,并向产品线IPMT汇报材料,提出继续前进或终止项目或重新确定方向的建议。
2.2.1 概念阶段
目的是保证PDT根据项目任务书,对市场机会、需求、质量、潜在的技术和制造方法/风险,成本/进度预测和财务影响进行(概要地)评估和归档。
概念决策评审点(CDCP)是概念阶段的终点。
2.2.2 计划阶段
计划阶段的目的是将产品包/解决方案业务计划扩展成详细的产品包定义,启动对开发方法的正式规划,包括完整的产品定义、开发与制造方法、销售与营销计划、项目管理计划、产品支持计划、详细的进度以及财务分析。
计划决策评审点(PDCP)是计划阶段的终点。
2.2.3 开发阶段
包括产品设计、集成和验证、制造工艺设计/实施、性能、技术或构建模块和制造风险评估的各个方面。
开发阶段退出是开发阶段的结束,退出的主要标准是成功进行TR5。
2.2.4 验证阶段
以成功完成内部测试和向制造发布为起点。包括进行硬件/软件压力测试,标准和规格的一致性测试,以及获得专业认证。
验证阶段退出的主要标准是成功进行TR6。
产品线IPMT批准通过可获得性决策评审点(ADCP)或终止项目或重新确定方向。可获得性决策评审是要保证产品包做好发布的准备。
2.2.5 发布阶段
该阶段是以决定继续进入到产品包发布和GA开始的。发布阶段包括达到量产的准备,填充管道和制定最终的盈亏计划。
一般可获得性(GA)是指产品包可以大批量交付给H3C客户的时间。
2.2.6 生命周期阶段
生命周期阶段在GA开始,包括产品生命周期内对产品包营销/销售,生产及服务的监控。在生命周期阶段会出现:停止生产(EOM)检查点,停止销售(EOS)检查点,停止服务与支持 (EOL)检查点。当所有与停止服务及支持相关的活动都完成时,生命周期阶段就结束了。
IPD TR(Technical Review)是指IPD流程中定义的TR1、TR2、TR3、TR4、TR4A、TR5、TR6等7个技术评审点。用于检查IPD实施到一定阶段以后产品的技术成熟度,发现遗留的技术问题,评估存在的技术风险,给出技术上的操作建议。
(1)TR1
在概念阶段CDCP前针对产品包需求和产品概念的评审。TR1重点关注产品包需求的完备性以及选择的产品概念是否满足产品包需求。
(2)TR2
在计划阶段对产品设计规格的评审。TR2重点关注产品设计需求到产品设计规格的完备性。
(3)TR3
TR3是在计划阶段对概要设计(HLD)的评审,确保设计规格已经完全、正确地在概要设计中得到体现。TR3的结果将作为开发阶段的后续详细设计活动是否继续投入资源的根据。
(4)TR4
TR4保证Building Block用于系统级构建之前是完整的。对于一次构建(Build)涉及到的每一个Building Block,应该有且仅有一次TR4对其进行评审。任何不符合规定的情况都应该在TR4问题记录中得到记录,并进行风险评估。
(5)TR4A
TR4A:在SDV完成后,对产品技术上的成熟度进行评估,确保所有存在的问题和风险都进行了评估,并生成了相应的改进计划,以保证供应和制造能力足以支撑初始产品生产活动。
(6)TR5
TR5是在发布给客户前对项目整体状态在设计稳定性和技术成熟度方面的独立评估活动。TR5目的是确保产品符合预定的功能和性能要求,以满足前期确定的产品包需求。
(7)TR6
TR6是一个关注于系统级的评审,确保产品的制造能力已经能适应全球范围内发货的需求。