工信部电子五所李冬:龙蜥社区一站式自动化测试平台T-One的探索和实践|2022云栖龙蜥实录

简介: 龙蜥社区的一站式自动化测试平台的一些探索和实践。

在刚刚结束的 2022 云栖大会龙蜥操作系统峰会上,工业和信息化部电子第五研究所高级工程师李冬博士做了《一站式自动化测试平台的探索与实践》的主题演讲,以下为演讲实录。

640 (15).png

大家好!今天我将与大家分享一下在龙蜥社区的一站式自动化测试平台的一些探索和实践。在过去的 4-5 年里,我们测试机构的工作受到了一些挑战,主要特点不仅表现在测试对象的突然增多,例如操作系统、数据库、云平台等,而且对效率和质量的要求也提升了很高。这对传统手动测试的效率和质量带来了一些挑战。

640 (51).png

我们在传统测试模式下很难去适应效率和质量的新要求的原因,总结来说有以下 6 点:

  • 运行平台多样化:测试对象的运行平台多样化,运行环境异构、兼容性差。
  • 测试对象多样化:包括计算机、交换机、操作系统、数据库、中间件、云平台等。
  • 执行手段多样化:手动执行测试内容与自动化测试内容融于一个平台实现。
  • 结果分析多样化:对测试结果进行的综合分析、多样化展示以及横向对比也面临多样化挑战。
  • 部署模式多样化:测试对象对部署的要求也有多样化的模式,包括有网环境、无网环境、公有云、专有云等。
  • 测试工具多样化:面对不同测试对象的测试工具也有多样化的趋势。

由此,我们判定需要一个自动化的测试服务平台来帮助解决这些问题。

640 (52).png

基于以上诉求,我们对现有业界的一些自动化测试工具平台做了一些调查,发现应用起来有些困难。

第一是运行环境固化。成熟的自动化测试平台大都是基于 X86 环境上搭建的,对特殊的指令集和硬件平台的适配具有一些挑战。

第二是功能模块固化。面向软硬件企业的自动化平台一般会跟自身产品密切相关,因此在接口、UI、性能都做了固化,很难适应多对象多工具多需求的自动化。

第三是测试场景固化。自动化测试平台大多服务于业务流,比较难支撑多类型测试需求。

第四是业务耦合固化。随着持续集成、持续交付,测试理念的深入,自动化测试平台跟业务平台的耦合度比较高,很难剥离成第三方可用的平台。

这些挑战使我们产生了研发一个能够适应业务流程和测试需求的一站式自动化测试平台的想法。

640 (53).png

我们定义了一下自动化测试平台的开发愿景。我们希望这个平台可以支持全过程管理(测试需求、测试用例、测试套件、测试执行、结果分析等)、异构环境运行、多环境混合部署(云上、物理机、集群、单机)、多类型测试套件的集成和结果采集分析、多人工和自动化混合测试方式、多对象执行时可独立管理,多任务并行。


通过一系列调研,我们在与龙蜥社区的交流过程中发现,社区里面已经有一个能够满足我们自动化测试需求的基础和工具。当前,龙蜥社区的 T-One 开源测试平台源于阿里内部项目,已经集成了各种主流的测试工具多达 70 多种,该平台支持了 30 多个团队和 40 多个项目的质量协作,每天有 500 多台测试机器在并发执行各种类型的测试。T-One 开源后,除了服务龙蜥社区之外,T-One 也被多家企业和测评机构的数十个项目在用。T-One 历经多年的迭代开发,截至目前,job 累计运行时长达 930 万小时,是一个非常成熟稳定的质量协作平台。

640 (54).png

通过以上了解,我们认为把 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 次,真正解决了一些问题。

640 (55).png

接下来简单介绍一下 T-One 自动化测试平台。T-One 是一个在业界真正支持全场景、一站式的自动化质量协作平台,打通从测试设计、测试计划、用例集成、测试工具认证、测试部署、测试执行、结果分析、测试报告等整个测试流程闭环。我们在该平台原有的 Testfarm 上面做了 TestLib 的开发,在包含 T-One 所有功能的基础上增加了数据展示和分析。T-One 测试平台有以下几个明显特点:

  • 第一:一站式服务。打通了整个测试流程,测试服务一步到位。
  • 第二:独立租户。支持独立租户测试空间的部署,实现数据隔离。
  • 第三:通用的用例集成、认证模式。平台可以提供通用的用例集成模式,可以集成各行业的测试用例(手动用例、自动化用例、基准工具等),这些工具都可以集成到一个测试项目里面去。同时提供便捷的工具认证流程,方便测评体系建立。


另外,特色功能还包括了基于云的测试、多环境支持、测试计划、测试结果分析,还可以根据需要定制测试报告。

640 (56).png

T-One 测试平台从开源上下游关系来说分为四个版本,分别是开源版、社区版、企业版和机构版,分别定位为不同的用途。开源版属于源头上游,提供最基础的功能,支持独立部署,其他三个版本都是开源版的下游版本。社区版,为龙蜥社区用户提供云上部署,可对提交的代码做持续的动态自动化测试,提供一些高可用的支持,实时运维保障。企业版是定制版,可以部署自动化测试平台,能够为企业的产品研发和自动迭代做服务,提供高效的支撑。机构版面向的是像五所这样的三方测试机构,可用来管理所有的评测业务。


T-One 测试平台有四大组件,如图所示,包含:

  • Testfarm 是一个测试数据结果的集成平台。
  • T-One 平台是集中部署,独立部署,能够协调测试主机、执行机构、被测对象的一个平台。
  • TestLib 是对整个测试计划、方案、任务的管理。
  • tone-cil 是通用测试工具集成框架。

