Parasoft C++Test软件静态分析操作指南_软件质量度量

2024-05-25 11:28

本文主要是介绍Parasoft C++Test软件静态分析操作指南_软件质量度量,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章目录

Parasoft C++Test软件安装指南
Parasoft C++Test软件静态分析操作指南_编码规范/标准检查
Parasoft C++Test软件静态分析操作指南_软件质量度量
Parasoft C++Test软件静态分析_自动提取静态分析数据生成文档
Parasoft C++Test软件单元测试_操作指南
Parasoft C++Test软件单元测试_实操技巧
Parasoft C++Test软件集成测试_操作指南
Parasoft C++Test软件集成测试_实操技巧
Parasoft C++Test软件使用的常见问题及处理
Parasoft C++Test软件单元/集成测试_自动提取测试用例信息生成测试报告文档
粉丝问题解答系列文章… …
其他持续更新中… …


文章目录

  • 系列文章目录
  • 前言
  • 一、C++Test简介
  • 二、“软件质量度量”简介
  • 三、使用C++Test进行软件质量度量
    • 1.选取质量度量规则
    • 2.修改度量指标
    • 3.执行质量度量
    • 4.查看质量度量结果
    • 5.生成质量度量报告
  • 总结


前言

在上一篇文章《Parasoft C++Test软件静态分析操作指南_编码规范/标准检查》中,我们讲解了如何使用Parasoft C++Test对软件的编码规范/标准进行静态检查,主要是自定义筛选工具自带的一些编码规范/标准规则集。今天接着讲解如何使用Parasoft C++Test进行软件质量度量,并根据自己的需要修改一些度量指标。


一、C++Test简介

C++Test是Parasoft公司出品的一款可以针对C/C++源代码进行软件静态分析、软件单元测试、软件集成测试的测试工具,在C/C++白盒测试领域被广泛使用。

二、“软件质量度量”简介

软件质量度量是评估软件质量的过程,通常涉及一系列指标和量化标准,以确保软件满足其预定的功能、性能、安全性和可靠性要求。常用的软件质量度量项包括:代码注释率、圈复杂度、扇入数、扇出数、调用层级数等。

三、使用C++Test进行软件质量度量

下面以Visual Studio插件版的C++Test进行介绍,其他版本的C++Test操作都是类似的。

1.选取质量度量规则

在菜单栏中的“Parasoft”中打开“测试配置”:
在这里插入图片描述
在测试配置左侧“内建”中的“Static Analysis”中选择质量度量的规则集,比如Metrics,在右键选项中选择“复制”:
在这里插入图片描述
复制之后,会在上方的“用户自定义”中出现刚才复制的静态分析度量规则。在右侧选中“静态”配置页,可以对规则进行自定义选择(可以通过对每一条规则单独进行勾选,或者右键通过“启用规则”或“禁用规则”并根据规则等级批量进行选择):
在这里插入图片描述

2.修改度量指标

当工具自带的度量指标不满足你的实际需求时,可以对规则中的指标进行修改。以圈复杂度为例,工具自带有圈复杂度超过10、20的度量规则,假如我们需要修改为15,操作如下:
首先右键复制原来的规则(工具自带的规则不允许修改,需要复制出自定义的规则才允许修改):
在这里插入图片描述
选中复制出来的自定义规则,右键选择“在RuleWizard中编辑规则”:
在这里插入图片描述
在弹出的规则视图中双击你要修改的部分进行修改,比如双击右下角的"Count:$$>20",在弹出的窗口中将20改为15:
在这里插入图片描述
然后在左上角保存规则即可:
在这里插入图片描述
这样这条规则将会在圈复杂度超过15的时候报出违规。
配置完成后,可以修改自定义规则集的名称,比如可以将其保持名称为“软件质量度量”,然后点击右下角的应用进行保存:
在这里插入图片描述

3.执行质量度量

首先,确保你的源码工程能够编译成功。然后选择你要进行静态分析的源码文件(可以是整个工程的所有文件,也可以单独选择某一个或几个文件),在右键菜单选项中选择“Parasoft”->“测试执行”->”用户自定义“->“Static Analysis”->刚才自定义配置的质量度量规则:
在这里插入图片描述
开始执行软件质量度量,在“测试进度”窗口中可以执行进度,执行完成后的界面如下:
在这里插入图片描述

4.查看质量度量结果

执行完成质量度量的静态分析后,可以在“质量任务”窗口查看分析出来的违规情况,如下所示:
在这里插入图片描述
双击违规描述,会自动跳转到对应的源码位置,方便查看和修改:
在这里插入图片描述

5.生成质量度量报告

在“测试进度”窗口中,点击“处理”生成质量度量的静态分析报告到默认地址:
在这里插入图片描述
生成的静态分析报告如下:
在这里插入图片描述


总结

以上就是使用Parasoft C++Test进行软件质量度量的操作过程,希望对大家有所帮助。下一篇文章我们将讲解如何提取前面这两篇文章中静态分析的数据信息,自动生成测试报告文档。

这篇关于Parasoft C++Test软件静态分析操作指南_软件质量度量的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1001373

相关文章

C++使用栈实现括号匹配的代码详解

《C++使用栈实现括号匹配的代码详解》在编程中,括号匹配是一个常见问题,尤其是在处理数学表达式、编译器解析等任务时,栈是一种非常适合处理此类问题的数据结构,能够精确地管理括号的匹配问题,本文将通过C+... 目录引言问题描述代码讲解代码解析栈的状态表示测试总结引言在编程中,括号匹配是一个常见问题,尤其是在

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

Java中String字符串使用避坑指南

《Java中String字符串使用避坑指南》Java中的String字符串是我们日常编程中用得最多的类之一,看似简单的String使用,却隐藏着不少“坑”,如果不注意,可能会导致性能问题、意外的错误容... 目录8个避坑点如下:1. 字符串的不可变性:每次修改都创建新对象2. 使用 == 比较字符串,陷阱满

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

C++ Primer 多维数组的使用

《C++Primer多维数组的使用》本文主要介绍了多维数组在C++语言中的定义、初始化、下标引用以及使用范围for语句处理多维数组的方法,具有一定的参考价值,感兴趣的可以了解一下... 目录多维数组多维数组的初始化多维数组的下标引用使用范围for语句处理多维数组指针和多维数组多维数组严格来说,C++语言没

Springboot中分析SQL性能的两种方式详解

《Springboot中分析SQL性能的两种方式详解》文章介绍了SQL性能分析的两种方式:MyBatis-Plus性能分析插件和p6spy框架,MyBatis-Plus插件配置简单,适用于开发和测试环... 目录SQL性能分析的两种方式:功能介绍实现方式:实现步骤:SQL性能分析的两种方式:功能介绍记录

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应