Testbed静态测试使用指南_第1页
Testbed静态测试使用指南_第2页
Testbed静态测试使用指南_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、Testbed 静态测试使用指南V1. 119 页)-本页仅作为文档封面,使用时请直接删除即可-内页可以根据需求调整合适字体及大小-目 录Testbed功能介绍错误未定义书签。编程规则验证错误未定义书签。数据流分析错误未定义书签。控制流分析错误未定义书签。表达式分析错误未定义书签。接口分析错误未定义书签。软件质量度量分析错误未定义书签。使用Testbed进行编码规则的定制和检查错误未定义书签。确定测试需求错误未定义书签。建立测试工程错误未定义书签。定制代码分析规则错误未定义书签。配置Report 选项错误未定义书签。分析执行及结果查看错误未定义书签。结果分析及测试报告编写错误未定义书签。质量度

2、量信息的获取错误未定义书签。程序质量度量报告单错误未定义书签。静态分析质量报告单错误未定义书签。附录A:静态分析推荐规则使用说明错误未定义书签。iiTestbed功能介绍编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定, 如 DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed 规则搜索应用程序,并判断代码是否违反所制定的编程规则。LDRA Testbed 告所有违反编程规则的代码并以文本方式或图

3、形反标注的方式显示。测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。数据流分析LDRA Testbed 分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML 或 ASCII 文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。通过 Testbed 数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:没使用的函数参数;不匹配的参数;变量未赋初值就引用;代码中有多余变量;给值传递参数赋值;无返回值的函数路径;函数的实参是全局变量。控制流分析控制流分析检查以下内容:不可达代码;不合理的循环结构;存在浮点

4、相等比较;函数存在多个出口;函数存在多个入口。1表达式分析表达式分析检查以下内容:表达式中的括号使用不当;数组下标越界;存在被零除;SWITCHCASEBREAK;存在混合运算;对指针进行逻辑比较;在逻辑表达式中使用赋值操作符。接口分析接口分析检查以下内容:实参和形参个数不匹配;实参和形参类型不匹配;函数参数定义的结构和调用的结构不一致。软件质量度量分析对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。LDRA Testbed 很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质

5、量跟踪与控制。Testbed 提供数据文件接口, 用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。静态分析的软件度量元和相应的说明见表 1:5圈复杂度=10控制流图中边的数量与节点数量之间5圈复杂度=10控制流图中边的数量与节点数量之间的差值加 2。序号度量元指标要求说明1函数代码行数=20%代码的有效注释率。3函数参数=7函数参数个数。4Goto 语句0Goto 语句数。2序号度量元指标要求6基本复杂度=47LCSAJ 密度=208控制流结点数=109基本结点数=510扇入度量=711扇出度量=7说明非结构化程度高,难以模块化和维 护。LCSAJ 说明非结构化程度高,难以模块化

6、和维 护。LCSAJ 密度是一个描述软件可维护性的概念,它是指当改变一行代码 交的交点数。将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本结点数。调用本函数的上层函数的个数。本函数调用下层函数的个数。LDRA Testbed 可通过编辑编码规则文件实现编码规则的定制,下面将具体介绍:确定测试需求在测试需求分析阶段确定:MSVC C C+C/C+混合文件。确定测试内容:确定静态分析规则,可参考附录 A 规则使用说明。System Group 分析(Group 时,不对代码进行集成测试,只是采用批处理方式分析单个文件)。3建立测试工程TestbedMSVC Create Set B

7、ased Upon MSVC v6 Project;如分析对象是一C、C+Select/Create/DeleteSetSet 菜单下选Select/Create/Delete Set选项为例进行说明。Select/Create Set输入框中输入“Demo”,点击【Create】按钮点击【System】按钮(Group用批处理方式分析单个文件)。4点击右上侧【Add】按钮,选择好要分析的文件,点击【Add】按钮后点【OK】按钮进行确认。5定制代码分析规则ConfigureStaticOptionsEdit 按钮,按照提示编辑后。若存在已编辑好的编码dat 3步可以省略。2 列,0”或“1”,

8、置“0” 代表该条编码规则无效,置“1”代表该条编码规则有效。6Report选项Quality Report配置点击菜单栏中的 Configure,在下拉菜单中点击 Quality Report Options 选项,将会出现如下窗口,在 Programming Standard Model Model all standardsC、C+混合类型,则在下图右侧所示下拉列表中分别选择一个.C 和.CPP Programming Standard Model 下拉框中选择“No Modelall standards”。Optional Configuration Violation Summari

9、es 选中“All”,根据需要选7择 Report Violations Only(Quality Report 只列出有违反的)。Metrics Report配置点击菜单栏中的 Configure,在下拉菜单中点击 Metrics Report Options metpen,dat 及文件。分析执行及结果查看AnalysisSelect Analysis3 Start Analysis按钮,开始进行静态分析。8Individual /System ResultsText Results 中的Quality Report(HTML),查看质量报告。9结果分析及测试报告编写质量度量信息的获取度量

10、度量信息可通过以下几种方式获取:Individual Results/System Text Results Quality Report (HTML)。度量元指标查看位置具体说明注释度量在 Quality Report (HTML) 的 Global Basic Information 获取可执行代码行总数与注释行总数注释行总数/(注释行总数+可执行代码行总数)函数代码行数函数参数Goto 语句圈复杂度LCSAJ 密度=200=70=10=20System Results 菜单下选择Text Results 子 菜 单 中 的Quality Report(HTML)2007使用 goto 语

