本帖最后由 北汇信息 于 2022-7-15 17:40 编辑

TPT作为PikeTec公司的嵌入式软件测试工具,具有很高的扩展性和便捷性。随着软件测试日趋复杂并且需求多样化,TPT不断改进以满足与时俱进的要求。您可以在所有开发阶段使用TPT进行测试。无论是简单的单元测试还是复杂的系统测试,TPT都能够使得测试变得快捷、简单和直观。

那么,TPT18是如何让测试变得简单快捷呢?

TPT18更新总体预览:

1、新增形式化需求评估,实现需求和评估强相关;
2、更灵活的需求管理,支持自定义功能需求;
3、基于TASMO工具箱,自动生成满足MC/DC要求的测试用例;
4、新增覆盖度统计工具TPT Coverage;
5、丰富MATLAB平台功能;
6、新增给定激励信号的方式(TPT内置函数);
7、Batch Runner界面和功能更新;
8、ASAM XiL及Vector系列平台相关更新。

其他:

1、新增SimulinkReal-Time XiL 平台,支持新一代Speedgoat硬件;
2、CarmakerPlatform优化接口交互,并且当前测试可通过IPG可视化;
3、新增评估函数,TPT.getConstant和TPT.isConstant(),支持任意表达式;
4、全局评估可添加到Assesslet中,可针对任意平台激活;
5、测试执行前后,可添加Python Script,实现自定义功能;
6、在TestCase Details/Description中可导出评估条件;
7、TestCase Summary中可显示链接的需求ID。
……

详细介绍:

一、形式化需求评估

想不想只编辑需求而不写评估?现在TPT18形式化需求评估能够满足这一要求。

形式化需求具有简洁、明确和可评估的特点。在TPT18中,可将导入的Excel需求翻译成形式化需求评估。形式化需求不仅仅是靠链接关系完成的需求覆盖,而是更直接的对需求进行评估。

比如,灯控模型需求SPEC-17,可以翻译成如下形式化需求评估。

image.png

1 形式化需求评估

测试结果如下:

image.png

2 测试结果

二、更灵活的需求管理

TPT18前,功能需求只能从外部导入,不能在TPT中更改。虽然这样能保证需求的统一,但也为功能需求的更改带来不便。在TPT18中,可直接在Requirements中更改/新建功能需求/子功能需求,并且该需求不会随着功能需求的导入而改变。

image.png

3 功能需求更新

三、TASMO支持MC/DC自动生成测试用例

测试覆盖度不能达到要求怎么办?这时候可以考虑使用TASMO。TASMO可根据模型/代码结构生成测试用例,提高测试覆盖度。

TPT18除了支持CC和DC覆盖外,还支持MC/DC覆盖,更容易达到理想覆盖度。

例如模型中OR模块,如须满足MC/DC,须包含如下情况:

image.png

4 模型中的Or结构

1、所有输入为False;
2、一个输入为True,其余均为False。

在TPT18中,可分析出如下结构,并根据此结构自动生成测试用例。

image.png

5 TPT18 Or模块结构

四、新增代码覆盖度统计工具——TPT Coverage

TPT在统计覆盖度时,提供了多种选择,在测试时按照自身情况决定即可。

在模型阶段,可以调用Targetlink、CTC++ for Targetlink和Simulink V&V统计覆盖度。

在代码阶段,除了CTC++和GNU gcov外,还提供了TPTCoverage统计覆盖度。

image.png

6 TPT Coverage

image.png

7 覆盖度报告

image.png

8 覆盖度报告

五、丰富MALTAB平台功能

(1)MATLAB/Simulink Platform加速运行模式

你能想象一条测试用例运行后的数据达到将近10G吗?

超大的数据量也就意味着一个字——慢,而且是超级慢。

现在,这种情况得到缓解,TPT18的“MATLAB/Simulink Platform”新增选项“Simulation Mode”,可使用“Normal”、“Accelerator”、“Rapid Accelerator”和“Software in the loop”模式运行测试,可加快测试运行速度。

Tip:针对测试用例数量较多情况,TPT支持多核模式加速运行。

image.png

9 加速运行模式

(2)检测特定系统覆盖度

TPT18前,如果需要分析特定子层级覆盖度时,需要将其它子层级注释掉。但是,如果子层级之前存在交互,需要进行接地等调试,较为复杂。现在,TPT18免去这一烦恼,因为可以直接排除掉不想检测的子层级。

image.png

10 Advanced setting

image.png

11 选择特定子系统

(3)直接导入Stateflow中间变量

TPT18前导入Stateflow中间变量需要手动新建并设置Import Measurements,还需在测试平台中加入脚本。TPT18的可直接点击“offline logging”导入,方便快捷。

image.png

12 导入Stateflow 中间变量

(4)自动生成TPT Simulink Function Handler

当模型中使用了Simulink Function,但是测试目标层级的 Function Caller与Simulink Function不在同一层级,运行测试时会报错(找不到SimulinkFunction)。

面对此种情况,TPT18在测试框架中可自动生成TPT Simulink Function Handler。

image.png

13 TPT Simulink Function Handler

六、丰富给定激励信号的方式(TPT内置函数)

TPT18增加了激励信号的给定方式,例如:TPT.impulse()、TPT.step()、TPT.sinwave()等,更方便实现想要的信号。

image.png

14TPT内置函数

七、Batch Runner界面和功能更新

当有多个TPT工程需要运行时,可以使用Batch Runner同时运行。

在TPT18中,更新了界面,并且增加了如下步骤:

▲TPT API-script
▲Execute Tests
▲Generate Testframe
Generate Overview RePort

支持如下平台生成测试框架:

▲AUTOSAR
▲C/C++
▲MATLAB
▲ASCET@FUSION
ASCET

image.png

15 Batch Runner

八、ASAM XiL及Vector相关更新

(1)扩展了ASAM XiL支持

服务项中增加了ASAM XiL Diag Port,可直接在测试用例中对DTC进行操作,如下:

▲Read DTCs
▲Clear DTCs
▲Read/Write Values
Execute Services

image.png

16 增加的服务步骤

(2)支持导入DBC中枚举类型信号

在DBC中如果定义并关联了Value Table,TPT18支持导入。

image.png

17 导入枚举

(3)XCP通信控制

不仅在测试用例执行前可以控制XCP通信,而且在测试用例中也可以控制,方便进行测试。

image.png

18 XCP控制

image.png

19 测试用例中控制

篇幅所限,不能一一介绍TPT18的改变,如想了解更多内容,请点击此处。

北汇信息携手PikeTec,共同促进软件测试发展。欢迎各位同学提出宝贵意见,让软件测试变得越来越“方便”和“简单”!