当前位置:网站首页>持续测试(CT)实战经验分享
持续测试(CT)实战经验分享
2022-07-07 16:19:00 【Polelink北汇信息】
前言
传统汽车行业正在向互联网汽车方向发展
在汽车行业向“新四化”趋势的推动下,传统分布式的EE架构向域集中式架构发展,伴随着域控制器概念的提出,软件也将根据相应功能域分类集成,域控制器的代码量也与日俱增。SOA的开发模式实现各软件功能模块间解耦,帮助软件团队缩短开发周期,快速迭代软件版本。OTA升级技术将软件快速部署到各个域控制器,为软件产品的快速迭代提供保障。随着开发模式的变革,迭代测试变得周期短而频繁,持续测试将为软件产品提供快速的质量保证。
什么是持续测试?
持续测试来源于DevOps(Development和Operations)中提倡的CI(持续集成)- CO(持续部署) - CT(持续测试)- CD(持续交付),通过流程和持续集成/持续测试工具平台,自动化“软件交付”,使得构建、测试、发布软件能够更加快捷、频繁和可靠。
汽车行业为什么需要持续测试?
传统汽车软件开发模型中,测试方法包括手动测试和手动编写测试脚本后的自动化/半自动化测试。其特点是以“人”为中心,需要测试工程师重复性的手动测试、不断更新测试脚本或配置、记录测试问题和测试状态跟踪。测试的周期和质量,依赖于测试工程师的数量、经验能力和工具数量。
持续测试的方法以人、测试流程、测试工具的结合,通过一系列测试工具链的组合与自动化测试工程结合,提交新版软件时即为测试流程的开始,快速找到软件缺陷,解决测试和开发在时间上的矛盾,帮助软件开发团队实现软件产品速度与质量的目标。
本文将从持续测试角度,分享基于Jenkins和Vector软硬件实现的实战经验。
测试方案简介
系统框架
主要功能
测试流程管理
- 测试项目管理模块、测试需求管理模块、测试用例管理模块、测试任务管理模块、测试缺陷管理模块、测试报告管理模块、远程设备管理模块等
持续验证调度管理
- 测试对象、测试设备调度管理、代码版本库调用管理、测试流程搭建及执行
IDL脚本转换工具集成
- 通过测试数据文件生成测试脚本
测试脚本/测试数据版本控制管理
- 基于GitLab/SVN或自建数据库管理测试脚本/测试数据,构建有效的知识库
数据流引擎驱动测试数据分析
- 基于测试数据进行分析,获得测试结果
测试报告引擎自动测试报告
- 基于测试数据分析结果生成定制测试报告
案例介绍
基于Jenkins和Vector工具实现CAN/CANFD/LIN/FlexRay/ETH网络和诊断测试。
持续测试的核心在于把自动化测试的各个环节和流程自动地、智能地组织起来,并提供状态查询、通知等服务,实现步骤如下:
- 测试计划:根据开发人员提交的软件版本建立对应测试计划
- 测试环境搭建:测试工具链与测试对象连接,满足测试环境要求
- 更新测试用例:建立对应软件版本的测试用例库,并进行版本管理,方便回归测试
- 测试触发:监控开发人员提交状态,提交结束即为测试开始,采用Jenkins管理测试执行的流程
- 测试样件/设备管理:自动从测试样件/设备库中选择可执行测试的环境,提高测试资源的利用率
- 自动化测试用例脚本:根据标准化的测试用例和数据库,自动生成可测试工程
- 数据采集和分析:用自动化测试工程代替测试工程师手动执行测试,既缩短测试周期,又避免了人工测试产生的误测漏测等问题;分析测试数据,自动生成测试报告与测试问题,避免测试工程师手动录入测试问题的重复性劳动
- 测试报告版本管理:测试用例、测试工程、测试报告、测试数据与软件版本相对应,方便测试问题追溯与定位
以下将从测试准备、测试触发、测试执行与测试问题记录三个方面详细介绍搭建测试环境的步骤。
测试准备
测试准备过程将测试执行中需要使用到的各种工具进行配置,包含如下过程:
- 测试计划建立:使用北汇自研PAVELINK或者JIRA等测试管理软件建立测试计划,包含测试软件版本信息,测试用例库,测试责任人等
- 更新测试用例:根据新发布的软件版本建立测试用例库,使用GitLab/SVN进行版本管理
- 测试样件/设备管理:管理测试样件/设备状态及测试进度
- 测试环境搭建:测试设备与测试样件进行测试环境调试,以支持自动化测试。测试工具使用Vector总线接口设备和CANoe软件
- Jenkins测试流程管理:配置Jenkins Job,管理测试执行的流程
测试触发
自动化测试流程通过Jenkins Job进行配置管理。Jenkins Job可通过手动、定时、监控GitLab/SVN版本或通过Jenkins API触发调用等方式触发。本次方案通过监控测试样件软件版本,读取到软件升级到指定版本后,使用Jenkins API调度方式触发测试流程的开始。
测试执行与测试问题记录
Jenkins Job定义一个测试流程,包含自动化测试脚本的生成、测试执行、测试问题记录。
自动化测试脚本生成:通过解析数据库文件生成测试脚本
- 测试执行:通过CANoe软件COM接口调用的方式实现测试用例工程的选择、测试执行、测试数据和测试结果的回读
- 测试问题记录:回读到的测试结果自动上传到测试问题管理系统,使用北汇自研的PAVELINK平台更新测试用例的测试结果,上传测试数据和新建测试问题
- Jenkins具有邮件发送功能,在测试执行结束时,可将测试结果等信息通过邮件发送给相关责任人。
持续测试不等同于自动化测试,持续测试一系列流程,包含自动化测试,自动化测试是持续测试的一个关键步骤。通过和软件开发迭代在流程上结合,快速发现软件缺陷。
写在最后
采用持续测试的测试方式可以很好地将解决手动测试周期长的问题,提升了测试效率,提高测试人员的生产力。同时对测试输出物与软件开发版本进行控制,符合正向开发和测试管理的要求。
持续测试作为可提升测试效率的工具,的确给测试工程师带来“一键式”托管执行测试的工作体验。但作为工具而言,持续测试并不能满足所有的测试场景。首先,持续测试要求可执行的测试用例是可自动化执行的,测试过程中如果需要手动进行参数输入或测试环境的变更,很难达到提升测试效率的效果。其次,需要测试脚本可自动生成或测试脚本不需要修改,面对每次迭代的软件产品,手动编写或者修改测试工程也会给测试人员带来繁重的工作量。
持续测试使用的工具链多且复杂,测试系统整体的稳定性需要重点关注。所以是否进行持续测试需要先对测试场景进行分析,也不能为了追求持续性而去舍弃测试的精确性。
北汇信息紧跟市场风向,在持续测试方面也积累了很多的经验,除了基于Jenkins的持续测试方案,北汇信息也自研了基于CANoe软件的测试管理工具,期待与行业中的同仁进行交流。
参考文献
【1】 聊聊汽车OTA测试:概述篇
【2】 SOA架构/测试阶段接口描述语言转换方案
【3】 中国汽车基础软件发展白皮书2.0
【4】 Jenkins权威指南
作者:北汇信息-疯狂的皮皮
边栏推荐
- 三仙归洞js小游戏源码
- 物联网OTA技术介绍
- 4种常见的缓存模式,你都知道吗?
- 通过 Play Integrity API 的 nonce 字段提高应用安全性
- TaffyDB开源的JS数据库
- Chapter 3 business function development (user login)
- Use seven methods to enhance all the images in a folder
- Afghan interim government security forces launched military operations against a hideout of the extremist organization "Islamic state"
- Tips for this week 131: special member functions and ` = Default`
- 【C语言】字符串函数
猜你喜欢
Target detection 1 -- actual operation of Yolo data annotation and script for converting XML to TXT file
Ansible learning summary (9) -- ansible loop, condition judgment, trigger, processing failure and other task control use summary
你真的理解粘包与半包吗?3分钟搞懂它
Chapter 3 business function development (safe exit)
Chapter 3 business function development (user login)
In depth understanding of USB communication protocol
讨论| 坦白局,工业 AR 应用为什么难落地?
通过 Play Integrity API 的 nonce 字段提高应用安全性
元宇宙带来的创意性改变
Yarn capacity scheduler (ultra detailed interpretation)
随机推荐
Tear the Nacos source code by hand (tear the client source code first)
socket编程之常用api介绍与socket、select、poll、epoll高并发服务器模型代码实现
mui侧边导航锚点定位js特效
More than 10000 units were offline within ten days of listing, and the strength of Auchan Z6 products was highly praised
Deep learning machine learning various data sets summary address
Mobile app takeout ordering personal center page
Chapter 3 business function development (user access project)
Yearning-SQL审核平台
Summary of evaluation indicators and important knowledge points of regression problems
<代码随想录二刷>链表
How to implement safety practice in software development stage
磁盘存储链式的B树与B+树
[network attack and defense principle and technology] Chapter 4: network scanning technology
What are the financial products in 2022? What are suitable for beginners?
不能忽略的现货白银短线操作小技巧
手机版像素小鸟游js戏代码
[principle and technology of network attack and Defense] Chapter 7: password attack technology Chapter 8: network monitoring technology
USB通信协议深入理解
用存储过程、定时器、触发器来解决数据分析问题
How to open an account for wealth securities? Is it safe to open a stock account through the link