MISRA中文网站 > 新手入门 > MISRA规则严重级别怎么划分 MISRA规则严重级别和整改优先级怎么对应
教程中心分类
MISRA规则严重级别怎么划分 MISRA规则严重级别和整改优先级怎么对应
发布时间:2026/07/21 10:23:40

  在TESSY中,测试对象的创建与识别不完整的排查,重点在于让TESSY获得完整的待测源码和编译环境,再通过模块分析将可测试的函数识别出来。当测试对象没有完整显示时,问题通常并不在于测试用例本身,而是源文件的范围、头文件的路径、宏定义、条件编译或者筛选规则,与正式工程没有保持一致。排查时应当先查看分析日志,再去检查预处理之后的源码内容。

  一、TESSY测试对象怎么创建

 

  TESSY中的测试对象,一般对应待测源文件里面的函数或方法。创建时不需要逐条输入函数名称,而是先建立测试模块、添加源文件,再执行模块分析,由软件将当前模块中能够进行单元测试的对象识别出来。

 

  1、建立测试模块

 

  在【Test Project】中创建Test Collection,再在测试集合下建立Module。

 

  Module用来存放待测源码、编译环境、测试对象、接口定义和测试用例。模块的名称可以按照软件组件、功能单元或者源文件的用途来设置,这样可以避免到了后期出现多个模块名称相近,却无法判断各自对应哪一部分源码的情况。

 

  2、添加待测源文件

 

  进入模块的【Sources】设置,把当前测试单元需要分析和编译的源文件添加进去。

 

  不必将整个软件工程一次性全部放进同一个模块。相关的头文件通常是通过包含路径参与解析的,只有确实需要编译和链接的源文件才加入模块。如果源码范围过大,外部函数、全局变量和接口之间的关系就会变得复杂。

 

  3、生成测试对象

 

  选中模块之后,执行【Analyze Module】。

 

  分析完成以后,被识别到的函数会显示在模块下方。这个时候还需要检查参数、返回值、全局变量和外部函数,确认哪些数据属于输入,哪些结果需要验证,以及哪些外部调用需要使用桩函数来替代。

 

  二、TESSY测试对象识别不完整怎么排查

 

  测试对象识别不完整,常见的表现包括部分函数没有显示出来、函数参数缺失、全局变量未被识别,或者模块分析之后只生成了很少量的对象。遇到这种情况,不要反复新建模块,而应当先把分析过程中最早出现的错误解决掉。

 

  1、查看模块分析信息

 

  打开【Message Console】,检查模块分析所产生的错误和警告。

 

  如果存在头文件找不到、数据类型无法识别、宏展开失败或者语法解析异常等情况,就应当优先处理排在最前面的那个错误。基础类型如果没有被正确解析,后面的函数声明和接口变量可能会接连缺失,只盯着最后一条报错去处理,通常不会有什么效果。

  2、补齐编译环境

 

  在测试环境中检查【Compiler Includes】和【Compiler Defines】。

 

  包含路径应当覆盖项目公共头文件、芯片支持包以及编译器相关的目录,宏定义也要与正式工程的实际构建条件保持一致。如果目标函数受到条件编译的控制,而TESSY环境中没有定义相应的宏,那么该函数就会在预处理阶段被移除,无法成为测试对象。

 

  3、检查对象筛选规则

 

  在模块设置中检查【Test Object Include List】。

 

  确认其中是否保留了函数名称、函数前缀或者匹配规则。当筛选范围设置得过窄时,只有符合条件的函数才会被显示出来。从其他测试模块复制之后,也可能遗留下旧项目中的筛选内容。可以先将筛选暂时取消,再重新分析模块,观察缺失的函数是否能够恢复。

 

  三、源码能够编译但仍识别不全怎么办

 

  正式工程能够编译通过,并不等于TESSY获得了完全相同的预处理环境。编译器扩展语法、静态内联函数、宏生成函数,以及头文件中的实现代码,都有可能影响测试对象的识别结果。

 

  1、检查预处理结果

 

  查看TESSY实际用于分析的预处理源码,确认目标函数仍然存在,相关的类型和函数声明也没有被条件编译删除。如果目标函数已经从预处理结果中消失,就应当回头检查宏定义、包含文件和编译选项。如果函数依然存在,再继续检查函数的修饰方式以及对象筛选条件。

 

  2、处理特殊代码结构

 

  重点检查静态内联函数、模板、命名空间、编译器扩展关键字、宏生成函数和嵌入式汇编。在必要的时候,可以在测试环境中补充兼容定义,帮助解析器去识别编译器专用的语法,但不要为了生成测试对象而直接去修改正式的业务逻辑。如果函数全部都是在头文件中实现的,还需要确认该头文件确实已经进入了当前模块的分析范围。

 

  3、重新分析测试模块

 

  在完成对源文件范围、头文件路径或者宏定义的调整之后,在模块上重新执行【Analyze Module】。

 

  分析结束之后,再去检查测试对象的列表以及接口的变化。当参数类型、全局变量或者外部函数发生变化时,已有的测试数据可能需要重新映射。在调整之前,应当先保存好模块和测试用例,不要直接把整个模块重置,以免将已经建立起来的测试资产清除掉。

  总结

 

  TESSY测试对象的创建方法,以及测试对象识别不完整时的排查思路,可以按照建立测试模块、添加待测源文件、执行模块分析、检查测试接口这样的顺序来进行。测试对象缺失的时候,应当重点查看分析信息、头文件路径、宏定义和对象筛选规则,再结合预处理的结果去检查条件编译与特殊的代码结构。将TESSY的分析环境与正式工程的编译环境对齐之后,测试对象和接口才能被完整地识别出来。

135 2431 0251