ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:314.67KB ,
资源ID:5552641      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5552641.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Testbed静态测试使用指南V11.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Testbed静态测试使用指南V11.docx

1、Testbed静态测试使用指南V111 Testbed功能介绍1.1 编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。1.2 数据流分

2、析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。 通过 Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1. 没使用的函数参数;2. 不匹配的参数;3. 变量未赋初值就引用;4. 代码中有多余变量;5. 给值传递参数赋值;6. 无返回值的函数路径;7. 函数的实参是全局变量。1.3 控制流分析控制流分析检查以下内容:1. 不可达代码;2. 不合理的循环结构;3. 存在浮点相等比较;4. 函数存在多个出口

3、;5. 函数存在多个入口。1.4 表达式分析表达式分析检查以下内容:1. 表达式中的括号使用不当;2. 数组下标越界;3. 存在被零除;4. SWITCH语句缺少DEFAULT;5. CASE语句缺少BREAK;6. 存在混合运算;7. 对指针进行逻辑比较;8. 在逻辑表达式中使用赋值操作符。1.5 接口分析接口分析检查以下内容:1. 实参和形参个数不匹配;2. 实参和形参类型不匹配;3. 函数参数定义的结构和调用的结构不一致。1.6 软件质量度量分析对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。LDRA Testbed很好地解决了这一问题,使得管理者

4、很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制。Testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。静态分析的软件度量元和相应的说明见表1:表 1 软件质量度量元说明序号度量元指标要求说明1 函数代码行数=20%代码的有效注释率。3 函数参数=7函数参数个数。4 Goto语句0Goto语句数。5 圈复杂度=10控制流图中边的数量与节点数量之间的差值加2。6 基本复杂度=4圈复杂度与流程图中结构化子图的数量之间的差值;基本复杂度高意味着非结构化程度高,难以模块化和维护。7 LCSAJ密度=

5、20LCSAJ 密度是一个描述软件可维护性的概念,它是指当改变一行代码时,对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低。8 控制流结点数=10控制流结点数表示流程图中控制流相交的交点数。9 基本结点数=5将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本结点数。10 扇入度量=7调用本函数的上层函数的个数。11 扇出度量=20%在Quality Report (HTML)中的 Global Basic Information获取可执行代码行总数与注释行总数注释行总数/(注释行总数+可执行代码行总数)函数代码行数=200System R

6、esults菜单下选择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,基本复杂度=

7、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

8、子菜单 中的Static Bar ChartsCyclomatic Complexity基本复杂度=4Essential Cyclomatic Complexity控制流结点数=10Knots基本结点数=5Essential Knots以圈复杂度为例:选择Static Bar Charts子菜单下的“Essential Cyclomatic Complexity”,弹出如下所示柱状图,在该界面,将Graph菜单下的Show Bar Components选中,可查看函数基本圈复杂度具体信息。3.2 程序质量度量报告单表 2 程序质量度量报告单度量元指标说明违反个数所在软件具体描述函数代码行数=2

9、0%代码的有效注释率函数参数=7函数参数个数Goto语句0Goto语句数圈复杂度=10控制流图中边的数量与节点数量之间的差值加2基本复杂度=4圈复杂度与流程图中结构化子图的数量之间的差值LCSAJ密度=20LCSAJ 密度是一个描述软件可维护性的概念控制流结点数=10控制流结点数表示流程图中控制流相交的交点数基本结点数=5将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本结点数。扇入度量=7调用本函数的上层函数的个数扇出度量=7本函数调用下层函数的个数3.3 静态分析质量报告单报告单中列出的审查内容根据测试需求确定,其中部分度量指标在质量度量报告中会重复出现,此表可以不列出。审查

