LDRA Testbed软件静态分析_常见问题及处理

系列文章目录

LDRA Testbed软件静态分析_操作指南
LDRA Testbed软件静态分析_自动提取静态分析数据生成文档
LDRA Testbed软件静态分析_Jenkins持续集成_(1)自动进行静态分析的环境搭建
LDRA Testbed软件静态分析_Jenkins持续集成_(2)配置邮件自动发送静态分析结果
LDRA Testbed软件静态分析_软件质量度量
LDRA Testbed软件静态分析_常见问题及处理
LDRA Testbed软件单元测试_操作指南
LDRA Testbed软件单元测试_常见问题及处理
LDRA Testbed软件集成测试_操作指南
LDRA Testbed软件集成测试_常见问题及处理
粉丝问题解答系列文章… …
其他持续更新中… …



前言

通过前面的几篇文章,LDRA Testbed软件静态分析的内容基本讲解完了,本篇文章将针对使用Testbed进行软件静态分析的常见问题进行介绍。


一、如何屏蔽特定的静态分析违规项

在软件静态分析过程中,我们经常会遇到以下几种场景:
1、静态分析报出的违规项实际是Testbed工具误报的(所有静态分析工具都有误报的情况,这点要理解);
2、对于有些违规项,人工核查后确认不会有风险,不想对这些代码进行修改;
3、对于历史维护的软件项目,或者项目已进行到尾声才进行软件静态分析,此时检查出的有些违规项的修改牵涉较大,担心修改后引入缺陷或不确定的情况。
以上情况可以通过在源代码中报违规的地方增加注释来规避,此后Testbed再次静态分析时,将不会再报出该违规,避免每次静态分析后都重复查看这些违规项。操作方式如下:
1、针对某一处的某一特定规则的违规:
使用“LDRA_INSPECTED加规则编号”来规避该处的特定规则,如:

int a = 0;
float b = 10.123;
a = b;    /*LDRA_INSPECTED 435 S*/

2、指定某一大段代码不进行静态分析:
使用“LDRA_NOANALYSIS”来指定此后的代码不进行所有静态分析,直至“LDRA_ANALYSIS”恢复为止,如:

/* LDRA_NOANALYSIS */
源程序代码……
/* LDRA_ANALYSIS */

二、如何查看“Code Review”报告

以一个“Code Review”报告为示例。首先,最上面是所有规则的违反情况汇总,如下所示:
在这里插入图片描述
其中Number of Violations表示所有被静态分析的源代码中违反该条规则的个数;LDRA Code表示违反规则的编号;Mandatory Standards表示强制检查项、Required Standards表示必要检查项、Advisory Standards表示建议检查项,下方是这条规则的概要描述。
1、点击Mandatory/Required/Advisory Standards列的规则英文描述,可以看到该条规则更详尽的解释。
在这里插入图片描述
2、点击Number of Violations列的数字(该数字表示扫描的文件中有多少处违背该规则,如下图中的蓝色数字8表示,违背规则“489 S:Insufficient space for operation.一共有8处),会弹出详细的违规列表,格式为“数字 – 文件名 – 函数名”,数字表示该违规项在其在源代码文件的所处行数。
在这里插入图片描述
往下翻,还有一个函数级别的违规总结,如下图所示:
在这里插入图片描述

三、如何设置默认的代码编辑器

TestBed工具默认的代码编辑器为TextPad,查看起来不是很方便,可以根据自己的需要进行更改,比如更改为使用NotePad++、VSCode、Source Insight等。配置方式如下:
在TBvision软件的Configure下选择Select Source Code Browser:
在这里插入图片描述
在弹出的对话框中选择相应的代码编辑器即可(若没安装,需要先自行安装)。
在这里插入图片描述

四、Window11不兼容问题

window11系统执行静态分析时,可能会因为兼容性报错(错误提示如下图所示),此时可运行一次SetIpGuardRegistry.exe程序,然后重新执行静态分析即可。(没有SetIpGuardRegistry.exe的朋友,可以后台私信找我要)
在这里插入图片描述

五、路径不支持中文

Testbed不支持中文路径,这点一定要注意。不管是新建工程的源码路径,还是导出用例的路径,都不支持中文。
切记这一点,不然报错可能会让你一头雾水,排查费时费力。(一般会报没有这些文件的权限)


总结

好了,到此为止,LDRA Testbed软件静态分析的内容已经全部讲完,如果有问题,欢迎私信提问(不经常登录,回复可能不及时,见谅)。下一篇文章将开始讲解如何使用Testbed进行单元测试。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 20:46:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 20:46:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 20:46:01       87 阅读
  4. Python语言-面向对象

    2024-04-13 20:46:01       96 阅读

热门阅读

  1. SpringBoot的启动原理

    2024-04-13 20:46:01       37 阅读
  2. 什么是UWB定位技术,国产UWB芯片厂有哪些?

    2024-04-13 20:46:01       36 阅读
  3. C++矩阵

    2024-04-13 20:46:01       34 阅读
  4. openEuler-22.03 软件包安装

    2024-04-13 20:46:01       39 阅读
  5. Linux中账号登陆报错access denied

    2024-04-13 20:46:01       38 阅读
  6. 【使用Linux的基础和小技巧】

    2024-04-13 20:46:01       43 阅读
  7. ActiveMQ 03 整合SpringBoot

    2024-04-13 20:46:01       39 阅读
  8. 补上ROS键盘遥控机器人的keys_to_twist_ramps.py文件

    2024-04-13 20:46:01       44 阅读
  9. 【牛客SQL快速入门】SQL基础(二)

    2024-04-13 20:46:01       43 阅读