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

下载本文档

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

文档简介

v1.0可编写可改正目录1Testbed功能介绍11.1编程规则考证11.2数据流剖析11.3控制流剖析11.4表达式剖析21.5接口剖析21.6软件质量胸怀剖析22使用Testbed进行编码规则的定制和检查32.1确立测试需求42.2成立测试工程42.3定制代码剖析规则72.4配置Report选项82.5剖析履行及结果查察103结果剖析及测试报告编写113.1质量胸怀信息的获得113.2程序质量胸怀报告单133.3静态剖析质量报告单15附录A:静态剖析介绍规则使用说明1文案v1.0可编写可改正1Testbed功能介绍1.1编程规则考证编程标准考证是高靠谱性软件开发不行缺乏的软件质量保证方法,使用LDRATestbed自动地考证应用软件能否依照了所选择的编程规则。编程规则由软件项目管理者依据自己项目的特色并参照现有的成熟的软件编程标准拟订,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRATestbed依照此规则搜寻应用程序,并判断代码能否违犯所拟订的编程规则。LDRATestbed报告全部违反编程规则的代码并以文本方式或图形反标明的方式显示。测试人员或编程人员可依据显示的信息对违犯编程规则的代码进行改正。1.2数据流剖析LDRATestbed剖析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清楚地辨别出变量使用惹起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。经过Testbed数据流剖析功能,可方便地剖析出软件中一些可能的程序欠缺,如:没使用的函数参数;不般配的参数;变量未赋初值就引用;代码中有剩余变量;给值传达参数赋值;无返回值的函数路径;函数的实参是全局变量。1.3控制流剖析控制流剖析检查以下内容:不行达代码;1文案v1.0可编写可改正不合理的循环构造;存在浮点相等比较;函数存在多个出口;函数存在多个进口。1.4表达式剖析表达式剖析检查以下内容:表达式中的括号使用不妥;数组下标越界;存在被零除;SWITCH语句缺乏DEFAULT;CASE语句缺乏BREAK;存在混淆运算;对指针进行逻辑比较;在逻辑表达式中使用赋值操作符。1.5接口剖析接口剖析检查以下内容:实参和形参个数不般配;实参和形参种类不般配;函数参数定义的构造和调用的构造不一致。1.6软件质量胸怀剖析关于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是特别困难的且费时。LDRATestbed很好地解决了这一问题,使得管理者很简单地采集正在开发的软件系统的有关信息并判断软件能否知足软件质量标准要求,进而达到对软件项目的质量追踪与控制。Testbed供给数据文件接口,用户可鉴于现行软件标准自行定义合适本系统或项目的软件质量模型。静态剖析的软件胸怀元和相应的说明见表1:2文案v1.0可编写可改正表1软件质量胸怀元说明序号胸怀元指标要求说明1函数代码行数<=200函数包括的语句数。2说明胸怀>=20%代码的有效说明率。3函数参数<=7函数参数个数。4Goto语句0Goto语句数。5圈复杂度<=10控制流图中边的数目与节点数目之间的差值加2。圈复杂度与流程图中构造化子图的数6基本复杂度<=4量之间的差值;基本复杂度高意味着非构造化程度高,难以模块化和保护。LCSAJ密度是一个描绘软件可保护性的观点,它是指当改变一行代码时,7LCSAJ密度<=20对其余线性代码次序和跳转的影响程度,值越大说明影响的测试路径相对越多,所以系统可保护性越低。8控制流结点数<=10控制流结点数表示流程图中控制流相交的交点数。将流程图中的构造化部分简化成一个9基本结点数<=5点,简化此后流程图的结点数是基本结点数。10扇入胸怀<=7调用本函数的上层函数的个数。11扇出胸怀<=7本函数调用基层函数的个数。使用Testbed进行编码规则的定制和检查LDRATestbed可经过编写编码规则文件实现编码规则的定制,下边将详细介绍:3文案v1.0可编写可改正2.1确立测试需求在测试需求剖析阶段确立:确立测试对象:整个MSVC工程仍是文件会合;纯C文件、纯C++仍是C/C++混淆文件。确立测试内容:确立静态剖析规则,可参照附录A所示静态剖析介绍规则使用说明。确立测试“种类”:确立是进行击System剖析仍是Group剖析(选择Group时,不对代码进行集成测试,不过采纳批办理方式剖析单个文件)。2.2成立测试工程启动Testbed,依据剖析对象,选择测试工程种类。如需对整个MSVC工程进行剖析,选择CreateSetBasedUponMSVCv6Project;如剖析对象是一个或多个C、C++文件,选择Select/Create/DeleteSet。下边以在Set菜单下选择Select/Create/DeleteSet选项为例进行说明。2.在Select/CreateSet输入框中输入“Demo”,点击【Create】按钮4文案v1.0可编写可改正点击【System】按钮(选择Group时,不对代码进行集成测试,不过采纳批办理方式剖析单个文件)。点击右上侧【Add】按钮,选择好要剖析的文件,点击【Add】按钮后点OK】按钮进行确认。5文案v1.0可编写可改正6文案v1.0可编写可改正2.3定制代码剖析规则1.点击菜单栏中的Configure,在下拉菜单中点击StaticOptions选项,将会出现以下窗口,点击后的Edit按钮,依照提示编写后。若存在已编写好的编码规则文件,可按旁边的阅读键直接指定该dat文件,则下边第3步能够省略。编写第2列,依据实质需求,将对应编码规则置“0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效。7文案v1.0可编写可改正2.4配置Report选项1.QualityReport配置点击菜单栏中的Configure,在下拉菜单中点击QualityReportOptions选项,将会出现以下窗口,在ProgrammingStandardModel下拉框中选择“NoModel–allstandards”。如剖析的文件为C、C++混淆种类,则在下列图右边所示下拉列表中分别选择一个.C和.CPP文件,选中对应文件后选择在ProgrammingStandardModel下拉框中选择“NoModel–allstandards”。8文案v1.0可编写可改正在OptionalConfiguration中ViolationSummaries选中“All”,依据需要选择ReportViolationsOnly(QualityReport只列出有违犯的)。2.MetricsReport配置点击菜单栏中的Configure,在下拉菜单中点击MetricsReportOptions选项,将会出现以下窗口,依据测试需求配置metpen,dat及文件。9文案v1.0可编写可改正2.5剖析履行及结果查察1.点击菜单栏中的Analysis,在下拉菜单中点击SelectAnalysis,将会出现以下窗口,选择前3项,点击StartAnalysis按钮,开始进行静态剖析。2.静态剖析结束后,点击菜单栏中的Individual/SystemResults,选择下拉菜单TextResults中的QualityReport(HTML),查察质量报告。10文案v1.0可编写可改正结果剖析及测试报告编写3.1质量胸怀信息的获得胸怀胸怀信息可经过以下几种方式获得:1.查察规则审察报告:点击菜单栏中的IndividualResults/SystemResults,选择下拉菜单TextResults中的QualityReport(HTML)。胸怀元指标查察地点详细说明11文案v1.0可编写可改正在QualityReport(HTML)中的GlobalBasic说明行总数/(说明行总数说明胸怀>=20%Information获得可履行代+可履行代码行总数)码行总数与说明行总数函数代码行数<=200函数参数<=7Goto语句0圈复杂度<=10LCSAJ密度<=20