57.jpg

如图是 T-One 自动化测试平台的主界面,可以建立不同的 workspace 空间,在每个 workspace 创建工作任务,去发布和执行。

640 (58).png

 

如图是 TestLib 测试需求管理板块,可以根据创建的任务去分配测试用例,分配测试环境和工具。

640 (59).png

 

如图是 T-One 结果分析模块,测试后可做各种维度的分析,还可以出定制测试报告。

640 (60).png

关于下一步计划,我们希望持续完善平台的相关功能:

第一是对测试工具认证模块的开发,主要是对工具的正确性和可靠性做可用性管理。这其实是我们利用平台高效接入工具,利用平台的测试资源和对象资源对工具做一个计量和校准。

第二是 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/

视频回放:

https://openanolis.cn/video/


关于龙蜥操作系统峰会课件获取方式:

【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。


—— 完 ——

加入龙蜥社群

加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!

640 (61).png

相关文章
|
22天前
|
人工智能 JavaScript 前端开发
自动化测试框架的演进与实践###
本文深入探讨了自动化测试框架从诞生至今的发展历程,重点分析了当前主流框架的优势与局限性,并结合实际案例,阐述了如何根据项目需求选择合适的自动化测试策略。文章还展望了未来自动化测试领域的技术趋势,为读者提供了宝贵的实践经验和前瞻性思考。 ###
|
19天前
|
运维 监控 持续交付
自动化运维在现代数据中心的应用与实践####
本文探讨了自动化运维技术在现代数据中心中的应用现状与实践案例,分析了其如何提升运维效率、降低成本并增强系统稳定性。通过具体实例,展示了自动化工具如Ansible、Puppet及Docker在环境配置、软件部署、故障恢复等方面的实际应用效果,为读者提供了一套可参考的实施框架。 ####
|
20天前
|
运维 监控 Devops
自动化运维实践:打造高效的DevOps流水线
在软件开发的快节奏中,自动化运维成为提升效率、确保质量的关键。本文将引导你理解自动化运维的价值,通过实际案例分享如何构建一个高效、可靠的DevOps流水线。我们将从持续集成(CI)开始,逐步深入到持续部署(CD),并展示代码示例来具体说明。准备好让你的运维工作飞跃式进步了吗?让我们开始吧!
|
23天前
|
jenkins 测试技术 持续交付
自动化测试框架的搭建与实践
在软件开发领域,自动化测试是提升开发效率、确保软件质量的关键手段。本文将引导读者理解自动化测试的重要性,并介绍如何搭建一个基本的自动化测试框架。通过具体示例和步骤,我们将探索如何有效实施自动化测试策略,以实现软件开发流程的优化。
50 7
|
27天前
|
机器学习/深度学习 人工智能 自然语言处理
智能化软件测试:AI驱动的自动化测试策略与实践####
本文深入探讨了人工智能(AI)在软件测试领域的创新应用,通过分析AI技术如何优化测试流程、提升测试效率及质量,阐述了智能化软件测试的核心价值。文章首先概述了传统软件测试面临的挑战,随后详细介绍了AI驱动的自动化测试工具与框架,包括自然语言处理(NLP)、机器学习(ML)算法在缺陷预测、测试用例生成及自动化回归测试中的应用实例。最后,文章展望了智能化软件测试的未来发展趋势,强调了持续学习与适应能力对于保持测试策略有效性的重要性。 ####
|
27天前
|
敏捷开发 Devops 测试技术
探索自动化测试之美:从理论到实践
在软件开发的海洋中,自动化测试犹如一座灯塔,指引着项目向着质量和效率的彼岸。本文将扬帆起航,从自动化测试的意义出发,穿越工具选择的海域,停靠在实战演练的岛屿,最终抵达持续集成的港湾。我们将通过一个具体的代码示例,体验自动化测试的魅力,并分享如何将这些实践应用到日常的软件质量保证过程中。
|
25天前
|
机器学习/深度学习 数据采集 人工智能
智能化运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的崛起背景,深入分析了其核心概念、关键技术、应用场景及面临的挑战,并对比了传统IT运维模式,揭示了AIOps如何引领运维管理向更高效、智能的方向迈进。通过实际案例分析,展示了AIOps在不同行业中的应用成效,为读者提供了对未来智能运维趋势的洞察与思考。 ####
61 1
|
26天前
|
数据可视化 测试技术 API
软件测试中的自动化测试框架选择与实践
在当今快节奏的软件开发环境中,自动化测试成为了确保软件质量和加速交付的关键。本文将探讨自动化测试的重要性,并比较几种流行的自动化测试框架,包括Selenium、Appium和TestComplete。文章还将提供一些最佳实践和案例研究,以帮助读者更好地理解和实施自动化测试策略。
|
26天前
|
敏捷开发 前端开发 Java
软件测试中的自动化测试框架选择与实践
在当今软件开发生命周期中,自动化测试已成为提升软件质量和开发效率的关键手段。本文旨在探讨自动化测试框架的选择标准及其在实际项目中的应用实践。通过对主流自动化测试框架的分析比较,结合具体案例,本文将阐述如何根据项目需求和团队特点选择合适的自动化测试工具,并分享实施过程中的经验教训。
32 1
|
28天前
|
测试技术 持续交付 UED
探索自动化测试的奥秘:从理论到实践
在软件开发的世界中,自动化测试如同一束明灯,照亮了质量保证之路。本文不仅深入浅出地讲解了自动化测试的基本概念和必要性,还通过实际案例展示了如何将理论知识转化为实践操作。无论你是初学者还是有经验的开发者,这篇文章都将为你提供宝贵的指导和启示,让你在自动化测试的旅程上走得更远、更稳。