




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、. . 目 录1.testbed 功能介绍 . 11.1编程标准验证 . 11.2数据流分析 . 11.3软件度量分析 . 11.4质量报告生成 . 22.使用 testbed 进行编码规则的定制和检查. 23.静态分析报告 . 53.1静态分析质量报告单 . 53.2程序质量度量报告单 . 63.3度量指标解释 . 73.4度量指标的获取 . 9. . 1. testbed 功能介绍1.1编程标准验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用ldra testbed 自动地验证应用软件是否遵循了所选择的编程规则。编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的
2、软件编程标准制定,如dera (欧洲防务标准),misra(汽车软件标准),ldra testbed 依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。ldra testbed 报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。1.2数据流分析ldra testbed分析软件中全局变量、 局域变量及过程参数的使用状况,并以图形显示、 html 或 ascii文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。通过 testbed 数据流分析功能,可方便地分
3、析出软件中一些可能的程序欠缺,如:1、用错的局部或全局变量;2、不匹配的参数;3、遗漏的标号或代码;4、未定义的变量;等等,其中经常会发现程序中有未定义的变量情况发生。1.3软件度量分析对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。ldra testbed 很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制。testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。ldra testbed 支持下列主要软件度量元分析:控制流
4、结点度量 (control flow knots);lcsaj 密度度量 (lcsaj density) ;扇入/扇出度量;循环深度度量;mccabe 圈复杂度;halstead 软件科学度量;. . mccabe 基本圈复杂度;注释行度量;代码可达性度量;等等。1.4质量报告生成ldra testbed自动生成各种质量报告供测试人员分析,包括代码规则检查报告、软件度量报告、数据流报告、交叉索引报告,报告形式可以为ascii文本或html 超文本,报告支持文件级与系统级。1.5代码可视化显示testbed 提供调用图与控制流程图,显示被测系统的调用关系及每个子程序的控制流程。使用此功能用户可快
5、速理解被测软件系统,并方便软件维护。2. 使用 testbed 进行编码规则的定制和检查ldra testbed可通过编辑编码规则文件cpen.dat/cppen.dat 实现编码规则的定制,下面将具体介绍:1. 启动 testbed,在 file 菜单下选择 select file 选项,选择要分析的文件;选择好要分析的文件,点击select 按钮完成。2. 点击菜单栏中的configure,在下拉菜单中点击static options 选项,将会出现如下窗口,点击cpen.dat 后的 edit 按钮,按照提示编辑cpen.dat。若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该d
6、at 文件,则下面第 3 步可以省略。. . 3. 编辑第 2 列,根据实际需求,将对应编码规则置“ 0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效。4. 点击菜单栏中的 configure, 在下拉菜单中点击quality report options 选项,将会出现如下窗口,在programming standard model 下拉框中选择“ standard”。. . 5. 点击菜单栏中的analysis,在下拉菜单中点击select analysis,将会出现如下窗口,选择前3 项,点击 start analysis 按钮,开始进行静态分析。6. 静态分析结
7、束后,点击菜单栏中的individual results,选择下拉菜单 text results 中的 quality report(html) ,查看质量报告。. . 3. 静态分析报告3.1静态分析质量报告单表 1 静态分析质量报告单审查项目测试容技术要求审查结果控制流分析是否存在不可达代码否是否存在不合理的循环结构否是否存在浮点相等比较否是否使用goto 语句否函数是否存在多个出口否函数是否存在多个入口否数据流分析是否存在没使用的函数参数否函数是否存在路径无返回值否是否存在函数的实参是全局变量否代码中是否存在多余变量否是否存在变量使用前未初始化否是否存在参数与期望的作用不匹配否表达式分析
8、是否出现表达式中的括号使用不当否. . 审查项目测试容技术要求审查结果是否存在数组下标越界否是否存在被零除否switch 语句是否缺少default 否case语句是否缺少break 否在非赋值表达式中是否使用赋值操作符否接口分析是否存在形参与实参在类型、数量、顺序及维数等使用上的不一致性否是否存在模块与外部数据库的接口不一致性否是否存在各模块之间接口的不一致性否3.2程序质量度量报告单表 2 程序质量度量报告单度量元描述指标违反个数所在软件具体描述文本度量软件单元的语句数=20% 扇入数调用该函数的上层函数的个数7 扇出数函数调用下层函数的个数7 函数参数函数参数=7 圈复杂度=10 基本复
9、杂度=4 . . 控制流结点数=2 控制流基本结点数=5 循环深度=5 lcsaj密度文件 lcsaj密度=50 lcsajs总数/ 不可达 lcsajs =10 不可达代码行数=10 不可达分支数=20 3.3度量指标解释圈复杂度 (v(g) 圈复杂度的计算方法很简单,计算公式为:v(g)=e-n+2 。其中,e表示控制流图中边的数量, n 表示控制流图中节点的数量。mccabe & associates 建议圈复杂度到10,因为高的圈复杂度使测试变得更加复杂而且增大了软件错误产生的概率。基本复杂度 (ev(g) 基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序的质量,增
10、加了代码的维护难度,使程序难于理解。因此,基本复杂度高意味着非结构化程度高, 难以模块化和维护。 实际上,消除了一个错误有时会引起其它的错误。将流程图中的结构化部分简化成一个点,计算简化以后流程图的圈复杂度就是基本复杂度。计算公式为:. . ev(g)=v(g)-m 其中, m 是流程图中的结构化子图(出口和入口唯一)的数量。控制流结点数 (knots) 当两条控制流相交时,就产生一个控制流结点。控制流结点数表示流程图中控制流相交的个数。基本节点数 (essential knots) 将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本节点数。lcsaj 密度(lcsaj densitys) lcsaj 密度是一个描述软件可维护性的概念,它是指当改变一行代码时, 对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低。. . 圈复杂度及控制流结点数示意图3.4度量指标的获取点击菜单栏中的individual results/system results,选择下拉菜单text results 中的 metric report(html) ,查看度量报告。复杂度度量lcsaj 和代码可达性度量. . 注释行度量. . 扇入/扇出度量. . 3.5原始记录保留点击菜单栏中的in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论