持续测试(CT)实战经验分享
传统汽车正在向互联网发展
POLELINK
什么是持续测试?
A
持续测试来源于DevOps(Development和Operations)中提倡的CI(持续集成)- CO(持续部署) - CT(持续测试)- CD(持续交付),通过流程和持续集成/持续测试工具平台,自动化“软件交付”,使得构建、测试、发布软件能够更加快捷、频繁和可靠。
POLELINK
汽车行业为什么需要持续测试?
传统汽车软件开发模型中,测试方法包括手动测试和手动编写测试脚本后的自动化/半自动化测试。其特点是以“人”为中心,需要测试工程师重复性的手动测试、不断更新测试脚本或配置、记录测试问题和测试状态跟踪。测试的周期和质量,依赖于测试工程师的数量、经验能力和工具数量。
测试方案简介
系统框架
主要功能
测试流程管理
• 测试项目管理模块、测试需求管理模块、测试用例管理模块、测试任务管理模块、测试缺陷管理模块、测试报告管理模块、远程设备管理模块等
持续验证调度管理
• 测试对象、测试设备调度管理、代码版本库调用管理、测试流程搭建及执行
IDL脚本转换工具集成
• 通过测试数据文件生成测试脚本
测试脚本/测试数据版本控制管理
• 基于GitLab/SVN或自建数据库管理测试脚本/测试数据,构建有效的知识库
数据流引擎驱动测试数据分析
• 基于测试数据进行分析,获得测试结果
测试报告引擎自动测试报告
• 基于测试数据分析结果生成定制测试报告
案例介绍
• 测试计划:根据开发人员提交的软件版本建立对应测试计划
• 测试环境搭建:测试工具链与测试对象连接,满足测试环境要求
• 更新测试用例:建立对应软件版本的测试用例库,并进行版本管理,方便回归测试
• 测试触发:监控开发人员提交状态,提交结束即为测试开始,采用Jenkins管理测试执行的流程
• 测试样件/设备管理:自动从测试样件/设备库中选择可执行测试的环境,提高测试资源的利用率
• 自动化测试用例脚本:根据标准化的测试用例和数据库,自动生成可测试工程
• 数据采集和分析:用自动化测试工程代替测试工程师手动执行测试,既缩短测试周期,又避免了人工测试产生的误测漏测等问题;分析测试数据,自动生成测试报告与测试问题,避免测试工程师手动录入测试问题的重复性劳动
• 测试报告版本管理:测试用例、测试工程、测试报告、测试数据与软件版本相对应,方便测试问题追溯与定位
测试准备
• 测试计划建立:使用北汇自研PAVELINK或者JIRA等测试管理软件建立测试计划,包含测试软件版本信息,测试用例库,测试责任人等
• 更新测试用例:根据新发布的软件版本建立测试用例库,使用GitLab/SVN进行版本管理
• 测试样件/设备管理:管理测试样件/设备状态及测试进度
• 测试环境搭建:测试设备与测试样件进行测试环境调试,以支持自动化测试。测试工具使用Vector总线接口设备和CANoe软件
• Jenkins测试流程管理:配置Jenkins Job,管理测试执行的流程
测试触发
测试执行与测试问题记录
写在最后
1
持续测试不等同于自动化测试,持续测试一系列流程,包含自动化测试,自动化测试是持续测试的一个关键步骤。通过和软件开发迭代在流程上结合,快速发现软件缺陷。
2
采用持续测试的测试方式可以很好地将解决手动测试周期长的问题,提升了测试效率,提高测试人员的生产力。同时对测试输出物与软件开发版本进行控制,符合正向开发和测试管理的要求。
3
持续测试作为可提升测试效率的工具,的确给测试工程师带来“一键式”托管执行测试的工作体验。但作为工具而言,持续测试并不能满足所有的测试场景。首先,持续测试要求可执行的测试用例是可自动化执行的,测试过程中如果需要手动进行参数输入或测试环境的变更,很难达到提升测试效率的效果。其次,需要测试脚本可自动生成或测试脚本不需要修改,面对每次迭代的软件产品,手动编写或者修改测试工程也会给测试人员带来繁重的工作量。
4
持续测试使用的工具链多且复杂,测试系统整体的稳定性需要重点关注。所以是否进行持续测试需要先对测试场景进行分析,也不能为了追求持续性而去舍弃测试的精确性。
往
期
推
荐