LDRATestbed静态分析操作步骤.docx
《LDRATestbed静态分析操作步骤.docx》由会员分享,可在线阅读,更多相关《LDRATestbed静态分析操作步骤.docx(13页珍藏版)》请在冰豆网上搜索。
LDRATestbed静态分析操作步骤
使用LDRATestbed对代码进行静态分析
静态分析的主要操作:
1分析对象选择
2分析前的设置
3分析项的选择与分析过程
4分析结果的查看详细操作如下:
一、分析对象的选择,即如何选择你的分析对象(被分析的文件);
有两种方式:
单个文件分析和以集(set)的形式分析,以集的形式分析可每次分析多个文件
1.单个文件分析选择打开程序LDRATestbed,点击Testbed的菜单file通过文件浏览窗口打开文件要分析的文件,如C:
\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c。
点击select之后,可以在工具快捷按钮栏的下方看见目前选择的文件
2.以集(set)的形式分析选择
①创建集合(set),设置集合属性
打开程序LDRATestbed,点击Testbed的菜单SetSelect/Create/DeleteSets弹出set创建窗口
在图中上部的Select/CreateSets区域写入set的名字,然后点击下部的Create按钮创建set,此时会弹出set的属性设置对话框,有两种属性可以设置”Group和””System;”
此两种属性的区别:
Group只是把set中的多个文件孤立的分析,不会分析文件间代码的相互关系,可作为批量分析使用。
System把set中的多个文件作为一个工程来分析,能够分析文件间的代码的关联,一般
都会采用此种属性。
Set创建之后可在窗口中确认如下:
其中demo为set的名字,system为set的属性,(0files)代表set中目前没有文件②向集合中添加文件
点击Testbed的菜单SetList/Add/RemoveFilesinSets弹出添加文件窗口
点击图中的Add按钮,通过文件浏览窗口可添加多个文件到set中。
分析前的设置在分析前需要对工具进行简单的设置,主要包括用户头文件的设置和编码规则集的设置。
1.基本的静态设置,包含头文件和编译宏设置。
点击Testbed菜单configurestaticoption,弹出staticanalysisoptin对话框,在选项卡Includefiles中的内容是对头文件的设置,可关注的设置有,“AnalysisIncludefiles区域设定”头文件的展开方式(即分不分析头文件),建议选择第二种Analysisthefirstinstanceofeachfoundinclude
“Interactiveinclude”区域设定代码中出现头文件包含语句时,工具与用户的交互方式,建议选择第三种Displaydialogonlywhenincludefound
“IncludeSearchDirectories区域设置”用户头文件的查找目录和系统头文件的处理方式按钮SearchOptions可设置用户头文件的查找目录,可通过
浏览方式添加目录
按钮SystenIncludeSearch可设置系统头文件的展开方式,建议设为Don'tExpand
在选项卡macros中设定用户代码编译宏的处理方式
sysppvar区”域是对编译宏的定义设置,对于在编译命令中定义的宏,而在代码中使用此宏影响代码的编译的情况,需要用户把此宏添加到工具的设置文件中,可点击Edit
Default按钮打开文件sysppvar.dat,在此文件中添加相应的宏定义,宏定义的方式可通过点击蓝色的Example显示样例;
“InteractiveconditionalPreprocessingOptions区域是设置针对”代码中未识别的宏的处理及交互方式;如果选中”InteractivePreprocessing,当出”现未识别的宏时会弹出对话框,让用户定义此宏,如果不选当出现未识别的宏则不弹窗口;”AutoMacro”设定宏的自动定
义处理方式,
”Enable–promtformacrovaul弹e窗提示并”让用户指定宏值
”Enable–nopromt,usedefau不lt弹窗提示”,使用默认值
”Disable–stopstaticanalys弹is窗,并停”止分析
2.代码评审报告设定。
在Testbed菜单configurecodereviewreportoptions点击,弹出codereviewreport对话框.
在选项卡ReportbasedConfiguration中”ProgrammingStandardsModel”区域中选择你要生成编码规则检查结果报告所使用的规则集的名字;
在”AdditionalDetailforeachStandardsViolation区”域中设定在代码评审结果报告是否包
含原代码行号和格式化后的代码行号。
在选项卡DataFiles中可以实现对编码规则集的定制,在”StandardsModelEditor区域”点击按钮”LaunchEditor可”以打开编码规则图形化定制的画面
其中列代表的是具体的规则条目,行代表的是规则集的名称,通过选择框的选择可以把某条规则包含或剔除到规则集内。
3.质量评审报告设定
在Testbed菜单configurequalityreviewreoportoptions点击,弹出qualityreviewreport对话框,在”Metpenconfiguration区”域可以设定质量评审报告中每个度量元的上下限的阈值,即可定制质量模型以便生成质量评审报告,点击”C:
\LDRA_Toolsuite\metpen.dat后的”Edit按”钮,可打开质量模型配置文件,修改此文件中度量元的上下限阈值即可修改质量模型。
4.数据对象分析报告设定。
在菜单configuredataobjectanalysisreoportoptions点击,弹出dataobjectanalysisconfiguration对话框,设定数据对象分析报告中显示的对象范围。
分析项的选择与分析过程在Testbed菜单analysisselectanalysis点击,弹出selectanalysis对话框,在此对话框中选择要执行的静态分析项:
mainstaticanalysis、complexityanalysis、staticdataflowanalysis、
crossreference、informationflowanalysis、dataobjectanalysis,然后点击startanalysis按钮进行分析。
四、
分析结果(报告)查看
1.单个文件结果查看
点击Testbed菜单Individualresults可看到下拉项Sourcecode、Textresults、Graphicalresults分别显示了分析结果,这三个下拉项均可展开,便于用户查看详细的分类结果。
文本化的分析结果:
图形化的分析结果
2.集(set)的结果查看
点击Testbed菜单Setresults可看到下拉项Textresults、Graphicalresults分别显示了分析结果,每个下拉项均可展开,便于用户查看详细的分类结果。
此LCSAJ所有满足的条件,可指导用户设计测试用例增加
LCSAJ的覆盖率
Dataflowanalysisreport数据流报告,包含变量的使用异常、函数接口参数、全局变量
和函数调用关系
Procedureheadercomment函数头注释,可以自动生成函数头注释便于用户使用
Userdefinedtypereport用户自定义类型报告
Crossreferencereport交叉索引报告,包括所有数据项的分析,类型属性Informationflowanalysisreport信息流报告,对函数中变量的依赖关系分析,包含强依赖、弱依赖、条件依赖,强定义、弱定义
Dataobjectanalysisreport数据对象报告,根据单个或一组对象信息获取此对象的所有数据分析情况
图形报告
静态调用关系图,反应函数的层次及调用关系静态控制流图,反应函数内部的控制流程标准kv图
第1层间隔数目基本块可执行格式化代码行函数注释