从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在不同测试级别和测试环境中有着什么功能?

 

posted @ 2023-06-07 10:22  北汇信息  阅读(62)  评论(0编辑  收藏  举报