软件测试中的分数度量与复杂度分析
1. 分数度量概述
在软件测试中,以往常将程序模块视为不可分解的原子单元。然而,随着对测试分辨率要求的提高,有必要深入研究模块内部各部分的交互。多数程序模块在调用时,并非所有代码都会执行。若模块内聚性不足,实际执行的可执行语句可能只是一小部分。但无论执行的代码子集如何,它自身都是一个完整且可行的程序模块。例如,一个内聚性差的模块可能根据调用方式不同,被视为三个或更多不同的程序模块。每个功能会从被调用的模块中提取可执行语句的子集,我们可以事后确定执行的代码段并对其进行度量。这种分数化的故障指数(FI)由执行的源代码子集的度量值构成。
2. XC 模块的 FI 分析
为了探究分数复杂度及其对测试过程的影响,选择了一个名为 XC 的小型开源程序进行研究。XC 是一个用于 UNIX 环境的异步通信程序,支持多种文件传输协议,用 C 语言编写。
2.1 度量指标获取
使用 UX 度量工具对 XC 程序的 15 个模块进行测量,得到一组 9 个度量指标,如下表所示:
| 指标 | 定义 |
| ---- | ---- |
| η1 | Halstead 的唯一操作符数量计数 |
| η2 | Halstead 的唯一操作数数量计数 |
| N1 | Halstead 的操作符总数计数 |
| N2 | Halstead 的操作数总数计数 |
| Stmt | 非注释源语句总数计数 |
| LOC | 非注释代码行总数计数 |
| Blks | 程序块总数计数 |
| Span | 变量引用的平均跨度 |
软件测试中的分数复杂度分析
超级会员免费看
订阅专栏 解锁全文
4

被折叠的 条评论
为什么被折叠?



