首页 > 其他分享 >从TPT看汽车测试术语(上)

从TPT看汽车测试术语(上)

时间:2023-06-07 10:34:32浏览次数:40  
标签:术语 基于 生成 TPT 自动 测试 测试用例

 

汽车世界在不断发展,“软件定义的汽车”等新术语证明了软件对当今汽车的重要性。无论是MiL、SiL、PiL、HiL、还是单元测试、集成测试,汽车软件测试的世界有很多技术术语,本文将从一款专业的汽车软件测试工具TPT出发,带大家从实际应用的角度掌握汽车测试术语。

 

 

什么是测试对象或被测系统(SUT, System under test)?

 

 

测试对象、被测系统和测试元素通常是同义词。根据ISTQB,一个测试对象一般被定义为“待测试的工作产品”。因此,测试对象可以是:

 

  1. 一个控制单元,

  2. 几个控制单元组成的网络

  3. 几个集成网络组成的系统,

  4. 一辆整车,

  5. 任何其他被测对象

 

TPT是全球知名的基于模型的嵌入式系统测试工具,用于电控系统软件应用层功能测试。不论是单元模型还是几个控制单元组成的集成模型,又或是整个系统模型,TPT都可以加载并导入接口,为后续的测试做准备。

 

 

什么是动态测试(Dynamic testing)?

 

 

动态测试是测试对象的执行。在动态测试中,创建并执行测试用例,用测试数据激励测试对象。激励导致测试对象要么执行计算,要么改变其状态。在动态测试中记录测试对象的反应,并与期望值进行比较。如果反应与期望相等,则认为测试用例通过;如果不相等,就认为用例失败。

 

TPT就是一款基于模型的动态测试工具,可以一键执行测试用例,模型仿真结束后TPT回采测试数据,并将其与期望值进行对比,自动输出测试结果。

 

既然提到了执行测试用例,那么——

 

 

什么是测试用例(Test case)?

 

 

一个测试用例总是至少包含以下两部分信息:

1. 定义如何激励测试对象的测试数据。

2. 测试对象的期望值,它定义了被测对象在接收到测试激励后有哪些计算/状态。

其中,针对第一项给定信号激励往往需要测试人员有着丰富的测试经验。一个专业的测试工具也能帮助测试人员实现事半功倍的效果。

 

TPT就支持非常多种测试用例搭建方式,可实现测试场景的可视化,也能够实现基于等价类/边界值/遍历等方法自动生成测试用例。

 

1) 基于测试步骤手写测试用例

 

TPT支持测试人员针对测试过程进行手写测试用例,测试人员可以通过“直接定义”、“测试用例列表”以及“引用”自然语言等方法进行测试用例的编写。提供 Signal preview,直观显示信号在整个测试过程中的曲线情况,掌握整个测试过程,避免出现测试用例人为错误。

 

 

图1.基于测试步骤搭建测试用例

 

 

在实际项目中,针对简单的测试需求,可以使用测试列表的方法来进行测试用例搭建,比常规的Excel 测试用例更简洁更直接。

 

2)基于State的图形化测试用例搭建

 

在实际项目中,针对给出的需求,要考虑条件满足时的测试(Positive Testing)和条件不满足时的测试(Negative Testing),在TPT中可以设置State,为信号设定不同的取值状态,还可以设置跳转条件、增加执行路径,这样通过切换信号状态和执行路径就能覆盖不同的测试场景。

 

 

图2. 基于State搭建图形化测试用例

 

 

采用State建立测试用例,除了可以更方便快捷的搭建测试用例之外,还可以大幅度提高测试用例的可读性,这对于测试用例的后期维护和评审带来了极大的便利。

 

3)TPT中提供一系列自动化的测试用例生成工具箱,可以确保整个测试过程更加便捷、高效,实现测试过程标准化:

 

基于等价类:ISO26262 针对模型的测试方法提到了等价类测试。TPT针对这一要求,设计了等价类生成工具箱,这个工具箱支持根据用户的等价分类一键生成测试用例,避免了传统方式上的人工重复操作,测试效率得到极大的提升。

 

 

图3.为信号创建等价区间

 

 

 

图4.基于等价类自动生成的测试用例

 

 

基于数值范围:在针对接口测试时,往往要针对数据的数值范围进行测试,以验证模型接口是否正确。针对这样的测试用例,TPT 可以根据数值范围自动生成测试用例,用户只需要关注数据范围以及步进长度,就能实现数值范围内的遍历。同时可以结合边界值及数据精度自动生成符合边界值要求的测试用例,来测试边界是否出现不符合预期功能的情况。

 

 

图5.设置接口的数据范围以及步进长度

 

 

 

图6.基于数值范围自动生成的测试用例

 

 

基于TASMO工具箱:能够分析模型结构并自动生成测试用例,会采用最少数量的测试用例来最大化遍历模型。同时TASMO还能够作为结构覆盖度统计工具,帮助统计当前运行的测试用例或测试用例集的覆盖情况,并且生成相应的结构覆盖度统计报告。

 

在TPT19中,还支持基于形式化需求自动生成测试用例,用户只需要从导入的需求中提取关键字,TPT就能自动覆盖与需求相关的场景,生成对应的测试用例。

 

 