11、句圈复杂度超过 10LCSAJ20Individual Results/System Text Results Metrics Report (HTML)。10度量元圈复杂度 =10=4Metric查看位置具体说明Cyclomatic Complexity,Report中 Essential Cyclomatic Complexity控制流结点数基本结点数LCSAJ 密度扇入度量扇出度量=10=5=20=7=7Complexity MetricsLCSAJ and Unreachability Dataflow InformationKnotsEssential KnotsMaximum LC

12、SAJ Density Fan InFan Out查看图形化报告:点击菜单栏中的System Results,选择下拉菜GraphicalResults中的Static Bar Charts。度量元圈复杂度指标=10查看位置具体说明Cyclomatic Complexity基本复杂度 基本结点数=4=10=5System Results Graphical Results Static Bar ChartsEssential Cyclomatic Complexity KnotsEssential KnotsStatic Bar Charts 子菜单下的“Essential Cyclomati

13、c ComplexityGraph Show Bar Components 选中,可查看函数基本圈复杂度具体信息。11程序质量度量报告单表2程序质量度量报告单度量元指标说明违个数所在软件具体描述函数代码行数=20%=70=10代码的有效注释率函数参数个数Goto 语句数控制流图中边的数量与节点数量之间的差值加 2圈复杂度与流程图中结构化基本复杂度=4LCSAJ 密 度 控制流结点数基本结点数=5子图的数量之间的差值LCSAJ密是一个描述软件可维护性的概念控制流结点数表示流程图中控制流相交的交点数将流程图中的结构化部分简化成一个点, 简化以后流程图的结点数是基本结点数。12扇入度量扇入度量=7扇

14、出度量=7调用本函数的上层函数的个数本函数调用下层函数的个数静态分析质量报告单报告单中列出的审查内容根据测试需求确定,其中部分度量指标在质量度量报告中会重复出现,此表可以不列出。审查结果根据根据 Quality Report 确定。表3静态分析质量报告单审查项目测试内容审查结果是否存在不可达代码是 否 是否存在循环条件不可达是 否 函数是否包含无限循环(无终止条件)是 否 是否存在无限循环结构是 否 控制流分析在循环语句中是否有多个控制变量是 否 是否存在浮点相等比较是 否 使用 goto 语句是 否 函数是否存在多个入口是 否 函数是否存在多个出口是 否 是否存在标识名重用是 否 是否存在没

15、使用的函数参数是 否 函数不是所有的路径上都有返回值是 否 数据流分析函数的实参是全局变量是 否 代码中有多余变量是 否 变量未赋初值就引用是 否 参数与期望的作用不匹配是 否 给值传递参数赋值是 否 13标识符超过 31 个字符是否函数定义无相应原型是否存在潜在的无限循环是否指针在使用之前没有进行非空检查是否往没有打开过的文件中写是否文件指针在退出时没有关闭是否表达式中使用是否存在数组下标越界是否存在被零除是否SWITCH 语句是否为空是否SWITCH 语句只含DEFAULT情况是否SWITCH 语句缺少DEFAULT是否表达式分析CASE 语句缺少BREAK是否返回类型为VOID 的函数出

16、现在表达式中是否函数中是否存在Return 语句为空是否存在混合运算是否对指针进行逻辑比较是否在逻辑表达式中使用赋值操作符是否表达式中使用空函数是否实参和形参个数不匹配(C+无)是否接口分析实参和形参类型不匹配是否函数参数定义的结构和调用的结构不一致是否循环体缺少括弧是否函数参数列表为空是否函数参数列表申明不一致是否其它基本模块中使用#define定义是否SWITCH 结构含多个(大于 1)DEFAULT是否函数返回类型不一致函数和函数的原型的返回不一致是 否 是 否 14函数和函数的原型的形参不一致函数和函数的原型的形参不一致是 否 7是 否 10是 否 LCSAJ20是 否 200是 否

17、15审查项目Line级别测试内容对应英文规则审查项目Line级别测试内容对应英文规则42M函数不是所有的路径上都有返回值# Function does notpaths.43M函数的实参是全局变量#Actualparameter控制流分析362M存在不可达代码#Unreachable Code fou184#Construct leads to185C存在循环条件不可达#Infeasible loop cond40M函数包含无限循环(无终止条件)#Procedure contains27M存在无限循环结构#Infinite loop used.204M在循环语句中有多个控制变量#More th

18、an one contro78M存在浮点相等比较#Equality comparison13M使用 goto 语句#goto detected.58C函数存在多个入口#Procedure has more t59C函数存在多个出口#Procedure has more t数据流分析2M标识名重用#Label name reused.41M存在没使用的函数参数#Unused procedure par1procedure.44Mprocedure.44M代码中有多余变量# Variables were decla45M变量未赋初值就引用# UR data flow anomal51M参数与期望的

19、作用不匹配# Parameters do not ma54M给值传递参数赋值# Attempt to change pa12M31个字符# Identifier exceeds *characters.127M函数定义无相应原型# Procedure definitionprototype.137M存在潜在的无限循环#Potentially infinite361M指针在使用之前没有进行非空检查#Pointer not checked380M往没有打开过的文件中写#Attempt to write to381M文件指针在退出时没有关闭#File pointer not clo表达式分析192M

20、表达式中的括号使用正确:表达式中使用#Curly brackets used71M存在数组下标越界#Array bound exceeded264M存在被零除#Divide by 0 found.82MSWITCH 82MSWITCH 语句是否为空# Empty switch stateme83MSWITCH 语句只含DEFAULT情况# Switch contains defa72MSWITCH 语句缺少DEFAULT# No default case in84MCASE 语句缺少BREAK# Switch Case not19386M返回类型为VOID 的函数出现在表达式中#Void procedure used88M函数中是否存在Return 语句为空#Function with empty153M存在混合运算#Use of mixed mode149M对指针进

温馨提示

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

评论

0/150

提交评论