简介:常见的规则如代码行数,圈复杂度等。但是polyspace中也会有对应的代码度量方法。

一般性测试类型

测试类型

Polyspace的测试报告的列表中一般有以下几项,

缺陷,冲突合规性(MISRA标准的合规性)代码度量鲁棒性(根据测试选项)代码度量的一般性运行结果

下面的测试结果中显示了代码度量的测试结果,一般情况下如果没有特殊要求,是可以直接接受的。代码度量显示了代码的复杂程度。

主要是以下的几类:

语言范围调用层级调用函数的个数被多少个函数调用函数的参数的个数测试的case分析

Number of function parameters 函数参数的数量过多

Justify:There are many arguments for the function.

一般严重程度设置为低。因为我们确实需要这么多的参数。

解释:下面的含义时函数的参数阈值为5,但是实际上这个函数的参数却达到了9个。

修改建议:改为结构体的形式可以减少函数的参数。但我们一般不会这么做。

Number of call levels 调用层级

这里是度量嵌套控制流结构的深度。简单来讲是if else 的嵌套层数。

例子: 嵌套层级为2

例子:嵌套层级为3:

Number of called function 调用函数的个数

被调用的函数个数,包含RTE接口,读和写等。

同一个函数被调用多次,计算的时候相当于1次。因此下面的数目为2.

递归函数的多次调用,也是相当于1次,因此下面的数目为1。

Number of Calling Functions 被几个函数引用

被同一个函数多次引用,也只计为1.因此下面的数目为2.

Language Scope 语言范围

语言范围 (操作符数目+操作数数目)/(操作符种类数+操作数种类数)