图7.基于形式化需求自动生成的测试用例

 

 

基于状态机组合:在项目中,针对一些逻辑类的功能测试,从需求的角度,一般就是一些输入条件的排列组合。TPT 可以基于这些条件排列组合,自动生成测试用例,这可以的极大的提升测试效率。如图8示例模型,三个输入信号需遍历true/false的取值并进行排列组合,此时可使用基于状态机组合的方式,一键自动生成8条测试用例。

 

 

图8.基于状态机组合自动生成用例示例模型

 

 

图9.基于状态机组合自动生成测试用例

 

 

在实际的项目应用中,可以自由选择和搭配上述搭建测试用例的方式,满足功能测试的需求。多种自动生成用例的方法能够让测试人员“解放双手”,避免重复性工作,提高测试效率和质量。

 

有了测试用例,还需要针对测试对象编写合理的期望值,这个过程我们也称为测试评估。那么如何省时省力评估自动生成的测试用例呢?TPT为我们提供了解决方案,具体内容将在下篇介绍。

 

 

总结

 

 

本文借由基于模型的动态测试工具TPT带大家了解了测试对象、测试用例和动态测试这些术语的含义,并且介绍了TPT在编写和自动生成用例方面的优势。

 

敬请期待下篇:什么是测试级别和测试环境?以及TPT在不同测试级别和测试环境中有着什么功能?

 

翻译

搜索

复制

<iframe height="240" width="320"></iframe>

标签:术语,基于,生成,TPT,自动,测试,测试用例
From: https://www.cnblogs.com/polelink/p/17462618.html

相关文章

  • 通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
    1.算法仿真效果vivado2019.2仿真结果如下:2.算法涉及理论知识概要viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi译码一般应用在约束......
  • 野火STM32第35章 SDIO读写测试 实验过程犯的错误:卡在while(SD_GetStatus() != SD_TRAN
    看完书,我自己重新写了一遍代码。写代码过程中,对DMA以下标绿的部分很不以为意。1voidSD_DMA_TxConfig(uint32_t*DMA_Tx_Buf,uint32_tBufferSize)2{3DMA_InitTypeDefDMA_InitStruct;45/*ClockEnable-----InGPIOConfig*/67/*Flag......
  • 雄迈300万低功耗无线摄像机拆机测试分析
    今日收到一台雄迈300万低功耗无线摄像机,对它进行拆机测试分析,看是否有什么值得学习的地方。(一)设备外观结构外观:一个太阳能充电板两个wifi天线一个摄像头一个PIR透镜(二)芯片组成主处理器:50V200SD1148_224609flash型号:FM25Q128Awifi芯片:海思Hi3861L充电芯片:SG......
  • 通过状态机方法实现基于FPGA的维特比译码器,包含testbench测试文件
    1.算法仿真效果vivado2019.2仿真结果如下: 2.算法涉及理论知识概要       viterbi译码算法是一种卷积码的解码算法。优点不说了。缺点就是随着约束长度的增加算法的复杂度增加很快。约束长度N为7时要比较的路径就有64条,为8时路径变为128条。(2<<(N-1))。所以viterbi......
  • Jmeter-依赖登录的接口测试
    JMETER接口测试问题解决二之后续接口请求依赖登录接口的操作-知识在于点滴的积累-博客园(cnblogs.com)问题现象:必须登录才能测试其他接口解决办法:    用到了http授权管理器和httpcookie管理器。注意:  要先判断当前的登录的token是在header中的Authorizat......
  • Web安全-渗透测试-基础知识04
    Web源码WEB源码在安全测试中是非常重要的信息来源,可以用来代码审计漏洞也可以用来做信息突破口,其中WEB源码有很多技术需要简明分析。比如:获取某ASP源码后可以采用默认数据库下载为突破,获取某其他脚本源码漏洞可以进行代码审计挖掘或分析其业务逻辑等,总之源码的获取将为后期的安......
  • Yolov5训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法
    问题:train训练得出的P\R\map全部为0上网寻找寻找答案,大部分给出的原因解释如下:①文件夹格式(名称和架构)有问题,这属于基本内容,不应该出错的。②pytorch和cuda版本不对应。关于这部分可以参考链接:https://blog.csdn.net/jhsignal/article/details/111401628 和 https://www......
  • 测试2
    request从哪来浏览器发送HTTP请求消息后,wsgi会将请求消息封装成request对象,urls拿到request对象会传递给视图函数视图函数返回字页面字符串后,会发送给wsgi.py解析封装,然后在返回给浏览器  request的方法request.method:获取请求的方式Django默认开启防止csr......
  • jmeter登录测试
     1、先添加线程组2、添加httpcookie管理器3、添加http信息头管理器-------将头部信息添加进入 4、添加http请求默认值----将公共类的地址填入 5、建立连接数据库 6、测试是否能请求到数据库  7、添加http请求-----将参数用csv格式进行传参  8、添......
  • 接口测试|postman发送POST请求
    Postman发送POST请求postman发送POST请求示例:微信公众平台创建用户标签接口,业务操作如下:1、打开微信公众平台,微信扫码登录:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login2、打开微信开放文档,找到用户管理-用户标签管理的接口信息:https://developers.weixi......