10、结果根据根据Quality Report确定。表 3 静态分析质量报告单审查项目测试内容审查结果控制流分析是否存在不可达代码是 否 是否存在循环条件不可达是 否 函数是否包含无限循环(无终止条件)是 否 是否存在无限循环结构是 否 在循环语句中是否有多个控制变量是 否 是否存在浮点相等比较是 否 使用goto语句是 否 函数是否存在多个入口是 否 函数是否存在多个出口是 否 数据流分析是否存在标识名重用是 否 是否存在没使用的函数参数是 否 函数不是所有的路径上都有返回值是 否 函数的实参是全局变量是 否 代码中有多余变量是 否 变量未赋初值就引用是 否 参数与期望的作用不匹配是 否 给值传递

11、参数赋值是 否 标识符超过31个字符是 否 函数定义无相应原型是 否 存在潜在的无限循环是 否 指针在使用之前没有进行非空检查是 否 往没有打开过的文件中写是 否 文件指针在退出时没有关闭是 否 表达式分析表达式中使用是 否 存在数组下标越界是 否 存在被零除是 否 SWITCH语句是否为空是 否 SWITCH语句只含DEFAULT情况是 否 SWITCH语句缺少DEFAULT是 否 CASE语句缺少BREAK是 否 返回类型为VOID 的函数出现在表达式中是 否 函数中是否存在Return语句为空是 否 存在混合运算是 否 对指针进行逻辑比较是 否 在逻辑表达式中使用赋值操作符是 否 表达式

12、中使用空函数是 否 接口分析实参和形参个数不匹配(C+无)是 否 实参和形参类型不匹配是 否 函数参数定义的结构和调用的结构不一致是 否 其它循环体缺少括弧是 否 函数参数列表为空是 否 函数参数列表申明不一致是 否 基本模块中使用#define定义是 否 SWITCH结构含多个(大于1)DEFAULT是 否 函数返回类型不一致是 否 函数和函数的原型的返回不一致是 否 函数和函数的原型的形参不一致是 否 函数参数超过7个是 否 圈复杂度超过10是 否 LCSAJ密度超过20是 否 函数代码行超过200行是 否 附录A:静态分析推荐规则使用说明审查项目Line级别测试内容对应英文规则控制流分析

13、362M存在不可达代码# Unreachable Code found. 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 compariso

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

15、局变量# 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 expected actions.54M给值传递参数赋值# Attempt to change parameter passed by value.12M标识符超过31个字符# Identifier exceeds * signi

16、ficant 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文件指针在退出时没有关闭# not closed on exit表达式分析192M表达式中的括号使用正确:表达式中

17、使用# Curly brackets used in expression.71M存在数组下标越界# Array bound exceeded.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 terminated wi

18、th break. AV 19386M返回类型为VOID 的函数出现在表达式中# Void procedure used in expression.88M函数中是否存在Return语句为空# Function with empty return expression.153M存在混合运算# Use of mixed mode arithmetic. 149M对指针进行逻辑比较# Logical comparison of pointers.176M在逻辑表达式中使用赋值操作符# Assignment operator in boolean expression.88M表达式中使用空函数# V

19、oid procedure used in expression.接口分析22M实参和形参个数不匹配(C+无)# Number of parameters does not match.112M实参和形参类型不匹配# Actual and formal parameters inconsistent.151M函数参数定义的结构和调用的结构不一致# Parameter structure mismatch.其它12C循环体缺少括弧# No brackets to loop body (Testbed).85C函数参数列表为空# Empty parameter list to procedure/

20、function.188C函数参数列表申明不一致# Parameter list declarations are inconsistent.147C基本模块中使用#define定义# #define used in a block.392MSWITCH结构含多个(大于1)DEFAULT# Switch has more than one default case.115M函数返回类型不一致# Function return type inconsistent.116M函数和函数的原型的返回不一致# Function and prototype return inconsistent.117M函数和函数的原型的形参不一致# Function and prototype parameter inconsistent.19M函数参数超过7个# More than * parameters in procedure.36M圈复杂度超过10# Cyclomatic Complexity measure greater than *.199MLCSAJ密度超过20# LCSAJ density exceeds *.5M函数代码行超过200行# Procedure exceeds * reformatted lines注:M的优先级高于C。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1