产品概况
McCabe IQ 是美国 McCabe Software 公司的软件质量管理解决方案,为用户提供软件质量度量、软件结构分析、动态结构化测试的全面支持, McCabe Software 公司由 Thomas McCabe Jr 在 1977 年创建, Thomas McCabe Jr. 是软件质量方面的学术专家, 1976 年发表了软件复杂性度量的理论, 1982 年发表了著名的论文《结构化测试:一种利用圈复杂度进行测试的方法》,由美国标准局出版并被 NIST 采纳作为测试标准。
世界上很多重要组织和公司采用 McCabe IQ 的质量管理套件,对其开发的关键软件进行质量分析和覆盖率测试。 McCabe IQ 的框架基于底层优秀的 EDG 源代码分析器,提供准确的软件复杂度和软件结构分析,基于工业标准或者自定义标准衡量软件的质量。
功能特性
McCabe IQ 的功能可以分为质量度量、覆盖率测试、数据流分析、变更分析、冗余代码分析和企业级报告等。
质量度量
McCabe IQ 能够分析三百多种软件度量质量,包括:
代码行、注释行统计
嵌套深度
数据变量统计
Halstead 度量集
McCabe 度量集
面向对象 (OO) 度量集
McCabe IQ 拥有质量快照功能,可以在特定时刻把当前的软件质量信息全部存储到它的数据库中,随着软件开发和测试的进行,不断记录软件的质量信息和测试的覆盖信息, McCabe IQ 把这些点连在一起绘制成质量趋势图,项目主管可以掌握软件质量的波动和测试的进展。
基于 McCabe 提供的这些基本度量,用户可以方便的派生度量,这样可以更加符合用户实际的质量模型,有助于更好的进行质量评价。
McCabe 是一个完全图形化的工具,可以提供如下图形报告:
模块调用关系图:用红黄绿颜色标识出模块的复杂度的高低,对于软件的结构和复杂程度一目了然。
模块控制流图:有助于了解软件模块的内部流程,发现隐藏的危险路径。
散点图 /KV 图 / 柱状图:综合分析软件整体的质量分布情况,有助于了解软件质量情况,和测试工作量评估。
覆盖率测试
McCabe IQ 的动态测试不但适合于宿主机系统,也适合于各种嵌入式系统环境下运行, McCabe IQ 的插装方式有几种选择,可以根据实际情况选择最合适的方式,当被测软件动态运行的时候, McCabe IQ 分析生成的追踪信息,得到覆盖率信息, McCabe IQ 可以提供的覆盖率类型有:
集成覆盖率
路径覆盖率
分支覆盖率
语句覆盖率
类覆盖率
布尔覆盖率 (MC/DC)
数据覆盖率
调用对覆盖率
覆盖率的信息最直观的查看方式就是在模块调用图上用不同的颜色标识出来,基于McCabe 度量的理论,可以提供给用户强大的路径分析路径覆盖率,适合于安全关键软件的严格测试。覆盖率的信息以切片(Slice)的方式详细的报告给用户,用户可以使用 McCabe 的切片直接的逻辑运算发现被测软件的业务规律。
数据流分析
McCabe 的数据字典是 McCabe 中的一个模块,汇总软件的所有数据信息,用户可以自定义数据集,把关心的数据找出来,从而可以查看这些数据在哪定义,在哪使用,提供全局数据覆盖度和指定数据复杂度,同时可以结合动态测试,综合分析得出数据的覆盖率。
变更分析
McCabe 的变更分析模块自动发现软件被改动的模块,自动分析这些被修改的模块是否被测试过,那些经过修改但是没有测试过的模块是接下来测试的重点,同时也要利用 McCabe 的图像分析发现改动模块对整个系统的影响有多大。变更分析模块和数据字典,切片分析等配合使用,结合动态测试的数据可以得出再工程的评估报告。
冗余代码分析
越复杂的程序,里面存在的冗余代码越多,有些程序里面存在高达 40% 的冗余代码,很多模块相似度很高,而相似的模块往往带有相同的错误, McCabe Compare 模块可以分析模块的相似性,帮助用户通过合并相似模块,精简系统。
企业级报告
McCabe IQ 的分析结果可以上传到 McCabe Server ,这是一种 C/S 结构,对于一个团队和企业,可以通过这种方式得到综合的企业级报告,通过预定义和自定义的报告模板自动生成 Word/PDF/HTML 等格式的报告。
旋极公司自己开发的 McCabe 报告生成器可以基于 ISO9126 标准生成质量评级报告,用户也可以自定义质量模型,报告的模板可以根据用户的实际需要定制。
突出优势
McCabe IQ 是软件质量度量领域的领先工具,具有如下的突出优势 .
McCabe IQ 是 McCabe 度量理论最好的实践工具,同时提供了大约 300 多种软件质量度量,完全满足各种需求下的质量模型和质量评价。
McCabe IQ 丰富的图形界面,加快用户对软件结构的理解,帮助用户了解整个系统的架构进行测试规划。
强大的路径分析,基于 McCabe 圈复杂度的独立路径分析,具有强大的再工程能力,可以基于变更分析,相似度分析,数据字典功能,帮助用户在遗留工程基础上进行二次开发。
把代码复杂度和测试结合起来,提出基于结构化测试的理论,被 NIST 作为测试标准。
有复杂度量元的基础上可以定制或派生复杂度,也可以自己设计测试路径,作为基本测试路径的补充
开源的测试库,适合于各种嵌入式测试环境下。
强大的数据存储和加载的能力,能定期保存分析结果和测试数据,可以生成软件质量趋势和测试进展曲线。
独有的基于路径的分析能力,能够提供集成和单元测试路径,帮助测试工程师开发测试用例,达到较高的路径覆盖率,而且能提供路径覆盖率的工具。
平台
McCabe IQ 支持的平台:
Windows 98/2000/XP/2003
Solaris 2.5.1 以上
HPUX 10.2 以上
IRIX 5.3 以上
AIX 4.2 以上
McCabe IQ 支持的语言:
Ada 、 C 、 C++ 、 COBOL 、 FORTRAN 、 Java 、 Model 204 、 Visual Basic 、 x86 汇编、 VC++.net 、 VB.net 、 C#
参考客户
航天软件评测中心
航天运载火箭评测中心
船舶南方集团软件评测中心 |