Testbed静态测试使用指南V1.1.doc
14页精品文档,仅供学习与交流,如有侵权请联系网站删除目 录1 Testbed功能介绍 11.1 编程规则验证 11.2 数据流分析 11.3 控制流分析 11.4 表达式分析 21.5 接口分析 21.6 软件质量度量分析 22 使用Testbed 进行编码规则的定制和检查 22.1 确定测试需求 22.2 建立测试工程 22.3 定制代码分析规则 22.4 配置Report选项 22.5 分析执行及结果查看 23 结果分析及测试报告编写 23.1 质量度量信息的获取 23.2 程序质量度量报告单 23.3 静态分析质量报告单 2附录A:静态分析推荐规则使用说明 2【精品文档】第 页1 Testbed功能介绍1.1 编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。
测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改1.2 数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级 通过 Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1. 没使用的函数参数;2. 不匹配的参数;3. 变量未赋初值就引用;4. 代码中有多余变量;5. 给值传递参数赋值;6. 无返回值的函数路径;7. 函数的实参是全局变量1.3 控制流分析控制流分析检查以下内容:1. 不可达代码;2. 不合理的循环结构;3. 存在浮点相等比较;4. 函数存在多个出口;5. 函数存在多个入口1.4 表达式分析表达式分析检查以下内容:1. 表达式中的括号使用不当;2. 数组下标越界;3. 存在被零除;4. SWITCH语句缺少DEFAULT;5. CASE语句缺少BREAK;6. 存在混合运算;7. 对指针进行逻辑比较;8. 在逻辑表达式中使用赋值操作符1.5 接口分析接口分析检查以下内容:1. 实参和形参个数不匹配;2. 实参和形参类型不匹配;3. 函数参数定义的结构和调用的结构不一致。
1.6 软件质量度量分析对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制Testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型静态分析的软件度量元和相应的说明见表1:表 1 软件质量度量元说明序号度量元指标要求说明1函数代码行数<=200函数包含的语句数2注释度量>=20%代码的有效注释率3函数参数<=7函数参数个数4Goto语句0Goto语句数5圈复杂度<=10控制流图中边的数量与节点数量之间的差值加26基本复杂度<=4圈复杂度与流程图中结构化子图的数量之间的差值;基本复杂度高意味着非结构化程度高,难以模块化和维护7LCSAJ密度<=20LCSAJ 密度是一个描述软件可维护性的概念,它是指当改变一行代码时,对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低8控制流结点数<=10控制流结点数表示流程图中控制流相交的交点数。
9基本结点数<=5将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本结点数10扇入度量<=7调用本函数的上层函数的个数11扇出度量<=7本函数调用下层函数的个数2 使用Testbed 进行编码规则的定制和检查LDRA Testbed可通过编辑编码规则文件cpen.dat/cppen.dat实现编码规则的定制,下面将具体介绍:2.1 确定测试需求在测试需求分析阶段确定:1. 确定测试对象:整个MSVC工程还是文件集合;纯C文件、纯C++还是C/C++混合文件2. 确定测试内容:确定静态分析规则,可参考附录A所示静态分析推荐规则使用说明3. 确定测试“类型”:确定是进行击System分析还是Group分析(选择Group时,不对代码进行集成测试,只是采用批处理方式分析单个文件)2.2 建立测试工程1. 启动Testbed,根据分析对象,选择测试工程类型如需对整个MSVC工程进行分析,选择Create Set Based Upon MSVC v6 Project;如分析对象是一个或多个C、C++文件,选择Select/Create/Delete Set…下面以在Set 菜单下选择Select/Create/Delete Set…选项为例进行说明。
2. 在Select/Create Set输入框中输入“Demo”,点击【Create】按钮3. 点击【System】按钮(选择Group时,不对代码进行集成测试,只是采用批处理方式分析单个文件)4. 点击右上侧【Add】按钮,选择好要分析的文件,点击【Add】按钮后点【OK】按钮进行确认2.3 定制代码分析规则1. 点击菜单栏中的Configure,在下拉菜单中点击Static Options 选项,将会出现如下窗口,点击cpen.dat/cpppen.dat后的Edit 按钮,按照提示编辑cpen.dat/cpppen.dat后若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该dat 文件,则下面第3步可以省略2. 编辑第2 列,根据实际需求,将对应编码规则置“0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效2.4 配置Report选项1. Quality Report配置点击菜单栏中的Configure,在下拉菜单中点击Quality Report Options 选项,将会出现如下窗口,在Programming Standard Model 下拉框中选择“No Model –all standards”。
如分析的文件为C、C++混合类型,则在下图右侧所示下拉列表中分别选择一个.C和.CPP文件,选中对应文件后选择在Programming Standard Model 下拉框中选择“No Model –all standards”在Optional Configuration中Violation Summaries选中“All”,根据需要选择Report Violations Only(Quality Report只列出有违反的)2. Metrics Report配置点击菜单栏中的Configure,在下拉菜单中点击Metrics Report Options 选项,将会出现如下窗口,根据测试需求配置metpen,dat及Kiviat.dat文件2.5 分析执行及结果查看1. 点击菜单栏中的Analysis,在下拉菜单中点击Select Analysis,将会出现如下窗口,选择前3 项,点击Start Analysis 按钮,开始进行静态分析2. 静态分析结束后,点击菜单栏中的Individual /System Results,选择下拉菜单Text Results 中的Quality Report(HTML),查看质量报告。
3 结果分析及测试报告编写3.1 质量度量信息的获取度量度量信息可通过以下几种方式获取:1. 查看规则审查报告:点击菜单栏中的Individual Results/System Results,选择下拉菜单Text Results 中的Quality Report (HTML)度量元指标查看位置具体说明注释度量>=20%在Quality Report (HTML)中的 Global Basic Information获取可执行代码行总数与注释行总数注释行总数/(注释行总数+可执行代码行总数)函数代码行数<=200System Results菜单下选择Text Results子菜单中的Quality Report(HTML)函数代码行超过200行函数参数<=7函数参数超过7个Goto语句0使用goto语句圈复杂度<=10圈复杂度超过10LCSAJ密度<=20LCSAJ密度超过202. 查看质量度量报告:点击菜单栏中的Individual Results/System Results,选择下拉菜单Text Results 中的Metrics Report (HTML)度量元指标查看位置具体说明圈复杂度<=10Metric Report中Complexity MetricsCyclomatic Complexity,基本复杂度<=4Essential Cyclomatic Complexity控制流结点数<=10Knots基本结点数<=5Essential KnotsLCSAJ密度<=20LCSAJ and UnreachabilityMaximum LCSAJ Density扇入度量<=7Dataflow InformationFan In 扇出度量<=7Fan Out3. 查看图形化报告:点击菜单栏中的System Results,选择下拉菜单Graphical Results 中的Static Bar Charts。
度量元指标查看位置具体说明圈复杂度<=10System Results菜单下Graphical Results子菜单 中的Static Bar ChartsCyclomatic Complexity基本复杂度<=4Essential Cyclomatic Complexity控制流结点数<=10Knots基本结点数<=5Essential Knots以圈复杂度为例:选择Static Bar Charts子菜单下的“Essential Cyclomatic Complexity”,弹出如下所示柱状图,在该界面,将Graph菜单下的Show Bar Components选中,可查看函数基本圈复杂度具体信息3.2 程序质量度量报告单表 2 程序质量度量报告单度量元指标说明违反个数所在软件具体描述函数代码行数<=200函数包含的语句数注释度量>=20%代码的有效注释率函数参数<=7函数参数个数Goto语句0Goto语句数圈复杂度<=10控制流图中边的数量与节点数量之间的差值加2基本复杂度。





