CISQ把可靠性度量作为通过软件属性元素可以度量的指标之一。主要是通过CWE缺陷中的29个来进行度量。

可靠性弱点描述

本文件介绍了CISQ自动化质量特性可靠性措施中包含的29个缺陷的描述。这些描述已经简化,从他们的描述到出版OMG的规范,这些规范使用其他OMG META模型的形式来规范机器处理XMI中的代表性缺陷。

下表给出了每个缺陷及其唯一的CISQ标识符、简短的描述性名称以及作为补救建议的缺陷的更完整描述。

可靠性弱点

衡量软件中包含导致中断、意外的弱点的程、非预期行为、不稳定、数据损坏、长时间恢复或其他相关问题。

CISQ标识符

描述

陈述

ASCRM_CWE-120

缓冲区溢出

移除当第一个缓冲区内容移动到第二个缓冲区时,而分配的大小不兼容问题

ASCRM_CWE-252-data

未检查从数据处理操作返回的参数

移除函数、方法、过程、存储过程、子例程等执行CRUD SQL语句但未对返回代码值进行任何检查的实例

ASCRM_CWE-252-resource

未检查从资源处理操作返回的参数

移除函数、方法、过程、存储过程、子例程等读、写、或者管理外部资源,未对返回代码值进行任何检查的实例

ASCRM_CWE-396

宽泛的捕获异常类型

移除函数、方法、过程、存储过程、子例程等包含异常的catch的实例,该异常的类型是过度宽泛异常类型列表的一部分

ASCRM_CWE-397

引发异常类型过于宽泛

移除函数、方法、过程、存储过程、子例程等引发异常的实例,该异常的类型是过度宽泛异常类型列表的一部分

ASCRM_CWE-456

未初始化的数据元素

移除声明的变量、字段、成员等的实例,由于其在使用之前未进行初始化。

ASCRM_CWE-674

递归

移除一个控制元素初始为一个包含自身路径的实例

ASCRM_CWE-704

不兼容的数据类型转换

移除声明的变量、字段、成员等的实例,用与第一个数据类型更新第二个不兼容的数据类型

ASCRM_CWE-772

未释放的资源

移除分配平台资源(消息、锁、文件、流、目录等)并分配给整个应用程序使用,但从未释放的唯一资源句柄

ASCRM_CWE-788

缓冲区结束点内存存取

移除对缓冲区的“读”或“写”访问中将值用作索引的实例;但是在缓冲区访问之前,没有执行任何操作对缓冲区最大值进行检查

ASCRM_RLB-1

空例外块

移除函数、方法、过程、存储过程、子例程等不包含任何指令的异常处理块(如catch和finally块)

ASCRM_ RLB -2

错过了系列化控制块

移除可序列化字段、成员等没有序列化操作的实例。注:*对于具有类和接口的技术,

这意味着可序列化字段来自一个类,该类实现了一个可序列化接口,但没有将序列化方法作为方法列表的一部分

*元素的可序列化属性是技术依赖性,例如,可序列化能力来自于.NET中的可序列化属性和Java中的JavaIO.SerialI接口。

ASCRM_RLB-3

系列化数据元素包含非系列化项

移除由不可序列化的数据元素组成字段、成员、等

*对于具有类和接口的技术,这是表示可序列化字段来自可序列化但拥有不可序列化的领域

*元素的可序列化性质是技术

依赖;例如,可序列化函数来自.NET和Java中JavaIO.SerialI化接口的继承

ASCRM_RLB-4

没有适当比较控制的持久数据

移除没有专门的操作处理比较操作的持久变量、字段、成员等。注:

•对于具有类的技术,这意味着来自在不实现时的持久字段保持不变。所需比较列表中的方法操作示例(Java示例是由'hashcode()'、'equals()'方法)

ASCRM_RLB-5

不正确的运行时资源管理

移除应用程序在应用程序服务器上运行但使用低级资源管理API(I/O、套接字、类加载器等)的实例,而不是应用程序提供的资源管理API

ASCRM_RLB-6

数据指针的复制函数不正确

移除变量、字段、成员等包含指针但没有专用复制操作或复制构造函数的实例

ASCRM_RLB-7

自我毁灭

移除一个类可以自毁的实例(C++中自毁的一个例子是“delete this”)

ASCRM_RLB-8

可变参数

移除函数、方法、过程、存储过程、子例程等参数数量可变的实例,这要归功于签名变量参数

ASCRM_RLB-9

浮点型数值数据的不适当相等比较

