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

下载本文档

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

文档简介

1、-PAGE . z.目 录 TOC o 1-3 h z u HYPERLINK l _Toc2402601161Testbed功能介绍 PAGEREF _Toc240260116 h 1HYPERLINK l _Toc2402601171.1编程规则验证 PAGEREF _Toc240260117 h 1HYPERLINK l _Toc2402601181.2数据流分析 PAGEREF _Toc240260118 h1HYPERLINK l _Toc2402601191.3控制流分析 PAGEREF _Toc240260119 h 1HYPERLINK l _Toc2402601201.4表达

2、式分析 PAGEREF _Toc240260120 h 2HYPERLINK l _Toc2402601211.5接口分析 PAGEREF _Toc240260121 h 2HYPERLINK l _Toc2402601221.6软件质量度量分析 PAGEREF _Toc240260122 h 2HYPERLINK l _Toc2402601232使用Testbed 进展编码规则的定制和检查 PAGEREF _Toc240260123 h 2HYPERLINK l _Toc2402601242.1确定测试需求 PAGEREF _Toc240260124 h 2HYPERLINK l _Toc2

3、402601252.2建立测试工程 PAGEREF _Toc240260125 h 2HYPERLINK l _Toc2402601262.3定制代码分析规则 PAGEREF _Toc240260126 h 2HYPERLINK l _Toc2402601272.4配置Report选项 PAGEREF _Toc240260127 h 2HYPERLINK l _Toc2402601282.5分析执行及结果查看 PAGEREF _Toc240260128 h 2HYPERLINK l _Toc2402601293结果分析及测试报告编写 PAGEREF _Toc240260129 h 2HYPER

4、LINK l _Toc2402601303.1质量度量信息的获取 PAGEREF _Toc240260130 h 2HYPERLINK l _Toc2402601313.2程序质量度量报告单 PAGEREF _Toc240260131 h 2HYPERLINK l _Toc2402601323.3静态分析质量报告单 PAGEREF _Toc240260132 h 2HYPERLINK l _Toc240260133附录A:静态分析推荐规则使用说明 PAGEREF _Toc240260133 h 2-. z.Testbed功能介绍编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方

5、法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。编程规则由软件工程管理者根据自身工程的特点并参考现有的成熟的软件编程标准制定,如DERA欧洲防务标准,MISRA汽车软件标准,LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。测试人员或编程人员可根据显示的信息对违反编程规则的代码进展修改。数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起

6、的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。 通过 Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:没使用的函数参数;不匹配的参数;变量未赋初值就引用;代码中有多余变量;给值传递参数赋值;无返回值的函数路径;函数的实参是全局变量。控制流分析控制流分析检查以下容:不可达代码;不合理的循环构造;存在浮点相等比拟;函数存在多个出口;函数存在多个入口。表达式分析表达式分析检查以下容:表达式中的括号使用不当;数组下标越界;存在被零除;SWITCH语句缺少DEFAULT;CASE语句缺少BREAK;存在混合运算;对指针进展逻辑比拟;在逻辑表达式中使用赋值操作符

7、。接口分析接口分析检查以下容:实参和形参个数不匹配;实参和形参类型不匹配;函数参数定义的构造和调用的构造不一致。软件质量度量分析对于软件开发工程师、工程负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而到达对软件工程的质量跟踪与控制。Testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或工程的软件质量模型。静态分析的软件度量元和相应的说明见表1:软件质量度量元说明序号度量元指标要求说明函数代码行数=20%代码的有效注释率。函

8、数参数=7函数参数个数。Goto语句0Goto语句数。圈复杂度=10控制流图中边的数量与节点数量之间的差值加2。根本复杂度=4圈复杂度与流程图中构造化子图的数量之间的差值;根本复杂度高意味着非构造化程度高,难以模块化和维护。LCSAJ密度=20LCSAJ 密度是一个描述软件可维护性的概念,它是指当改变一行代码时,对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低。控制流结点数=10控制流结点数表示流程图中控制流相交的交点数。根本结点数=5将流程图中的构造化局部简化成一个点,简化以后流程图的结点数是根本结点数。扇入度量=7调用本函数的上层函数的个数。扇出度

9、量=20%在Quality Report(HTML)中的 Global Basic Information获取可执行代码行总数与注释行总数注释行总数/注释行总数+可执行代码行总数函数代码行数=200System Results菜单下选择Te*t Results子菜单中的Quality Report(HTML)函数代码行超过200行函数参数=7函数参数超过7个Goto语句0使用goto语句圈复杂度=10圈复杂度超过10LCSAJ密度=20LCSAJ密度超过202. 查看质量度量报告:点击菜单栏中的Individual Results/System Results,选择下拉菜单Te*t Resul

