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

相关文章

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

C#如何调用C++库

《C#如何调用C++库》:本文主要介绍C#如何调用C++库方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录方法一:使用P/Invoke1. 导出C++函数2. 定义P/Invoke签名3. 调用C++函数方法二:使用C++/CLI作为桥接1. 创建C++/CL

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

SpringBoot整合OpenFeign的完整指南

《SpringBoot整合OpenFeign的完整指南》OpenFeign是由Netflix开发的一个声明式Web服务客户端,它使得编写HTTP客户端变得更加简单,本文为大家介绍了SpringBoot... 目录什么是OpenFeign环境准备创建 Spring Boot 项目添加依赖启用 OpenFeig

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

C++如何通过Qt反射机制实现数据类序列化

《C++如何通过Qt反射机制实现数据类序列化》在C++工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作,所以本文就来聊聊C++如何通过Qt反射机制实现数据类序列化吧... 目录设计预期设计思路代码实现使用方法在 C++ 工程中经常需要使用数据类,并对数据类进行存储、打印、调试等操作。由于数据类