为测试管理正名,华为云CodeArts TestPlan的守护之道
摘要:华为云CodeArts TestPlan既有公有云版本,也有下沉到私有云的版本。
本文分享自华为云社区《为测试管理正名,华为云CodeArts TestPlan的守护之道》,作者:云报。
2023年1月5日,华为云CodeArts TestPlan服务正式上线,它沉淀了华为30年高质量的测试工程方法与实践,覆盖测试计划、测试设计、测试执行和测试评估等全流程,能够确保企业协同、高效、可信地开展测试活动,保证产品质量。
今天,我们继续来讲一讲华为云CodeArts TestPlan的故事。
测试“左移”
时光回溯到上个世纪90年代,随着我国经济快速发展,固定电话开始进入寻常百姓家,电话拨号采用按键式,而且还能显示来电号码,这让很多家庭兴奋不已。
当时,华为公司推出了一款具有自主知识产权的经典产品——C&C08程控数字交换机。你知道,它是如何测试同时接入2000门电话的吗?
2000人提前约好在某一天的晚上6点半同时拨打电话,先听听电话有没有杂音,然后再尝试拨通电话,测试完毕后再逐一统计结果。这就是最原始的人工测试,在今天看来似乎是天方夜谭。
在人工测试阶段,由于缺乏测试目标,也没有专业的测试工具,大多数的测试以功能测试为主,性能测试几乎很少涉及。
随着技术的发展,以及测试的规范化、专业化,逐渐规模化的测试活动变得更有计划性,验证软件是否符合需求是测试的主要工作。之后,独立测试团队的出现,使得测试工作更加有序,并开始根据需求写用例,测试贯穿整个软件的生命周期,一些自动化的测试工具也被广泛应用。
测试进入成熟阶段的标志是,大规模自动化测试成为常态,旨在提高效率,在有限的时间和大并发的情况下,更好地满足大规模测试的需求,由此也产生了对端到端测试工具、专项的自动化缺陷管理与闭环工具的迫切需求。
当前,我们正在经历智能化和在测试中充分应用大数据技术的阶段,由数据驱动的测试可有效推动整个测试流程不断优化,产品质量持续改善。
毋庸置疑,测试则是产品质量的生命线。在软件研发中,测试是一个包含计划、准备和测量活动的过程,其目的是确认被测系统的特性,并指出需求和实现之间的差异。是保障软件产品质量、提高产品可靠性的重要手段。
以前,一个新产品的推出,从最初的设计、开发、测试直到上市,测试在其中扮演的是“兜底”的角色,从整个流程上看是产品质量把控的最后一道关。但是现在,随着测试模式的变化,各类企业都在强调全功能团队以及测试的前移。换句话说,测试的作用及发生的时间已经发生了改变,不是产品开发完毕才介入,而是与开发并行,测试前移到了整个研发过程的最前端,即“测试左移”。
在现代化的产品开发模式中,由于需求是实时变化的,因此要求持续测试、持续交付,测试不仅要更早地介入到产品研发过程中,而且要融入企业整个的质量工程,不是按照规格和要求完成测试工作就万事大吉了,将发现的质量问题再反馈给研发人员,而是测试也要主动承担起产品性能或质量属性优化的责任,为其提供优化的方向和指引。
如今,企业已全面步入云时代,从传统的瀑布式开发到敏捷开发,自动化、智能化、大数据技术等已经成了最好的助力和发展趋势。越来越多的软件实现了微服务化,这就要求架构解耦,在交付时间上能够满足软件单独部署和上线的需要。
很多人可能都有过这样的切身体会,之前一两个月才能推出一个新的软件版本,现在开发周期只要两周,甚至更短。研发形态的转变要求测试必须快马加鞭,而且随着产品迭代的持续进行,测式也要如影随行,随时测试、随时发布。在这种情况下,如何做到分层测试、自动化测试,以及按照应用最细颗粒度发布的要求完成测试就成了最大的挑战。
测试随需应变
软件测试已经有四五十年的发展历史。随着软件技术的发展,及其结构、形态的不断变化,测试也在求新求变。
云计算、微服务、组件化等的流行,再加上嵌入式架构的广泛应用,推动了测试技术不断向前演进。原来紧耦合的“一块铁板”式的软件,与现在松耦合、组件化的软件,对于测试的要求肯定大相径庭。微服务化后,每个软件模块能否独立验证,模块间的集成有没有问题,整体系统的可靠性、性能和韧性能否得到充分保障?这些新的需求无疑增加了测试的复杂度。
近些年,新的产品形态不断涌现,比如AI、AR、区块链等,它们和传统的软件是完全不同的。
以AI为例,它的应用场景越来越丰富,包括自动驾驶、物体识别、智能音箱、智能问答等,保证AI产品的质量、可信、可靠,需要更加深入的研究和测试来验证。
除了技术层面的挑战以外,企业对产品质量内涵的认知,也是影响测试演进的一个重要因素。不同的企业因交付的产品形态不同,对于产品质量的把控,以及在测试上投入的多寡程度也是有差异的。
比如,一些互联网企业和创业企业会要求新产品快速上线、尽快变现。因此很多测试是在产品上市之后,以在线的方式广泛邀请用户来参与测试。在很多互联网应用的场景下,这种测试模式是没有问题的,即使在测试中发现了一些问题,可以及时回退,并不会造成严重的负面影响。
但是这种测试模式如果放到制造业或者关系到人民生命财产安全的领域,则是万万行不通的,而是必须在产品研发过程中建立层层的质量防护网,以确保产品上线后的绝对安全和质量可靠。
举例来说,2019年12月,某航空公司新一代载人飞船发射升空。就在运载火箭工作结束后,飞船却出现了故障,最终导致无法与国际空间站对接,不得不提前返回地面。
经调查,因为测试载人飞船软件系统的程序存在严重缺陷,在测试阶段只是将整个飞行过程分成了几个小单元分别进行测试,而没有对飞船进行从发射到国际空间站对接再到着陆的全流程集成测试,才导致了事故的发生。
随着企业的业务规模迅速扩张,软件代码量会越来越大,产品的架构也会趋于复杂,同时组件之间并发的分支项目也会增加,相互之间协调协同的效率就比较低。
为了应对上述挑战,华为致力于通过一种启发式的设计,最大程度提升测试的完备度,避免一些问题流入到现网中,导致事故发生。另外,华为希望通过像华为云CodeArts TestPlan这样的一站式测试管理平台,助力企业轻松验证产品的特性和功能。
华为云CodeArts TestPlan适用于多种场景,既能满足大型企业全功能团队的测试需求,也能很好地支持“双披萨团队”(Two-pizza teams)的测试需求。
CodeArts TestPlan的前世今生
华为云CodeArts TestPlan经历了华为内部应用并反复打磨,然后形成通用的平台和能力,上线华为云对外输出,赋能企业的现代化开发。无论是从技术成熟度、平台的稳定性和适应性,还是应用的商业化、服务的全面性等方面衡量,华为云CodeArts TestPlan完全能够满足各类企业的产品测试需求。
大约在1994~1998年间,当时还是手工测试阶段,华为内部就开始尝试采用测试管理工具,对手工测试用例进行管理。不过,由于华为内部业务部门众多,测试需求各异,各业务线或自建,或采用开源软件,或直接购买商用测试软件,以实现对测试的管理。
众所周知,华为一向视产品质量为生命。但是当时,华为虽然设有质量部,但是在产品出口还缺少一个统一的抓手,即一个权威的、标准化的,能够对测试进行可视化管控的平台。随着业务规模逐渐扩大,协同的要求越来越高,以前在测试管理上各自为政、“野蛮生长”的方式已经不合时宜,华为亟需从整个公司的层面,建立一个统一的测式管理平台。
2004~2005年间,华为从各条产品线抽调了一些精英,成立了测试工具部,负责构建统一的测试管理平台,并且制定了测试管理的相关标准。之后便有了云龙平台,它收编了各个产品线用到的测试管理工具。
华为还在其中融入了对大规模测试用例的管理,包括测试设计、测试执行、测试度量等,从而将整个测试活动可视化地呈现出来。在这个平台之上,“产品质量暴露在阳光之下”,相关各方可以清楚了解别人在做什么,以及质量把控进展到了哪个阶段等。
大约在2015~2016年间,像电力、交通等企业对产品质量的要求越来越高,但市场上缺乏端到端的测试管理平台。华为敏锐地察觉到了这一诉求,从多维度进行综合评估,认为有必要将云龙平台的能力对外输出,以满足更多行业用户的需求。
这之后又经过五六年的完善和打磨,华为云终于在2023年正式发布了CodeArts TestPlan,它能够端到端管理所有的测试活动,不仅包括手工的测试活动,还有大量自动化的测试,并且在所有测试活动结束后能够汇总输出一份完整的报告,从中可以洞察测试迭代的情况以及测试质量等。
以华为云CodeArts TestPlan的发布为里程碑,华为云致力于打造产品质量的“守护神”,以高效、协同、可信的测试管理,守护产品质量之魂。
未来,华为将进一步开放其测试管理平台,比如提供插件市场,更好地对接合作伙伴或第三方公司,引入更多的测试能力,共建测试管理平台,服务更多开发者,打造一个繁荣的开放的测试生态环境。
测试管理的根与魂
测试管理也是有“灵魂”的。华为云CodeArts TestPlan一站式测试管理平台的灵魂就是华为30年来对高质量的严格要求,以及不断积累的相关测试工作方法和实践。
完全自主研发的华为云CodeArts TestPlan的最大特色就是“全”,它覆盖了从测试计划到测试设计、用例、执行、评估的全流程,不仅可以用于小型的敏捷化项目,而且也能支持大规模的,产品架构复杂的多组件、多分支的项目。
组织人员多、人员之间的测试协同效率较低、测试人员流动性大、无法有效沉淀测试资产,以及流程无法固化等是困扰企业开发效率和质量提升的“魔咒”。
华为云CodeArts TestPlan具有五大特性:
- 采用启发式测试策略与设计,测试完备性不再遥不可及;
- 亿级测试资产管理、大规模团队测试协同,保障产品特性不丢失;
- 内置IPD测试流程与规范,让高质量从偶然到必然;
- 全方位测试质量评估,杜绝“盲人摸象”;
- 建立测试双向追溯链,通过过程的可信保障结果可信;
能够实现测试全流程标准化、测试经验复用及基线化,以及测试端到端过程动态实时监控,不仅可以有效保障测试过程可信,而且能够保证产品和服务的高质量交付,破除“魔咒”。
特别值得一提的是,华为云CodeArts TestPlan中内置了IPD测试流程与规范,在测试的全流程中融入了IPD高质量实践精髓,这是其独有的功能。为保障产品研发活动中的测试流程有序、高质量开展,华为在IPD中定义了从需求分析到版本发布间的详细测试活动流程、规范,通过流程规范保障测试验证的高质量。
在IPD方面,华为拥有20多年的技术和经验积累。在测试的不同阶段,比如概念阶段、计划阶段、开发阶段、验证阶段、发布阶段,通过内置的IPD固化了一些“规定动作”。
比如在概念阶段和计划阶段,涉及测试策略、测试需求分析、测试设计等一系列动作;
再比如,在验证阶段,提供系统验证测试来满足质量评估要求,以确定产品最终能否上线。
这些固化的“规定动作”都是经过千锤百炼和实践验证的华为测试经验之大成,能够让测试工作事半功倍。
另外,华为云CodeArts TestPlan在测试报告的呈现上也有自己的独到之处,主要体现在以下四个方面:
- 第一,全面。报告中提供了多个维度的质量指标,包括需求的覆盖率、需求通过率、用例执行率、缺陷指数等,并且能够从功能、性能、可靠性等维度全面评估软件或云服务的质量;
- 第二,报告中融入了华为30年对软件云服务的质量评估经验,这套规范和模型可以让用户更加科学、客观地评估产品,并且让产品的质量可视化、可度量;
- 第三,提供两种测试报告方式,不仅可以实时地评估整个项目的测试质量,而且提供了测试质量看板,让测试人员或开发人员能随时看到当前时刻测试的过程数据以及相关的结果数据,方便他们及时高效地掌握产品的质量及研发的进度和风险;
- 第四,报告非常灵活,看板数据提供了多维度、自定义报表功能,在固定的报表无法满足需求时,用户可以通过自定义的方式,灵活创建一个定制化的看板。
当前,TestPlan还是华为云CodeArts的一项子服务,以充分保障基于CodeArts开发的软件的高质量上市,尽量避免缺陷的产生。
“内外”兼修 高质量交付立竿见影
截至2022年年底,华为云CodeArts TestPlan已经高效支撑了华为超过4万测试人员的测试作业,测试用例月执行超过2亿次,月API调用量超过12亿次,累计管理10亿以上的测试用例,覆盖华为终端、网络、云计算、芯片、汽车等诸多业务场景。
从整体用户反馈来看,采用华为云CodeArts TestPlan之后,在测试设计阶段,效率平均提升30%以上;在测试评估阶段,效率平均提升超过50%。
华为汽车部门原来采用线下方式,通过Excel表格来跟踪产品测试情况,但可追溯能力远远不足。现在包括测试策略、测试车机等在内都采用了华为云CodeArts TestPlan,极大地提升了测试效率和产品质量。从L1到L4的智能驾驶解决方案以及MDC、中控等组件,还有智能座舱等,在产品测试时都采用了华为云CodeArts TestPlan,确保华为与智能驾驶相关的产品和组件都顺利通过了ASPICE的各级认证。
另一个例子,华为数通路由器业务拥有丰富的产品系列,其超大规模、高复杂度的产品测试,需要与之相适应的大规模测试团队和工具。华为云CodeArts TestPlan帮助华为数通路由器产品继承复用十余万存量特性用例,累计管理近百万用例,并且支撑大规模测试团队高效协作,快速开展测试活动,将全量测试执行周期从周缩短至天,并确保了路由器产品高效率、高质量交付。
国内物流行业某头部企业采用了云原生开发模式,400多人的研发团队在测试中主要采用了华为云CodeArts TestPlan的接口测试和性能测试相关服务。结果显示,接口测试速度提升5倍以上,业务全流程的上线时间也从之前平均两天缩短到最快一个小时。
基于华为云CodeArts TestPlan,长安汽车搭建了统一的测试质量平台,实现了测试活动的标准化,以及质量控制的大屏可视化,进一步增强了管控能力,拦截了70%的接口问题,早于用户发现了30%的潜在问题。
测试不仅仅是为了发现问题,更重要的是深度融入产品开发流程,为改进产品的架构设计、提升产品质量添砖加瓦。为此,华为云率先提出了“性能工程”的概念,旨在将性能测试变成一个工程化的场景,让用户对于产品性能的改进有一个历史性的、全面性的把控,从而做出正确的决策。
独特的基因 品质守护无处不在
国内开发测试市场头部效应显著,测试平台提供商主要包括国内主流的云服务商、国外知名的软件平台企业,以及一些专业的测试方案提供商。从横向比较来看,公有云服务商主要是在其公有云上提供核心的测试管理功能,但不具备自动化测试的相关内容,形态较为单一。
国外软件平台企业提供的测试服务主要面向敏捷开发与交付,功能相对简单,主要包括测试计划、测试用例管理,以及一些探索性测试。而那些专业测试方案提供商的服务过于垂直,并不能深度满足企业大规模测试的需求。
华为云CodeArts TestPlan既有公有云版本,也有下沉到私有云的版本。包括中经社在内的很多大型企业都采用了华为云CodeArts TestPlan的私有云版本。
华为云CodeArts TestPlan的初衷,也是希望既能对接开发者以及小微企业,帮助他们实现敏捷开发、持续测试与反馈,同时又能很好地支撑大型企业复杂的开发流程,成为测试管理领域的“金字塔尖”。
与其他测试方案提供商不同,华为云CodeArts TestPlan背后依靠的是华为强大的制造基因,以及30年积累的丰富的产品开发经验。在组网条件复杂,测试形态、测试方案多样的情况下,华为云CodeArts TestPlan按照思维导图的方式输出其测试设计,提供全面而强大的测试管理能力。
比如华为云CodeArts TestPlan独有的内置IPD流程,凝结了华为多年的品控经验,即使在百万级别的用例规模管理中也能做到游刃有余,从而确保产品高质量上线。
产品质量控制贯穿从产品设计到上市的全流程,而华为云CodeArts TestPlan就是无处不在的“守护神”,能够帮助用户全面、高效、精准地开展测试验证活动,提前在研发阶段拦截缺陷,并加速缺陷发现和闭环,从而保障产品上市质量,持续提升满意度。
为测试管理正名,华为云CodeArts TestPlan的守护之道的更多相关文章
- 华为云提供针对Nuget包管理器的缓存加速服务
在Visual Studio 2013.2015.2017中,使用的是Nuget包管理器对第三方组件进行管理升级的.而且 Nuget 是我们使用.NET Core的一项基础设施,.NET的软件包管理器 ...
- 中小企业上云首选,华为云全新云服务器S6性能评测分析
转: 中小企业上云首选,华为云全新云服务器S6性能评测分析 [小宅按]今天,华为云全新弹性云服务器ECS通用计算型云服务器S6(以下简称为"华为云S6云服务器")正式发布,至顶网云 ...
- 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】
原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...
- [转帖]华为鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例
鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例 https://m.ithome.com/html/444828.htm 2019-09-12 15:25IT之家 (阿迷) 今年一月份 ...
- 华为云发布桌面IDE-CodeArts
摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...
- 华为云Stack南向开放框架,帮助生态伙伴高效入云
摘要:CloudBonder的生态社区通过一系列生态项目,解决提交叉组合.架构分层不清晰.运维界面不清晰等问题,简化对接流程,降低生态伙伴对接成本,缩短对接时间. 本文分享自华为云社区<[华为云 ...
- 一图看懂华为云DevCloud如何应对敏捷开发的测试挑战
作为敏捷开发中测试团队的一员,在微服务测试过程中,你是不是也遇到同样困惑:服务不具备独立验证能力.自动化用例开发效率很低等? 华为云DevCloud API全场景测试技术来支招~围绕API的全场景,打 ...
- 用华为云cli,管理华为云服务器的,安全组端口
---[前言]--- 关键字 hcloud 华为 命令行 linux windows powershell 前些天,大家因为华为云,是否应该默认开启端口,大家吵起来了,所以我抽空写了此文.解决问题,缓 ...
- 如何在华为云软件开发云上搭建JavaWeb,Maven项目
本文将使用华为云软件开发云向大家演示如何搭建JavaWeb,Maven项目. 一.相关信息 1.华为云软件开发云简介 华为云软件开发云(DevCloud)是集华为近30年研发实践,前沿研发理念,先进研 ...
- 华为云.NET Core支持情况调查
各大公有云都提供了开发者开发的SDK,今天我们来看看华为云对.NET Core的支持情况怎么样? .NET SDK地址 https://developer.huaweicloud.com/sdk#.N ...
随机推荐
- Git、TortoiseGit中文安装教程,如何注册Gitee账号进行代码提交,上传代码后主页贡献度没显示绿点(详解)
今天给大家分享的是 Git 软件和 TortoiseGit 图形化软件的详细安装教程以及如何在 gitee 上进行代码提交. 首先我也是个刚接触 gitee 的一个小白用户,这些都是自己一边学一边记录 ...
- 『现学现忘』Git基础 — 35、Git中删除文件
目录 1.删除文件说明 2.删除文件操作 (1)仅删除暂存区的文件 (2)完全删除文件 3.本文用到的命令总结 1.删除文件说明 在Git工作目录中要删除某个文件,首先要清楚该文件所处的状态. 若要是 ...
- 微信小程序制作日常生活首页
1.手机上效果预览 不知道为啥上传后是如此的高糊画质(手机画质很好) 微信小程序日常生活首页手机效果演示 2.开发者工具效果图 3.真机调试 4.项目的目录结构 5.核心代码 5.1 app.json ...
- LeetCode------斐波那契数列(2)
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/fei-bo-na-qi-shu-lie-lcof 写一个函数,输入 n ,求斐波那契(Fibo ...
- cmd中pip加速的方法
临时加速: pip install dlib -i https://pypi.tuna.tsinghua.edu.cn/simple/ 永久加速: 在user文件夹里新建pip文件夹,再建pip.in ...
- pod(八):pod的调度——将 Pod 指派给节点
目录 一.系统环境 二.前言 三.pod的调度 3.1 pod的调度概述 3.2 pod自动调度 3.2.1 创建3个主机端口为80的pod 3.3 使用nodeName 字段指定pod运行在哪个节点 ...
- Codeforces Round #781(C. Tree Infection)
Codeforces Round #781 C. Tree Infection time limit per test 1 second memory limit per test 256 megab ...
- ValidList
package com.dlzb.enterprising.config; import javax.validation.Valid; import java.util.*; public clas ...
- 如何在JavaScript中使用for循环
前言 循环允许我们通过循环数组或对象中的项并做一些事情,比如说打印它们,修改它们,或执行其他类型的任务或动作.JavaScript有各种各样的循环,for循环允许我们对一个集合(如数组)进行迭代. 在 ...
- CAN总线数据链路层(一)
1.通信机制 发送报文. 1.首先检测Bus状态,空闲 则发送 报文且回读 2.线与机制,若有两个节点同时发报文 报文结构: 通过ID进行仲裁(规则 ...