在刚刚结束的 2022 云栖大会龙蜥操作系统峰会上,工业和信息化部电子第五研究所高级工程师李冬博士做了《一站式自动化测试平台的探索与实践》的主题演讲,以下为演讲实录。
大家好!今天我将与大家分享一下在龙蜥社区的一站式自动化测试平台的一些探索和实践。在过去的 4-5 年里,我们测试机构的工作受到了一些挑战,主要特点不仅表现在测试对象的突然增多,例如操作系统、数据库、云平台等,而且对效率和质量的要求也提升了很高。这对传统手动测试的效率和质量带来了一些挑战。
我们在传统测试模式下很难去适应效率和质量的新要求的原因,总结来说有以下 6 点:
- 运行平台多样化:测试对象的运行平台多样化,运行环境异构、兼容性差。
- 测试对象多样化:包括计算机、交换机、操作系统、数据库、中间件、云平台等。
- 执行手段多样化:手动执行测试内容与自动化测试内容融于一个平台实现。
- 结果分析多样化:对测试结果进行的综合分析、多样化展示以及横向对比也面临多样化挑战。
- 部署模式多样化:测试对象对部署的要求也有多样化的模式,包括有网环境、无网环境、公有云、专有云等。
- 测试工具多样化:面对不同测试对象的测试工具也有多样化的趋势。
由此,我们判定需要一个自动化的测试服务平台来帮助解决这些问题。
基于以上诉求,我们对现有业界的一些自动化测试工具平台做了一些调查,发现应用起来有些困难。
第一是运行环境固化。成熟的自动化测试平台大都是基于 X86 环境上搭建的,对特殊的指令集和硬件平台的适配具有一些挑战。
第二是功能模块固化。面向软硬件企业的自动化平台一般会跟自身产品密切相关,因此在接口、UI、性能都做了固化,很难适应多对象多工具多需求的自动化。
第三是测试场景固化。自动化测试平台大多服务于业务流,比较难支撑多类型测试需求。
第四是业务耦合固化。随着持续集成、持续交付,测试理念的深入,自动化测试平台跟业务平台的耦合度比较高,很难剥离成第三方可用的平台。
这些挑战使我们产生了研发一个能够适应业务流程和测试需求的一站式自动化测试平台的想法。
我们定义了一下自动化测试平台的开发愿景。我们希望这个平台可以支持全过程管理(测试需求、测试用例、测试套件、测试执行、结果分析等)、异构环境运行、多环境混合部署(云上、物理机、集群、单机)、多类型测试套件的集成和结果采集分析、多人工和自动化混合测试方式、多对象执行时可独立管理,多任务并行。
通过一系列调研,我们在与龙蜥社区的交流过程中发现,社区里面已经有一个能够满足我们自动化测试需求的基础和工具。当前,龙蜥社区的 T-One 开源测试平台源于阿里内部项目,已经集成了各种主流的测试工具多达 70 多种,该平台支持了 30 多个团队和 40 多个项目的质量协作,每天有 500 多台测试机器在并发执行各种类型的测试。T-One 开源后,除了服务龙蜥社区之外,T-One 也被多家企业和测评机构的数十个项目在用。T-One 历经多年的迭代开发,截至目前,job 累计运行时长达 930 万小时,是一个非常成熟稳定的质量协作平台。
通过以上了解,我们认为把 T-One 平台作为自动化测试平台,将是一个解决我们多样化需求的捷径。基于这个想法,我们在 2021 年 12 月份加入了龙蜥社区 T-One 测试平台 SIG(Special Interest Group)组,希望通过开放合作的方式来研发攻关。
目前为止,我们的工作取得了以下几个进展:
第一是测试管理系统。我们基于 T-One 平台研发了一套测试管理系统,称之为TestLib(test library),是一个包含了测试规范管理、测试需求管理、测试方案管理、测试用例管理、测试任务管理、测试设备管理等功能的测试管理系统。
第二是 Agent 平台适配。为了让 T-One 能够适应多个运行环境,我们开发了一系列适配的 Agent,能够适配目前的 LoongArch、S_W64、ARM(麒麟 990)指令集架构 CPU 平台,KylinOS、UOS 操作系统。
第三是提交 Issues 共 27 项。在研发过程中,我们参与社区,帮助 T-One 找到一些 BUG,提交了 27 项有效的 Issues,组织 SIG 成员召开讨论超 30 次,真正解决了一些问题。
接下来简单介绍一下 T-One 自动化测试平台。T-One 是一个在业界真正支持全场景、一站式的自动化质量协作平台,打通从测试设计、测试计划、用例集成、测试工具认证、测试部署、测试执行、结果分析、测试报告等整个测试流程闭环。我们在该平台原有的 Testfarm 上面做了 TestLib 的开发,在包含 T-One 所有功能的基础上增加了数据展示和分析。T-One 测试平台有以下几个明显特点:
- 第一:一站式服务。打通了整个测试流程,测试服务一步到位。
- 第二:独立租户。支持独立租户测试空间的部署,实现数据隔离。
- 第三:通用的用例集成、认证模式。平台可以提供通用的用例集成模式,可以集成各行业的测试用例(手动用例、自动化用例、基准工具等),这些工具都可以集成到一个测试项目里面去。同时提供便捷的工具认证流程,方便测评体系建立。
另外,特色功能还包括了基于云的测试、多环境支持、测试计划、测试结果分析,还可以根据需要定制测试报告。
T-One 测试平台从开源上下游关系来说分为四个版本,分别是开源版、社区版、企业版和机构版,分别定位为不同的用途。开源版属于源头上游,提供最基础的功能,支持独立部署,其他三个版本都是开源版的下游版本。社区版,为龙蜥社区用户提供云上部署,可对提交的代码做持续的动态自动化测试,提供一些高可用的支持,实时运维保障。企业版是定制版,可以部署自动化测试平台,能够为企业的产品研发和自动迭代做服务,提供高效的支撑。机构版面向的是像五所这样的三方测试机构,可用来管理所有的评测业务。
T-One 测试平台有四大组件,如图所示,包含:
- Testfarm 是一个测试数据结果的集成平台。
- T-One 平台是集中部署,独立部署,能够协调测试主机、执行机构、被测对象的一个平台。
- TestLib 是对整个测试计划、方案、任务的管理。
- tone-cil 是通用测试工具集成框架。
如图是 T-One 自动化测试平台的主界面,可以建立不同的 workspace 空间,在每个 workspace 创建工作任务,去发布和执行。
如图是 TestLib 测试需求管理板块,可以根据创建的任务去分配测试用例,分配测试环境和工具。
如图是 T-One 结果分析模块,测试后可做各种维度的分析,还可以出定制测试报告。
关于下一步计划,我们希望持续完善平台的相关功能:
第一是对测试工具认证模块的开发,主要是对工具的正确性和可靠性做可用性管理。这其实是我们利用平台高效接入工具,利用平台的测试资源和对象资源对工具做一个计量和校准。
第二是 AI 技术的引入,对测试结果进行精准分析。
第三是下一代质量测试技术的引入,比如说模糊测试、性能测试与智能优化、代码分析扫描、质量数据跟踪分析等技术。
除此之外,T-One 作为一个开源通用测试平台,具有很多独特的功能和灵活的测试场景支持,目前在业内已经具有一定的影响力,我们希望更广泛去做推广应用,鼓励社区合作伙伴和开发者去使用,面向中小企业做技术赋能,帮助他们做测试和质量保障。联合院校科研院所对一些细节的自动化测试技术、测试工具的研发做一些合作。也希望有兴趣的伙伴们积极地加入和参与到龙蜥社区 T-One 测试平台 SIG 组的工作中来,我们一起维护这个平台,使它变得更好更优秀。
相关链接地址:
T-One SIG 组链接地址:
https://openanolis.cn/sig/t-one
T-One 首页:
https://tone.openanolis.cn/Testfarm
数据看板:
https://testfarm.openanolis.cn/
视频回放:
关于龙蜥操作系统峰会课件获取方式:
【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。
—— 完 ——
加入龙蜥社群
加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!