移除变量、字段、成员等的浮点值,使用正则比较运算符来比较相等性(Java中的一个例子是使用‘==’或‘!=’

ASCRM_RLB-10

绕过数据访问例程

移除一个函数、方法,执行过程、存储过程、子例程等专用数据访问之外的数据访问组件,从而规避数据访问。笔记:

•专用数据访问组件可以是客户端或服务器端,这意味着数据可以使用非SQL开发语言存取组件

•如果没有专用的数据访问组件,每一个数据存取是一次违规

ASCRM_RLB-11

在多线程环境中的非final static data

移除在多线程环境中运行的一个函数、方法,过程、存储过程、子例程等拥有非最终静态变量、字段、成员等。

ASCRM_RLB-12

单类的不正确锁

移除在没有激活任何先前锁机制的情况下实例化单例类的实例

ASCRM_RLB-13

循环依赖关系

删除一个实例,其中一个模块具有循环回引用的引用,例如Java中包之间循环的存在性。

ASCRM_RLB-14

引用子类的父类

移除父类通过其方法和字段直接或间接引用其某个子类的实例。

ASCRM_RLB-15

类的虚方法缺少析构函数

移除类包含虚方法但类不声明任何虚析构函数的实例

ASCRM_RLB-16

父类缺少虚拟析构函数

移除可写入自定义析构函数的语言的父级没有虚拟析构函数的实例

ASCRM_RLB-17

子类缺少虚拟析构函数

移除用于自定义语言的可以编写析构函数,子类没有

它自己的虚拟析构函数,而其父类具有虚拟析构函数

ASCRM_RLB-18

硬编码网络资源信息

移除变量、字段、成员等的实例。用硬编码的网络资源初始化身份信息

ASCRM_RLB-19

同步调用缺少超时

移除同步调用已启动但超时参数未设置或设置为无限时间的实例

通过对源代码进行静态检测,可以检测出上述29个缺陷和漏洞,则根据针对CISQ度量中包含的弱点检测到的总次数为转化为百万分之一机会的弱点,以确定可靠性度量的西格玛水平。进而对代码质量进行评估。作为软件健康的质量度量之一。

(完)

可靠性(reliability)弱点度量相关推荐

  1. 《Designing Data-Intensive Application》01数据系统的基石-可靠性/可扩展性/可维护性

    <Designing Data-Intensive Application> 序言 本书的目标读者 本书涉及的领域 本书纲要 参考文献与延伸阅读 致谢 第一部分 数据系统的基石 第一章:可 ...

  2. 高可用性和高可靠性的规划与设计

    高可用性和高可靠性的规划与设计 可用性(availability)是系统能够正常运行的时间比例.经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示. 可靠性(reliability ...

  3. 第3章 软件测试方法-- 软件度量

    文章目录 3.8 软件度量 3.9 软件质量度量 3.9.1 影响软件质量的因素 3.9.2 质量保证模型 3.9.4 缺陷排除效率 3.10 软件过程度量 3.10.1 软件过程度量概念 3.10. ...

  4. 「强化学习可解释性」最新2022综述

    来源:新智元 本文共10000字,建议阅读15分钟本文本文探索XRL的基础性问题,并对现有工作进行综述. 强化学习是一种从试错过程中发现最优行为策略的技术,已经成为解决环境交互问题的通用方法. 然而, ...

  5. 实现基于Keepalived主从高可用集群网站架构

    背景 上一期我们实现了基于lvs负载均衡集群的电商网站架构,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展 ...

  6. 动态路由协议RIP的基本原理与配置

      前面学习了静态路由的原理,但是用静态路由搭建网络时,每一条路由的变更都需要手动进行配置,这在大型网络中的工作量是非常巨大的.有没有办法解决呢?答案是肯定的,使用动态路由即可解决此问题 动态路由协议 ...

  7. 软件测试中英文词汇汇总

    Acceptance testing : 验收测试 Acceptance Testing:可接受性测试 Accessibility test : 软体适用性测试 actual outcome:实际结果 ...

  8. 软件测试术语中英文对照(部分)

    Acceptance testing : 验收测试 Acceptance Testing:可接受性测试 Accessibility test : 软体适用性测试 actual outcome:实际结果 ...

  9. 什么是集群(cluster)

    1.集群 1.1 什么是集群 简单的说,集群(cluster)就是一组计算机,它们作为一个总体向用户提供一组网络资源.这些单个的计算机系统就是集群的节点(node).一个理想的集群是,用户从来不会意识 ...

  10. HeartBeat 集群组件概述

    Heartbeat 是一个基于Linux开源的高可用集群系统.主要包括心跳服务和资源接管两个高可用集群组件.心跳监测服务可以通过网络链路和串口进行,而且支持冗余链路, 它们之间相互发送报文来告诉对方自 ...

最新文章

  1. 什么是信度分析(Reliability)?有哪些信度分析方法?那什么又是效度?
  2. AltiumDesigner PCB导入CAD
  3. 《C#本质论》读书笔记(18)多线程处理
  4. golang 解析html
  5. Chrome控制台使用详解
  6. svn 本地仓库使用
  7. IDEA需要修改的配置
  8. android 绘图 双缓存,Android开发之用双缓冲技术绘图
  9. 面向对象程序设计-C++ Default constructor Copy constructor Destructor Operator Overloading【第九次上课笔记】...
  10. 关于代理转发,代码如下具体还有待理解
  11. 嘉楠勘智 K210 RISC-V 64位双核处理器开发板(荔枝丹)
  12. idea maven repositories为空
  13. revit二次开发概念_Revit二次开发教程:BIM自学入门Revit二次开发
  14. 机械制图比例GB/T14690-93
  15. Win7 Windows照片查看器无法显示此图片,因为计算机上的可用内存可能不足
  16. 《致加西亚的一封信》读后感
  17. 2021保研夏令营—中科院计算所,自动化所,上海交大计算机
  18. 为什么计算机网络使用数字信号,计算机网络数字电子技术的作用
  19. 友善串口助手 V2.5.8.0825 Serial Port Utility注册码
  20. 人生四大铁:一起同过窗,一起扛过枪,一起嫖过娼,一起分过赃。

热门文章

  1. 伪终端设备ttySx/ttyx/ptyMN/ttyMN/ptmx/(pts/x)
  2. Day4-STM32的中断与通信——百问网7天物联网智能家居
  3. FlashFXP基本使用教程
  4. m基于BP神经网络的障碍物避障和路线规划matlab仿真
  5. 游戏排行榜实现mysql_游戏中百万用户排行设计与实现
  6. 亲测有效——C#制作图片Button
  7. 汇编语言之div命令
  8. selectpicker.js的属性和方法
  9. 修改系统默认 alert 弹框样式
  10. android fd泄露分析,文件描述符(fd)泄漏排查一篇就够了