LDRA Testbed系列(一)Testbed软件静态分析_操作指南
LDRA Testbed系列(二)Testbed软件静态分析_自动提取静态报告数据信息
LDRA Testbed系列(三)Testbed软件静态分析_Jenkins持续集成
LDRA Testbed系列(四)Testbed软件静态分析_常见问题及处理
LDRA Testbed系列(五)Testbed软件单元测试_操作指南
LDRA Testbed系列(六)Testbed软件单元测试_常见问题及处理
LDRA Testbed系列(七)Testbed软件集成测试_操作指南
LDRA Testbed系列(八)Testbed软件集成测试_常见问题及处理
LDRA公司是专业的软件测试工具与测试技术、咨询服务提供者,其总部位于英国利物浦。其旗舰产品Testbed/TBrun功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试。不仅能进行软件静态测试,还能进行软件单元测试、软件集成测试,在白盒测试领域运用比较广泛。
从本文开始,将进行LDRA Testbed的一系列功能的使用介绍,文章皆为本人的一些使用经验,若有不当之处,欢迎各位读者交流指正。
testbed有很多版本,目前最新的已经到了10.x.x,相比与以前的8.x.x和9.x.x,界面有了一些变化。本文以最新的10.1.0版本进行演示说明,相较于老版本,界面可能有些不同,但是操作流程和方法是大致相同的。
首先是testbed静态分析软件的打开方式,以前的老版本是在安装目录“C:\LDRA_Toolsuite”下点击Testbed.exe打开,而新版本是需要通过TBvision打开的,这点要注意。
通过TBvision打开静态分析软件后,可以看到如下界面,这个界面相较于老版本,也是有了一些变化的。(左侧和上方的工具栏均可以拖动调整,后面介绍的视图均已把工具图标统一拖动到上方)以下是界面的简单介绍:
1、标题栏 标题栏显示的是当前Testbed的版本信息和版权信息;
2、菜单栏 用户可通过菜单栏点击下拉菜单来完成文件选取、分析以及查看结果等各项功能;
3、工具栏 工具栏中是Testbed的一些常用功能的快捷按钮;
4、文件/类视图 以树状形式显示当前被选中的源文件或建立的集合相关的内容,包括每个函数及其接口函数、参数信息及返回类型;如果正在分析一个集合,则当前集合所加载的全部被分析文件都将显示在该窗口;
5、结果视图 用来显示选项卡,根据出现的违规情况显示结果,用户可以通过嵌入在选项卡内的“关闭”按钮关闭单个选项卡,或者通过“关闭所有结果页”按钮关闭所有选项卡;
6、日志窗口 日志窗口告诉用户工具当前正在进行什么分析操作、显示执行阶段、正在执行项以及执行完成的提示显示。
1、点击Source -> Single File
2、在弹出的Select File窗口中选择单个.c文件即可
1、点击Source ->Multiple files…
2、在弹出的Select/Create/Delete Sets窗口中,填写工程名,然后点击Create
3、在弹出的LDRA Testbed Question窗口中,选择System
4、在弹出的List/Add/Remove Files in Set窗口中,点击右侧的Add
5、在弹出的Add File(s) To Set窗口中,找到需要添加的工程路径,选择需要添加的所有.c文件(找到被测工程根目录,在File name中输入*.c,并勾选上recurse folders和verify selection,点击Add Wildcards,可将该目录下所有.c文件添加进来)
6、在弹出的Add Files To Set窗口中,可选择相应的文件并通过中间的None、>>、<<、All等按钮对文件列表再次选择,左侧列表表示去除不要的文件,右侧列表表示确定选择的文件。在确认好文件列表后,点击左下角的OK
7、回到List/Add/Remove Files in Set窗口,可对文件列表再次添加或删除,确认无误后,点击左下角的OK,完成文件列表添加
8、此时默认会弹出如下是否立刻执行静态分析的提示框,可先选择“否”,待完成后续配置后再进行静态分析。
9、此时就完成静态分析集合的创建与加载,在左侧会显示文件视图。
1、点击LDRA Configuration Dialogs-> Code Review Report Options
2、在弹出的Code Review Options窗口中,选择Data Files选项卡,点击“…”选择规则配置文件creport.dat和cpen.dat。(如果需要替换成自定义的规则文件才选,否则一般为默认项)
点击“Launch Editor”,可以对规则进行自定义配置
3、在弹出的Code Review Options窗口中,选择Programming Standards Model选项卡,下拉框选择需要使用的静态分析标准,比如选择“MISRA-C:2012/AMD2”,点击确定按钮,则规则配置完毕。
因静态分析实际不会进行完整的编译,仅进行静态的规则扫描检查,理论上选择什么编译器不会对结果造成影响,因此选择安装Testbed软件时默认配套安装的MinGW200 GCC C/C++即可。
1、点击LDRA Configuration Dialogs -> Switch Compiler…
2、在弹出的Configure Compiler窗口中,将Default Compiler和Source Compiler均选择为MinGW200 GCC C/C++后,点击OK
1、点击LDRA Configuration Dialogs-> Static Analysis Options…
2、在弹出的Static Analysis Options窗口Include Files页中,进行如下选项设置,然后点击Search Options…
3、在弹出的Include File Options窗口中,点击“…”
4、在弹出的Select Include file Search Path窗口中,添加需要包含的目录(比如找到待分析工程的根目录),点击“选择文件夹”
5、通过勾选Add Subdirectories as search path,并点击Add Search Path,可以将选择的目录及该目录下的所有子目录均添加到包含路径Search Path中。确认路径添加完毕后,点击OK
6、回到Static Analysis Options窗口,在Macros页中,可根据实际情况选择是否添加额外的预编译宏,添加宏定义的格式可点击Example查看,添加时点击Edit Default,在弹出的文本文件中编辑即可。
上面的Auto Macro选项是指在静态分析过程中,若遇到工具不能识别的宏定义,应进行哪种处理。“prompt for macro value”是指会进行弹框提示,让用户自己手动设置宏定义的值;“no prompt, use default”是指不会弹框提示,直接统一设置为默认值,默认值在右边设置;“stop static analysis”是指直接终止静态分析。一般选择第一种可以达到更有效的分析结果,避免工具未识别宏定义而错误分析。
确认都设置好后,点击OK,完成所有配置。
1、所有配置均完成后,工具栏中点击“√”形图标,或者在集合处右键点击Select Analysis Phases…
2、在弹出的Select Analysis窗口中,按照如下所示勾选前4项(快捷点击BS、QS)然后点击Start Analysis,开始静态分析(请耐心等待,可能用时较长)
1、点击TBreport,进入静态分析报告界面
常用的包括“Code Review”、“Quality Review”、“Annotated Code”等
2、右侧双击“Code Review”,可以查看静态规则标准的违反情况
3、右侧双击“Quality Review”,可以查看软件质量度量报告,比如常见的注释率、圈复杂度、扇入数、扇出数等
4、右侧双击“Annotated Code”,可以以注释的形式查看单个文件的静态规则标准的违反情况
以上就是使用Testbed进行软件静态分析的过程,静态分析会生成htm格式的报告,报告默认保存在“C:\ LDRA_Workarea\工程名_tbwrkfls”路径下,代码静态规则违反情况的报告文件名为“工程名.rps.htm”,软件质量度量报告的文件名为“工程名.mts.htm”。
以上静态分析结果均为htm格式的网页文件,对于要将静态分析结果保存为文档格式输出报告的公司来说不是很友好。笔者以前的公司就有这方面要求,于是我自己编写了一个自动化的软件小工具,用于自动提取htm格式的静态分析报告中的数据,按条目生成出一个excel文档。这个工具将在下一篇文章《LDRA Testbed系列(二)Testbed软件静态分析_自动提取静态报告数据信息》中进行分享。