用例篇 | 单元测试用例复用到集成测试?Testlet Library来助力(上)
作为一名测试工程师,在做MiL测试时,编写测试用例的效率影响整个测试项目的进度,如何有效提升编写测试用例的效率,是大家都关心的问题。
TPT作为一款自动化测试工具,提供了很多提高搭建测试用例效率的方法,比如自动生成测试用例。除此以外,TPT还提供了Testlet Library,可以复用Testlet,以及将一个工程的测试用例复用到另外一个工程。
应用场景一:单元测试的用例复用到集成测试
按照功能安全的要求,单元测试之后要进行集成测试,那单元的测试用例能够一定程度上复用到集成测试吗?在TPT中引入了Testlet Library的概念。
Testlet Library是一个TPT项目文件,它可以包含一个完整的TPT项目,或者包含或不包含sub-testlets的单个testlet。Testlet Library可以同时在多个项目中使用。简言之,Testlet Library可以引用另外一个TPT工程,或者某个testlet。
借由Testlet Library,可以将单元测试的用例复用到集成测试,减少重复搭建相同用例的时间,提高测试效率。Demo模型如下图所示,该模型有两个subsystem,已完成单元测试,将要进行集成测试。
1.激活Testlet Libraries
在菜单栏Incubation中选择Enable Testlet Libraries,将该功能激活。
2.状态机的搭建
集成测试工程的状态机,以单元工程的名称命名,每个单元测试的工程,都建立对应的状态机。
3.设置为Library testlet
在上一步建好的状态机上右键,选择Delete Content,将其Content删除,在弹出的窗口中,选择Library,并点击Open…选择要参考的工程的路径。
转换完成的状态机右下角带有蓝色小箭头表示,此时TPT会打开参考的Library工程。
4.信号mapping
将信号做好mapping,把单元测试和集成测试的接口参数等互相匹配。对于Vehicle这个单元,在单元测试阶段eng_trq是Input,在集成测试时变成不可赋值的Local,需要在声明编辑器中添加一个相对的local量,以便该单元测试工程的用例可以运行。
5.组合测试用例
将Vehicle也按照第四步中方法建立好对应的状态机后,就可以在集成测试工程的状态机上选择单元工程的测试用例。例如,CruiseControl选择status_cc_3,Vehicle选择ramp。
这样就可以将单元测试的测试用例复用到集成测试,大大节省重复编写相同测试用例所需的时间,大家快来试试吧!
应用场景二:高度重复的测试步骤
编写测试用例时,大家往往会遇到一些典型的场景,他们需要多步才能完成,却在多个工程中会使用,比如调度模块。
在TPT中模拟调度信号(调度周期为20ms),需要这样几步操作。
同一个ECU中可能包含多个调度周期为20ms的subsystem,在做单元测试时,每个测试工程都需要编辑这部分状态机,此时Testlet Library就可以大大减少这部分重复工作所需的时间。下面我来介绍TPT如何使用该功能复用测试用例。
1.搭建状态机
将调度模块的状态机搭建好,编辑好其Variants。
2.将状态机封装为Testlet Library
在刚刚编辑好的状态机上右键,选择convert to Testlet Library,将其转换为Testlet Library,选择保存的位置并命名。
3.在其它工程中使用Testlet Library
在另一个工程中新建空白状态机,右键,选择Delete Content,将其Content删除,在弹出的窗口中,选择Library,并选择上一步中生成的Testlet Library路径。
转换完成的状态机右下角带有蓝色小箭头表示,此时TPT会打开参考的Library工程。
在当前工程的状态机上右键,选择“Channel/Parameter Map”进行当前工程和Library的信号mapping,到此已经完成。
完成之后即可在新的测试工程中完整复用该状态机及其变种,提高我们编写测试用例的效率。感兴趣的大伙快来试试吧!
总结
本文主要介绍了Testlet Library的两种应用场景:
1. 单元测试的用例复用到集成测试;
2. 高度重复的测试步骤。
除此以外,测试评估也可以一定程度上从单元测试复用到集成测试,敬请期待下篇:评估篇!
相关文章
- .NET 项目集成 OAuth2 登录最全面的、最方便的框架
- 权限管理系统之项目框架搭建并集成日志、mybatis和分页
- Meter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第1部分
- 如何提高 PHP 代码的质量?第三:端到端 / 集成测试
- windows本地自动集成代码+SSH服务器配置
- Jenkins部署python-flask后端项目,持续集成(jinkins配置python虚拟环境)
- 81. 采用 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子
- SAP UI5 应用开发教程之八十一 - 采用 OPA5 进行 SAP UI5 集成测试(Integration Test)的一个例子试读版
- Atitit.mybatis的测试 以及spring与mybatis在本项目中的集成配置说明
- Spring 集成 redistemplate
- 【SpringBoot笔记29】SpringBoot集成RabbitMQ消息队列
- 【SpringBoot笔记16】SpringBoot集成Quartz实现定时任务功能
- 华为海外女科学家为您揭秘:GaussDB(for MySQL)云栈垂直集成的力量有多大?
- Spring集成RabbitMQ-必须知道的几个概念
- k41.第十七章 K8s运维篇-DevOps 持续集成 持续部署 (一)
- 怎么创建账户Crowd 和 JIRA、Confluence、Fisheye and Crucible、GitLab共享账户已经集成登入
- 技术分享 | Jenkins 持续集成体系介绍
- Pytest自动化测试教程22-优质集成实践
- web自动化测试从入门到持续集成【保姆级教程】
- websocket接口自动化集成pytest测试框架
- 一文3500字教你Postman+Newman+Git+Jenkins实现接口自动化测试持续集成
- 持续集成这样做,App自动化测试效率提高50%
- SpringBoot集成mybatis
- Lifecycle for overriding binding, validation, etc,易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试。
- 全干工程师神器 - Jmeter 09 - Jmeter持续集成介绍及轻量级接口自动化测试框架
- 全干工程师神器 - Jmeter 10 - Jmeter持续集成介绍及轻量级接口自动化测试框架(思维导图)
- Jmeter自动化测试系列- Jmeter + Ant +Jenkins 持续集成