Testbed学习总结V1.0_第1页
Testbed学习总结V1.0_第2页
Testbed学习总结V1.0_第3页
Testbed学习总结V1.0_第4页
Testbed学习总结V1.0_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1.Testbed功能介绍11.1编程标准验证11.2数据流分析11.3软件度量分析11.4质量报告生成22.使用Testbed 进行编码规则的定制和检查23.静态分析报告53.1静态分析质量报告单53.2程序质量度量报告单63.3度量指标解释73.4度量指标的获取81. Testbed功能介绍1.1 编程标准验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。1.2 数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。 通过 Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1、用错的局部或全局变量;2、不匹配的参数;3、遗漏的标号或代码;4、未定义的变量;等等,其中经常会发现程序中有未定义的变量情况发生。1.3 软件度量分析对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制。Testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。LDRA Testbed 支持下列主要软件度量元分析:l 控制流结点度量(Control Flow Knots);l LCSAJ 密度度量(LCSAJ Density);l 扇入/扇出度量;l 循环深度度量;l McCabe 圈复杂度;l Halstead软件科学度量;l McCabe 基本圈复杂度;l 注释行度量;l 代码可达性度量;等等。1.4 质量报告生成LDRA Testbed自动生成各种质量报告供测试人员分析,包括代码规则检查报告、软件度量报告、数据流报告、交叉索引报告,报告形式可以为ASCII文本或HTML超文本,报告支持文件级与系统级。1.5 代码可视化显示 Testbed提供调用图与控制流程图,显示被测系统的调用关系及每个子程序的控制流程。使用此功能用户可快速理解被测软件系统,并方便软件维护。2. 使用Testbed 进行编码规则的定制和检查LDRA Testbed可通过编辑编码规则文件cpen.dat/cppen.dat实现编码规则的定制,下面将具体介绍:1. 启动Testbed,在File 菜单下选择Select File 选项,选择要分析的文件;选择好要分析的文件,点击Select 按钮完成。2. 点击菜单栏中的Configure,在下拉菜单中点击Static Options 选项,将会出现如下窗口,点击cpen.dat 后的Edit 按钮,按照提示编辑cpen.dat。若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该dat 文件,则下面第3步可以省略。3. 编辑第2 列,根据实际需求,将对应编码规则置“0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效。4. 点击菜单栏中的Configure,在下拉菜单中点击Quality Report Options 选项,将会出现如下窗口,在Programming Standard Model 下拉框中选择“Standard”。5. 点击菜单栏中的Analysis,在下拉菜单中点击Select Analysis,将会出现如下窗口,选择前3 项,点击Start Analysis 按钮,开始进行静态分析。6. 静态分析结束后,点击菜单栏中的Individual Results,选择下拉菜单Text Results 中的Quality Report(HTML),查看质量报告。3. 静态分析报告3.1 静态分析质量报告单表1 静态分析质量报告单审查项目测试内容技术要求审查结果控制流分析是否存在不可达代码否是否存在不合理的循环结构否是否存在浮点相等比较否是否使用goto语句否函数是否存在多个出口否函数是否存在多个入口否数据流分析是否存在没使用的函数参数否函数是否存在路径无返回值否是否存在函数的实参是全局变量否代码中是否存在多余变量否是否存在变量使用前未初始化否是否存在参数与期望的作用不匹配否表达式分析是否出现表达式中的括号使用不当否是否存在数组下标越界否是否存在被零除否SWITCH语句是否缺少DEFAULT否CASE语句是否缺少BREAK否在非赋值表达式中是否使用赋值操作符否接口分析是否存在形参与实参在类型、数量、顺序及维数等使用上的不一致性否是否存在模块与外部数据库的接口不一致性否是否存在各模块之间接口的不一致性否3.2 程序质量度量报告单表2 程序质量度量报告单度量元描述指标违反个数所在软件具体描述文本度量软件单元的语句数=20%扇入数调用该函数的上层函数的个数7扇出数函数调用下层函数的个数7函数参数函数参数=7圈复杂度=10基本复杂度=4控制流结点数=2控制流基本结点数=5循环深度=5LCSAJ密度文件LCSAJ密度=50LCSAJs总数/不可达LCSAJs=10不可达代码行数=10不可达分支数=203.3 度量指标解释l 圈复杂度(V(G)圈复杂度的计算方法很简单,计算公式为:V(G)=E-N+2。其中,E表示控制流图中边的数量,N表示控制流图中节点的数量。McCabe & Associates建议圈复杂度到10,因为高的圈复杂度使测试变得更加复杂而且增大了软件错误产生的概率。l 基本复杂度(EV(G) 基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序的质量,增加了代码的维护难度,使程序难于理解。因此,基本复杂度高意味着非结构化程度高,难以模块化和维护。实际上,消除了一个错误有时会引起其它的错误。将流程图中的结构化部分简化成一个点,计算简化以后流程图的圈复杂度就是基本复杂度。计算公式为:EV(G)=V(G)-M其中,M是流程图中的结构化子图(出口和入口唯一)的数量。l 控制流结点数(Knots)当两条控制流相交时,就产生一个控制流结点。控制流结点数表示流程图中控制流相交的个数。l 基本节点数(Essential Knots)将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本节点数。l LCSAJ 密度(LCSAJ Densitys)LCSAJ 密度是一个描述软件可维护性的概念,它是指当改变一行代码时,对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低。圈复杂度及控制流结点数示意图3.4 度量指标的获取点击菜单栏中的Individual Results/System Results,选择下拉菜单Text Results 中的Metric Report(HTML),查看度量报告。l 复杂度度量ll LCSAJ 和代码可达性度量l 注释行度量l 扇入/扇出度量3.5 原始记录保留点击菜单栏中的I

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论