Testbed学习总结V10.docx
- 文档编号:1699424
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:11
- 大小:275.64KB
Testbed学习总结V10.docx
《Testbed学习总结V10.docx》由会员分享,可在线阅读,更多相关《Testbed学习总结V10.docx(11页珍藏版)》请在冰豆网上搜索。
Testbed学习总结V10
1.Testbed功能介绍
1.1编程标准验证
编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRATestbed自动地验证应用软件是否遵循了所选择的编程规则。
编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRATestbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。
LDRATestbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。
测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。
1.2数据流分析
LDRATestbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。
通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:
1、用错的局部或全局变量;
2、不匹配的参数;
3、遗漏的标号或代码;
4、未定义的变量;
等等,其中经常会发现程序中有未定义的变量情况发生。
1.3软件度量分析
对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。
LDRATestbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制。
Testbed提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。
LDRATestbed支持下列主要软件度量元分析:
●控制流结点度量(ControlFlowKnots);
●LCSAJ密度度量(LCSAJDensity);
●扇入/扇出度量;
●循环深度度量;
●McCabe圈复杂度;
●Halstead软件科学度量;
●McCabe基本圈复杂度;
●注释行度量;
●代码可达性度量;等等。
1.4质量报告生成
LDRATestbed自动生成各种质量报告供测试人员分析,包括代码规则检查报告、软件度量报告、数据流报告、交叉索引报告,报告形式可以为ASCII文本或HTML超文本,报告支持文件级与系统级。
1.5代码可视化显示
Testbed提供调用图与控制流程图,显示被测系统的调用关系及每个子程序的控制流程。
使用此功能用户可快速理解被测软件系统,并方便软件维护。
2.使用Testbed进行编码规则的定制和检查
LDRATestbed可通过编辑编码规则文件cpen.dat/cppen.dat实现编码规则的定制,下面将具体介绍:
1.启动Testbed,在File菜单下选择SelectFile选项,选择要分析的文件;
选择好要分析的文件,点击Select按钮完成。
2.点击菜单栏中的Configure,在下拉菜单中点击StaticOptions选项,将会出现如下窗口,点击cpen.dat后的Edit按钮,按照提示编辑cpen.dat。
若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该dat文件,则下面第3步可以省略。
3.编辑第2列,根据实际需求,将对应编码规则置“0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效。
4.点击菜单栏中的Configure,在下拉菜单中点击QualityReportOptions选项,将会出现如下窗口,在ProgrammingStandardModel下拉框中选择“Standard”。
5.点击菜单栏中的Analysis,在下拉菜单中点击SelectAnalysis,将会出现如下窗口,选择前3项,点击StartAnalysis按钮,开始进行静态分析。
6.静态分析结束后,点击菜单栏中的IndividualResults,选择下拉菜单TextResults中的QualityReport(HTML),查看质量报告。
3.静态分析报告
3.1静态分析质量报告单
表1静态分析质量报告单
审查项目
测试内容
技术要求
审查结果
控制流分析
是否存在不可达代码
否
是否存在不合理的循环结构
否
是否存在浮点相等比较
否
是否使用goto语句
否
函数是否存在多个出口
否
函数是否存在多个入口
否
数据流分析
是否存在没使用的函数参数
否
函数是否存在路径无返回值
否
是否存在函数的实参是全局变量
否
代码中是否存在多余变量
否
是否存在变量使用前未初始化
否
是否存在参数与期望的作用不匹配
否
表达式分析
是否出现表达式中的括号使用不当
否
是否存在数组下标越界
否
是否存在被零除
否
SWITCH语句是否缺少DEFAULT
否
CASE语句是否缺少BREAK
否
在非赋值表达式中是否使用赋值操作符
否
接口分析
是否存在形参与实参在类型、数量、顺序及维数等使用上的不一致性
否
是否存在模块与外部数据库的接口不一致性
否
是否存在各模块之间接口的不一致性
否
3.2程序质量度量报告单
表2程序质量度量报告单
度量元
描述
指标
违反
个数
所在软件
具体描述
文本度量
软件单元的
语句数
<=200
注释度量
代码的有效
注释率
>=20%
扇入数
调用该函数的
上层函数的个数
<7
扇出数
函数调用下层
函数的个数
<7
函数参数
函数参数
<=7
圈复杂度
<=10
基本复杂度
<=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))
基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序的质量,增加了代码的维护难度,使程序难于理解。
因此,基本复杂度高意味着非结构化程度高,难以模块化和维护。
实际上,消除了一个错误有时会引起其它的错误。
将流程图中的结构化部分简化成一个点,计算简化以后流程图的圈复杂度就是基本复杂度。
计算公式为:
EV(G)=V(G)-M
其中,M是流程图G中的结构化子图(出口和入口唯一)的数量。
●控制流结点数(Knots)
当两条控制流相交时,就产生一个控制流结点。
控制流结点数表示流程图中控制流相交的个数。
●基本节点数(EssentialKnots)
将流程图中的结构化部分简化成一个点,简化以后流程图的结点数是基本节点数。
●LCSAJ密度(LCSAJDensitys)
LCSAJ密度是一个描述软件可维护性的概念,它是指当改变一行代码时,对其它线性代码顺序和跳转的影响程度,值越大说明影响的测试路径相对越多,因此系统可维护性越低。
圈复杂度及控制流结点数示意图
3.4度量指标的获取
点击菜单栏中的IndividualResults/SystemResults,选择下拉菜单TextResults中的MetricReport(HTML),查看度量报告。
●复杂度度量
●
●LCSAJ和代码可达性度量
●注释行度量
●扇入/扇出度量
3.5原始记录保留
点击菜单栏中的IndividualResults/SystemResults,选择下拉菜单TextResults中的OverviewReport(HTML)、QualityReport(HTML)、MetricReport(HTML)及DataflowReport(HTML),另存为HTML文件,作为测试报告的原始记录保留下来。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Testbed 学习 总结 V10