10、ts 中的Metrics Report (HTML)。度量元指标查看位置具体说明圈复杂度=10Metric Report中ple*ity MetricsCyclomatic ple*ity,根本复杂度=4Essential Cyclomatic ple*ity控制流结点数=10Knots根本结点数=5Essential KnotsLCSAJ密度=20LCSAJand UnreachabilityMa*imum LCSAJ Density扇入度量=7Dataflow InformationFan In 扇出度量=7Fan Out3. 查看图形化报告:点击菜单栏中的System Results,选

11、择下拉菜单Graphical Results 中的Static Bar Charts。度量元指标查看位置具体说明圈复杂度=10System Results菜单下Graphical Results子菜单中的Static Bar ChartsCyclomatic ple*ity根本复杂度=4Essential Cyclomatic ple*ity控制流结点数=10Knots根本结点数=5Essential Knots以圈复杂度为例:选择Static Bar Charts子菜单下的Essential Cyclomatic ple*ity,弹出如下所示柱状图,在该界面,将Graph菜单下的Show B

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

13、调用下层函数的个数静态分析质量报告单报告单中列出的审查容根据测试需求确定,其中局部度量指标在质量度量报告中会重复出现,此表可以不列出。审查结果根据根据Quality Report确定。静态分析质量报告单审查工程测试容审查结果控制流分析是否存在不可达代码是 否是否存在循环条件不可达是 否函数是否包含无限循环无终止条件是 否是否存在无限循环构造是 否在循环语句中是否有多个控制变量是 否是否存在浮点相等比拟是 否使用goto语句是 否函数是否存在多个入口是 否函数是否存在多个出口是 否数据流分析是否存在标识名重用是 否是否存在没使用的函数参数是 否函数不是所有的路径上都有返回值是 否函数的实参是全局

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

15、逻辑比拟是 否在逻辑表达式中使用赋值操作符是 否表达式中使用空函数是 否接口分析实参和形参个数不匹配C+无是 否实参和形参类型不匹配是 否函数参数定义的构造和调用的构造不一致是 否其它循环体缺少括弧是 否函数参数列表为空是 否函数参数列表申明不一致是 否根本模块中使用#define定义是 否SWITCH构造含多个大于1DEFAULT是 否函数返回类型不一致是 否函数和函数的原型的返回不一致是 否函数和函数的原型的形参不一致是 否函数参数超过7个是 否圈复杂度超过10是 否LCSAJ密度超过20是 否函数代码行超过200行是 否-. z.附录A:静态分析推荐规则使用说明审查工程Line级别测试容

16、对应英文规则控制流分析362M存在不可达代码#UnreachableCodefound. 184# Construct leads to infeasible code.185C存在循环条件不可达# Infeasible loop condition found.40M函数包含无限循环无终止条件# Procedure contains infinite loop.27M存在无限循环构造# Infinite loop used.204M在循环语句中有多个控制变量# More than one control variable for loop. 78M存在浮点相等比拟# Equality par

17、ison of floating point.13M使用goto语句# goto detected.58C函数存在多个入口#Procedure has more than one entry point59C函数存在多个出口#Procedure has more than one e*it point数据流分析2M标识名重用# Label name reused.41M存在没使用的函数参数# Unused procedure parameter.42M函数不是所有的路径上都有返回值# Function does not return a value on all paths.43M函数的实参是

18、全局变量# Actual parameter is also global to procedure.44M代码中有多余变量# Variables were declared but never used.45M变量未赋初值就引用# UR data flow anomalies found.51M参数与期望的作用不匹配# Parameters do not match e*pected actions.54M给值传递参数赋值# Attempt to change parameter passed by value.12M标识符超过31个字符# Identifier e*ceeds * sign

19、ificant characters.127M函数定义无相应原型# Procedure definition has no associated prototype.137M存在潜在的无限循环# Potentially infinite loop found.361M指针在使用之前没有进展非空检查# Pointer not checked for null before use380M往没有翻开过的文件中写# Attempt to write to unopened file381M文件指针在退出时没有关闭# File pointer not closed on e*it表达式分析192M表达

20、式中的括号使用正确:表达式中使用#Curly brackets used in e*pression.71M存在数组下标越界# Array bound e*ceeded.264M存在被零除# Divide by 0 found.82MSWITCH语句是否为空# Empty switch statement.83MSWITCH语句只含DEFAULT情况# Switch contains default only.72MSWITCH语句缺少DEFAULT#No default case in switch statement. 84MCASE语句缺少BREAK#Switch Case not te

21、rminated with break. AV 19386M返回类型为VOID 的函数出现在表达式中# Void procedure used in e*pression.88M函数中是否存在Return语句为空# Function with empty return e*pression.153M存在混合运算#Use of mi*ed mode arithmetic. 149M对指针进展逻辑比拟# Logical parison of pointers.176M在逻辑表达式中使用赋值操作符# Assignment operator in boolean e*pression.88M表达式中使用空函数# Void procedure used in e*pression.接口分析22M实参和形参个数不匹配C+无# Number of parameters does not match.112M实参和形参类型不匹配# Actual and formal parameters inconsistent

温馨提示

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

评论

0/150

提交评论