打开网易新闻 查看更多图片

前言

随着汽车电子技术的不断发展和普及,汽车电子系统的复杂度不断增加,对汽车电子系统的测试要求也越来越高,传统的测试方法已经无法满足对系统功能和性能的全面测试需求。TPT作为一种灵活、高效的测试工具,能够帮助测试工程师快速编写满足各类需求的测试用例,有效提高测试效率和覆盖率。

为了满足汽车行业日益增加的测试需求,走在测试技术前沿,TPT也在不断成长,以适应新的测试需求和挑战。

更新亮点

2.1形式化需求

在TPT 19时我们已经体验到了形式化需求的高度自动化,在此基础上TPT 20支持MiL、SiL、PiL、HiL阶段所有平台使用形式化需求自动生成测试用例(例如:MATLAB、AUTOSAR、Lauterbach、CANoe、VeriStand等),这一优化无疑会对我们的测试质量和效率的提升有很大帮助。

另外,形式化需求的编写也得到了优化,提供了一些新的步骤以便于满足各类需求。

例如:当需要的测试结果是检测两个信号是否相等时,新增的‘Shall Signal Compare’步骤就可直接满足这一需求。

打开网易新闻 查看更多图片
图 1 新增步骤示例

形式化需求还新增一种生成未通过测试用例功能(满足功能需求输入,未得到期望结果),可以通过在TASMO自动生成测试用例界面选择开启该功能。

打开网易新闻 查看更多图片
图 2 选择生成Failed测试用例

选择生成Failed测试用例后,生成界面会显示哪些需求存在未通过的情况,通过分析模型/代码,这样就可以快速发现/定位问题啦。

打开网易新闻 查看更多图片
图 3 形式化需求自动生成用例界面

2.2自动生成测试用例

除形式化需求自动生成测试用例有更新外,其他测试用例自动生成也做了优化改进。

以‘Generate Test Cases from Equivalence Classes’为例:

我们现在可以选用等价类单个随机值做接口测试,在用边界值方法设计测试用例的时候选取三点边界值,从映射中检索量化数据。

打开网易新闻 查看更多图片
图 4 选择测试方式
打开网易新闻 查看更多图片
图 5 选择映射

在TPT 20中,我们不再需要通过复杂的配置组合去实现多类测试用例的生成,而是可以通过简单选择直接生成所需测试用例。

另外TPT 20还针对组合方式和生成用例形式提供了多个类型来满足我们测试的多种工况。

组合方式

Single value:单个信号的单个代表为一组。

Pair two values:选择一对信号为一组。

Combine values:选择所需信号的代表值为一组。

步骤列表

Embedded:将所有组合作为嵌入信号步骤的示例点嵌入一个步骤列表。

Merged:将组合合并到一个用例中,在各组合间设置等待时间。

Separated:为每个组合单独生成一个测试用例。

打开网易新闻 查看更多图片
图 6 信号组合和用例形式选择

新增的'Generate Test Cases for Interface Testing' 功能是同时支持'Generate Test Cases from Equivalence Classes'和'Generate Test Cases from Value Ranges'的功能生成测试用例,可以更好的实现功能安全要求的接口测试和边界值测试。

打开网易新闻 查看更多图片
图 7 Generate Test Cases for Interface Testing

2.3AUTOSAR

现在AUTOSAR新增TPT Coverage(TASMO)覆盖度统计方式,该统计方式可以直接使用并查看代码的SC、CC、DC、MC/DC覆盖率,无需另外购买商用覆盖度统计工具,避免繁琐的配置过程,节约成本的同时提高测试效率。

打开网易新闻 查看更多图片
图 8 AUTOSAR覆盖度设置

自动生成完成后,执行相应测试用例,可以直观的看到代码结构的覆盖情况。

打开网易新闻 查看更多图片
图 9 代码覆盖度报告查看

同时,AUTOSAR还支持了TASMO自动生成测试用例,并且提供了新的覆盖度标准‘Function coverage’,它满足了功能安全集成测试阶段的覆盖度统计要求,以便测试人员更好地查看代码中的函数是否执行。

打开网易新闻 查看更多图片
图 10 Generate Test Cases for C/C++ or AUTOSAR

新功能

3.1项目元素共享

当一个项目有多个TPT工程时,可以通过在子项目中设置父项目,将父项目的声明、命名数据类型、映射、函数和需求与多个子项目共享。

打开网易新闻 查看更多图片
图 11 设置父项目

为了提高效率,将一个模型的功能分给不同的人测试时,可以通过此方法共享测试元素,分别进行需求测试,当父项目更新时,父项目中的调整也将应用于所有子项目。

打开网易新闻 查看更多图片
图 12 共享元素

3.2Function Wizard改进

‘Channel steps’ and‘ Parameter steps’ 现在都可以使用TPT函数,例如 :TPT.rampgradient()。此外,现在还可以为所有支持的整数数据类型生成Asymptote Functions 和 Ramp Functions以满足我们更复杂和多样的测试需求。

打开网易新闻 查看更多图片
图 13 Function Wizard

3.3Python 3.0

TPT 20现在可支持Python 3.0用于测试评估。

打开网易新闻 查看更多图片
图 14 新增功能函数

相比之前,TPT不仅可以使用Python 3.0来编写评估,Python 2.0在使用上也有优化。

举例:

现在可以将两个“TPTNumpy.array()”对象用“==”进行比较,也支持了几个与时间相关的信号的并行分配。

打开网易新闻 查看更多图片
图 15 示例

3.4TPT项目文件的差异和合并

TPT 20支持TPT项目文件的比较和合并。通过’Diff and Merge view’视图,可以比较两个加载的TPT项目文件,并将偏差从一个文件转移到另一个文件。

打开网易新闻 查看更多图片
图 16 对比项目文件

在测试的过程中,大家肯定避免不了会尝试修改各种设置和用例等来实现测试结果,这一过程也许会产生多个版本的项目文件,待测试成功后就可以使用该功能查看我们修改过的内容并做出总结,以便下次应用。

3.5TPTBIN文件优化

在TPT 20中,优化了文件存储形式。相比前期版本缩小了文件大小,节省了空间,提高了测试效率。

如图所示,相同的文件在TPT 19中显示为6KB,但是在TPT 20中为3KB,显著缩小了文件大小。

打开网易新闻 查看更多图片
图 17 TPT 20的BIN文件
打开网易新闻 查看更多图片
图 18 TPT 19的BIN文件

总结

TPT 20的新功能就先介绍到这里了,每一次的更新和优化都是为了更好满足我们的需求和功能实现,给我们带来新的感受和体验,如果各位想要进一步了解TPT,欢迎联系我们,也希望能给我们带来新的建议和反馈。