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软件集成测试_常见问题及处理
粉丝问题解答系列文章… …
其他持续更新中… …


文章目录

  • 系列文章目录
  • 前言
  • 一、如何屏蔽特定的静态分析违规项
  • 二、如何查看“Code Review”报告
  • 三、如何设置默认的代码编辑器
  • 四、Window11不兼容问题
  • 五、路径不支持中文
  • 总结


前言

通过前面的几篇文章,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进行单元测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615323.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode刷题之移除元素(C语言版)

Leetcode刷题之移除元素(C语言版) 一、题目描述二、题目解析 一、题目描述 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅…

(学习日记)2024.04.18:UCOSIII第四十六节:CPU利用率及栈检测统计

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

戴尔 latitude 3490使用体验

最近体验了一下戴尔 latitude 3490,又体验了一下戴尔 latitude 3420.再把戴尔最近的主流轻薄本、当下主流轻薄本做对比. 感觉3490比3420好用,要流畅一些,但是有点重,整体设计感不如3420。 戴尔 Latitude 14 3000系列 3490(i5 82…

水离子雾化壁炉与酒店会客厅的氛围搭配

水离子雾化壁炉与酒店会客厅的氛围搭配可以营造出舒适、温馨和现代化的氛围,以下是一些建议: 焦点装饰:将水离子雾化壁炉设计成会客厅的焦点装饰物,使其成为客人进入会客厅后第一眼的吸引点。选择设计独特、现代化的壁炉造型&…

公司能监控员工电脑屏幕吗

公司能监控员工电脑屏幕吗? 当然可以! 公司需要在工作时间去监控员工电脑的。 电脑属于公司财产,公司对于员工在工作期间的上网行为有监控的权利和职责,可以监控员工在工作期间的信息交流,并且对他们的上网行为进行…

burpsuite最新版2024.3.1安装

burpsuite最新版安装 环境 windows jdk22 BurpLoaderKeygen.jar burpsuite profression 2024.3.1 链接 链接:https://pan.baidu.com/s/1N6nggZZezg8y1FHpgwJmeg 提取码:n6uqjdk以及破戒方式这里不做介绍 注意事项 使用BurpLoaderKeygen.jar 破解之后…

使用 multer 上传中文名称图片出现乱码

问题描述 在使用multer插件上传中文命名的图片时,前端可以正常上传,但是服务器接收数据时会乱码 问题解决 使用Node.js 的 Buffer.from(object, encoding)方法用于创建包含指定字符串,数组或缓冲区的新缓冲区。 object : 此参数可以包含…

如何在 Android 设备上恢复已删除/丢失的文档

随着Android设备内存容量的不断增加,许多人将手机作为移动硬盘来存储大量文档或其他文件。由于某些原因,文件丢失绝对是一场彻头彻尾的噩梦,因为里面的数据可能是要汇报的学习档案、领导会议的安排、或者付费电子书等。通常,你首先…

GRE/MGRE详解

GRE GRE:通用路由封装,是标准的三层隧道技术,是一种点对点的隧道技术; 该技术可以实现不同的网络之间安全的访问; 如上:可以使用该技术搭建一条专线,实现公司A与分公司A1之间相互通信&#xf…

vscode常用插件

1. chinese(汉化编译器) chinese插件适用于 VS Code 的中文(简体)语言包,此中文(简体)语言包为 VS Code 提供本地化界面。 2、vetur(vue 2开发必备)volar(vu…

ThignsBoard通过服务端订阅共享属性

MQTT基础 客户端 MQTT连接 通过服务端订阅属性 案例 1、首先需要创建整个设备的信息,并复制访问令牌 ​​2、通过工具MQTTX连接上对应的Topic 3、测试链接是否成功 4、在MQTT上订阅对应的Topic 5、在客户端添加共享属性信息 6、查看整个设备的遥测数据 M…

Redis中的集群(三)

集群 槽指派 记录节点的槽指派信息。 clusterNode结构的slots属性和numslot属性记录了节点负责处理哪些槽: struct clusterNode { // ... unsigned char slots[16384/8];int numslots; // ... }slots属性是一个二进制位数组(bit array),这个数组的长度位16384/8…