函数代码行超出200行SystemResults菜单下选择函数参数超出7个TextResults子菜单中的使用goto语句QualityReport(HTML)圈复杂度超出10LCSAJ密度超出202.查察质量胸怀报告:点击菜单栏中的IndividualResults/SystemResults,选择下拉菜单TextResults中的MetricsReport(HTML)。胸怀元指标查察地点详细说明圈复杂度<=10CyclomaticComplexity,EssentialCyclomatic基本复杂度<=4MetricReport中ComplexityComplexityMetrics控制流结点数<=10基本结点数<=5LCSAJ密度<=20扇入胸怀<=7

KnotsEssentialKnotsLCSAJandUnreachabilityMaximumLCSAJDensityFanInDataflowInformation扇出胸怀<=7FanOut3.查察图形化报告:点击菜单栏中的SystemResults,选择下拉菜单GraphicalResults中的StaticBarCharts。胸怀元指标查察地点详细说明12文案圈复杂度<=10基本复杂度<=4控制流结点数<=10基本结点数<=5

v1.0可编写可改正CyclomaticComplexitySystemResults菜单下EssentialCyclomaticGraphicalResults子菜单Complexity中的StaticBarChartsKnotsEssentialKnots以圈复杂度为例:选择StaticBarCharts子菜单下的“EssentialCyclomaticComplexity”,弹出以下所示柱状图,在该界面,将Graph菜单下的ShowBarComponents选中,可查察函数基本圈复杂度详细信息。3.2程序质量胸怀报告单表2程序质量胸怀报告单违犯胸怀元指标说明所在软件详细描绘个数函数代码行函数包括的语<=200数句数13文案v1.0可编写可改正说明胸怀>=20%代码的有效注释率函数参数<=7函数参数个数Goto语句0Goto语句数控制流图中边圈复杂度<=10的数目与节点数目之间的差值加2圈复杂度与流程图中构造化基本复杂度<=4子图的数目之间的差值LCSAJ密度是LCSAJ密度<=20一个描绘软件可保护性的概念控制流结点数控制流结点<=10表示流程图中数控制流订交的交点数将流程图中的构造化部分简基本结点数<=5化成一个点,简化此后流程图的结点数是基本结点数。调用本函数的扇入胸怀<=7上层函数的个数扇出胸怀<=7本函数调用下层函数的个数14文案v1.0可编写可改正3.3静态剖析质量报告单报告单中列出的审察内容依据测试需求确立,此中部分胸怀指标在质量胸怀报告中会重复出现,此表能够不列出。审察结果依据依据QualityReport确立。表3静态剖析质量报告单审察项目测试内容审察结果是[]否能否存在不行达代码[]是[]否能否存在循环条件不行达[]是[]否函数能否包括无穷循环(无停止条件)[]是[]否能否存在无穷循环构造[]是[]否控制流剖析在循环语句中能否有多个控制变量[]是[]否能否存在浮点相等比较[]是[]否使用goto语句[]是[]否函数能否存在多个进口[]是[]否函数能否存在多个出口[]是[]否数据流剖析能否存在表记名重用[]15文案v1.0可编写可改正是[]否能否存在没使用的函数参数[]是[]否函数不是全部的路径上都有返回值[]是[]否函数的实参是全局变量[]是[]否代码中有剩余变量[]是[]否变量未赋初值就引用[]是[]否参数与希望的作用不般配[]是[]否给值传达参数赋值[]是[]否表记符超出31个字符[]是[]否函数定义无相应原型[]是[]否存在潜伏的无穷循环[]是[]否指针在使用以前没有进行非空检查[]是[]否往没有翻开过的文件中写[]是[]否文件指针在退出时没有封闭[]16文案v1.0可编写可改正是[]否表达式中使用{}[]是[]否存在数组下标越界[]是[]否存在被零除[]是[]否SWITCH语句能否为空[]是[]否SWITCH语句只含DEFAULT状况[]是[]否SWITCH语句缺乏DEFAULT[]是[]否表达式剖析CASE语句缺乏BREAK[]是[]否返回种类为VOID的函数出此刻表达式中[]是[]否函数中能否存在Return语句为空[]是[]否存在混淆运算[]是[]否对指针进行逻辑比较[]是[]否在逻辑表达式中使用赋值操作符[]是[]否表达式中使用空函数[]17文案v1.0可编写可改正是[]否实参和形参个数不般配(C++无)[]是[]否接口剖析实参和形参种类不般配[]是[]否函数参数定义的构造和调用的构造不一致[]是[]否循环体缺乏括弧[]是[]否函数参数列表为空[]是[]否函数参数列表声明不一致[]是[]否基本模块中使用#define定义[]是[]否SWITCH构造含多个(大于1)DEFAULT[]其余是[]否函数返回种类不一致[]是[]否函数和函数的原型的返回不一致[]是[]否函数和函数的原型的形参不一致[]7个是[]否函数参数超出[]是[]否圈复杂度超出10[]18文案v1.0可编写可改正是[]否LCSAJ密度超出20[]是[]否函数代码行超出200行[]19文案v1.0可编写可改正附录A:静态剖析介绍规则使用说明审察项目Line级别测试内容对应英文规则控制流剖析362M存在不行达代码#UnreachableCodefound.184#Constructleadstoinfeasiblecode.185C存在循环条件不行达#Infeasibleloopconditionfound.40M函数包括无穷循环(无停止条件)#Procedurecontainsinfiniteloop.27M存在无穷循环构造#Infiniteloopused.204M在循环语句中有多个控制变量#Morethanonecontrolvariableforloop.78M存在浮点相等比较#Equalitycomparisonoffloatingpoint.13M使用goto语句#gotodetected.58C函数存在多个进口#Procedurehasmorethanoneentrypoint59C函数存在多个出口#Procedurehasmorethanoneexitpoint数据流剖析2M表记名重用#Labelnamereused.41M存在没使用的函数参数#Unusedprocedureparameter.42M函数不是全部的路径上都有返回值#Functiondoesnotreturnavalueonallpaths.1文案v1.0可编写可改正43M函数的实参是全局变量#Actualparameterisalsoglobaltoprocedure.44M代码中有剩余变量#Variablesweredeclaredbutneverused.45M变量未赋初值就引用#URdataflowanomaliesfound.51M参数与希望的作用不般配#Parametersdonotmatchexpectedactions.54M给值传达参数赋值#Attempttochangeparameterpassedbyvalue.12M表记符超出31个字符#Identifierexceeds***significantcharacters.127M函数定义无相应原型#Proceduredefinitionhasnoassociatedprototype.137M存在潜伏的无穷循环#Potentiallyinfiniteloopfound.361M指针在使用以前没有进行非空检查#Pointernotcheckedfornullbeforeuse380M往没有翻开过的文件中写#Attempttowritetounopenedfile381M文件指针在退出时没有封闭#Filepointernotclosedonexit表达式剖析192M表达式中的括号使用正确:#Curlybracketsusedinexpression.表达式中使用{}71M存在数组下标越界#Arrayboundexceeded.264M存在被零除#Divideby0found.2文案v1.0可编写可改正82MSWITCH语句能否为空#Emptyswitchstatement.83MSWITCH语句只含DEFAULT状况#Switchcontainsdefaultonly.72MSWITCH语句缺乏DEFAULT#Nodefaultcaseinswitchstatement.84MCASE语句缺乏BREAK#SwitchCasenotterminatedwithbreak.AV19386M返回种类为VOID的函数出此刻表达式中#Voidprocedureusedinexpression.88M函数中能否存在Return语句为空#Functionwithemptyreturnexpression.153M存在混淆运算#Useofmixedmodearithmetic.149M对指针进行逻辑比较#Logicalcomparisonofpointers.176M在逻辑表达式中使用赋值操作符#Assignmentoperatorinbooleanexpression.88M表达式中使用空函数#Voidproc

温馨提示

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

评论

0/150

提交评论