论文部分内容阅读
摘要:本文以某测速与裝定软件为测试实例,用专业测试工具Testbed进行静态分析测试,详细阐述了该工具的测试步骤,并展示了测试结束后产生的代码评审报告、度量报告等结果,最终测试结果必须结合人工审查分析,排除测试工具可能出现的误判错误,确保最终结果准确可靠。
关键词:Testbed;静态分析;人工审查
引言
随着计算机技术在军用装备软件中的应用发展,软件测试在整个软件开发过程中占有非常突出的重要位置,软件测试是一项很复杂费时的工作,仅仅依靠测试人员手工完成很困难,好的测试工具能够提高测试效率从而降低测试成本,选择更高的测试充分性标准进行测试从而提高软件质量。
1 系统架构
某自行高炮测速与装定系统由炮口装置和炮口信号处理装置组成。主要用于实现弹丸炮口初速测量、定向集束穿甲弹丸飞行时间修正量解算、弹丸起爆时间装定等功能。其中炮口信号处理装置主要由初速板、DSP板、发射板等组成,用于完成初速信号处理与计算、引信定时时间解算与编码、编码信号功率放大与发射、同步信号接收、系统故障诊断与CAN总线通信功能。炮口装置包含测速线圈1、测速线圈2、装定线圈等,用于实现弹丸出炮口感应及引信装定功能,测速与装定系统组成框图如图1所示。
测速与装定软件是以炮口信号处理装置内的DSP板为硬件基础、TMS320C6416为运行平台、Quartus 13.1为软件开发平台。该软件采用C语言作为开发语言,主要功能有实现弹丸炮口初速解算、引信定时时间解算、引信定时时间编码控制、总线通信、自检、故障诊断、靶距设置与查询及弹种选择功能。其软件功能模块多,接口之间数据通信较复杂,因此本次使用专业软件测试工具Testbed来进行静态测试分析。
2 测试概要
2.1静态测试的概念和方法
静态测试是一种不需要执行被测软件的软件测试方法,在不运行软件的情况下对软件进行测试,通过对程序代码和文档进行检查,以发现可能存在的错误。静态测试可以从编码规则检查、代码结构分析和代码评审三个方面来进行。执行静态测试,需要软件需求规格说明、源程序代码以及其他软件设计说明和用户手册等相关文档,通常还需要一个或多个静态测试工具,以尽可能多地发现程序中的隐藏错误,提高测试的准确率和工作效率。
2.2 Testbed静态测试方法
Testbed是由LDRA公司开发的一款专业性软件测试工具,具有静态分析和动态分析功能。这里我们只对静态分析功能进行研究。仅输入源代码文件,就可以根据质量模型对代码进行分析和检查,具体内容包括编程标准验证、软件度量分析和质量标准验证、静态数据流分析、信息流分析和交叉索引分析。
3 静态测试
3.1 测试步骤
首先要根据相关军用软件测试标准和装备软件的软件任务书和软件需求规格说明等文件制定一份代码检查单,这是本次静态分析的重要依据,具体内容也要结合测试工具的可分析内容来定。
选择好要分析的源文件后,创建一个文件集,根據代码检查单和相关军用软件测试标准及规定制定好编码规则,然后选择要做的静态分析项。根据本项目的测试需求分析我们选择了列表的前四项做静态分析,分别为主静态分析、复杂度分析、静态数据流分析和交叉索引,也可直接选择快捷键BS、QS,将得到代码的完整性及基本属性的分析情况,如代码评审报告、质量评审和设计评审等方面内容,对代码的合规性、可维护性及可测试性进行检查分析。确定好分析选项后就可以开始进行静态分析测试。
3.2静态分析结果
(a)代码评审报告
待静态分析过程结束后,可通过操作查看代码评审报告。报告提供了被选编码标准的违反情况,并用红色显示在源代码中违反某条规则有多少处,可以链接到违反的源代码行和对每条规则的详细解释,以及以函数为单位显示违反编码规则的条数和有多少处违反编码规则的地方。报告单详情如图2所示。
(b)软件度量分析
软件度量分析包含McCabe圈复杂度、基本McCabe圈复杂度、HALSTEAD科学度量、扇入/扇出、代码行注释比例、可执行代码行数等指标。静态分析完成后可在质量评审报告中查看各度量元的分析结果,从各度量元的清晰性、维护性和可测性等三方面进行分析。本次总共有三个程序需要分析,分别是CANsys.c、MEMORY.c、TL16c550Test.c,具体操作步骤是选择Individual Results→Text Results→Quality Review Report(HTML)。报告显示三个程序均通过了测试,具体单个文件的圈复杂度等指标如图3所示。
(c)调用关系与控制流程分析
支持图形化方式显示软件调用关系与每个子程序的控制流程。通过代码分析可得到程序模块之间的调用关系,具体操作是选择Set Results→Graphical Results→Static Callgraph,查看函数静态调用关系图,如图4所示。
函数静态调用关系图反映了程序模块之间的层次关系,从调用关系图中可以显示模块的类型、调用层次和调用关系,在所要定位的模块上右键选择highligh选项,可以定位该模块的调用模块和被调用模块;选择需要查看的函数单击,图形化显示控制流图。
4 人工审查分析
根据前面制定的代码检查单,测试人员还需要进行人工审查判断,对以上获得的测试报告内容进行分析和处理。为了消除误报的情况,需要人工核对报告来检查代码源,通过对报告提示的违反规则与代码检查单进行对照分析,为最后生成问题报告单提供有力依据。经考核,该测速与装定软件每千行代码缺陷为:发现问题数/代码总行数=8/1.512=5个,不超过每千行10个的代码缺陷率,符合通过要求。
5 结论
本文以某测速与裝定软件为测试对象,应用专业测试工具Testbed对主静态分析、复杂度分析、静态数据流分析和交叉索引等四个指标做了静态测试分析,并对测试生成的报告结果进行了人工审查判断。使用专业的测试工具可以直接提升测试工作效率,也可以增强软件的可靠性和健壮性,但是测试报告结果也不能直接采纳,必须进行人工审查分析,排除可能出现的误判错误,确保最终结果准确可靠。
参考文献:
[1]Testbed静态分析使用指南.上海创景计算机系统有限公司.
[2]周培.基于LDRA Testbed的民用机载软件静态测试方法.[J]计算机测量与控制.2019.27(7)
[3]周永健,范明,张森,赵东旭..LDRA TestBed在CTCS2-200C扩展单元软件测试中的应用.[J]机车电传动.2016.05
关键词:Testbed;静态分析;人工审查
引言
随着计算机技术在军用装备软件中的应用发展,软件测试在整个软件开发过程中占有非常突出的重要位置,软件测试是一项很复杂费时的工作,仅仅依靠测试人员手工完成很困难,好的测试工具能够提高测试效率从而降低测试成本,选择更高的测试充分性标准进行测试从而提高软件质量。
1 系统架构
某自行高炮测速与装定系统由炮口装置和炮口信号处理装置组成。主要用于实现弹丸炮口初速测量、定向集束穿甲弹丸飞行时间修正量解算、弹丸起爆时间装定等功能。其中炮口信号处理装置主要由初速板、DSP板、发射板等组成,用于完成初速信号处理与计算、引信定时时间解算与编码、编码信号功率放大与发射、同步信号接收、系统故障诊断与CAN总线通信功能。炮口装置包含测速线圈1、测速线圈2、装定线圈等,用于实现弹丸出炮口感应及引信装定功能,测速与装定系统组成框图如图1所示。
测速与装定软件是以炮口信号处理装置内的DSP板为硬件基础、TMS320C6416为运行平台、Quartus 13.1为软件开发平台。该软件采用C语言作为开发语言,主要功能有实现弹丸炮口初速解算、引信定时时间解算、引信定时时间编码控制、总线通信、自检、故障诊断、靶距设置与查询及弹种选择功能。其软件功能模块多,接口之间数据通信较复杂,因此本次使用专业软件测试工具Testbed来进行静态测试分析。
2 测试概要
2.1静态测试的概念和方法
静态测试是一种不需要执行被测软件的软件测试方法,在不运行软件的情况下对软件进行测试,通过对程序代码和文档进行检查,以发现可能存在的错误。静态测试可以从编码规则检查、代码结构分析和代码评审三个方面来进行。执行静态测试,需要软件需求规格说明、源程序代码以及其他软件设计说明和用户手册等相关文档,通常还需要一个或多个静态测试工具,以尽可能多地发现程序中的隐藏错误,提高测试的准确率和工作效率。
2.2 Testbed静态测试方法
Testbed是由LDRA公司开发的一款专业性软件测试工具,具有静态分析和动态分析功能。这里我们只对静态分析功能进行研究。仅输入源代码文件,就可以根据质量模型对代码进行分析和检查,具体内容包括编程标准验证、软件度量分析和质量标准验证、静态数据流分析、信息流分析和交叉索引分析。
3 静态测试
3.1 测试步骤
首先要根据相关军用软件测试标准和装备软件的软件任务书和软件需求规格说明等文件制定一份代码检查单,这是本次静态分析的重要依据,具体内容也要结合测试工具的可分析内容来定。
选择好要分析的源文件后,创建一个文件集,根據代码检查单和相关军用软件测试标准及规定制定好编码规则,然后选择要做的静态分析项。根据本项目的测试需求分析我们选择了列表的前四项做静态分析,分别为主静态分析、复杂度分析、静态数据流分析和交叉索引,也可直接选择快捷键BS、QS,将得到代码的完整性及基本属性的分析情况,如代码评审报告、质量评审和设计评审等方面内容,对代码的合规性、可维护性及可测试性进行检查分析。确定好分析选项后就可以开始进行静态分析测试。
3.2静态分析结果
(a)代码评审报告
待静态分析过程结束后,可通过操作查看代码评审报告。报告提供了被选编码标准的违反情况,并用红色显示在源代码中违反某条规则有多少处,可以链接到违反的源代码行和对每条规则的详细解释,以及以函数为单位显示违反编码规则的条数和有多少处违反编码规则的地方。报告单详情如图2所示。
(b)软件度量分析
软件度量分析包含McCabe圈复杂度、基本McCabe圈复杂度、HALSTEAD科学度量、扇入/扇出、代码行注释比例、可执行代码行数等指标。静态分析完成后可在质量评审报告中查看各度量元的分析结果,从各度量元的清晰性、维护性和可测性等三方面进行分析。本次总共有三个程序需要分析,分别是CANsys.c、MEMORY.c、TL16c550Test.c,具体操作步骤是选择Individual Results→Text Results→Quality Review Report(HTML)。报告显示三个程序均通过了测试,具体单个文件的圈复杂度等指标如图3所示。
(c)调用关系与控制流程分析
支持图形化方式显示软件调用关系与每个子程序的控制流程。通过代码分析可得到程序模块之间的调用关系,具体操作是选择Set Results→Graphical Results→Static Callgraph,查看函数静态调用关系图,如图4所示。
函数静态调用关系图反映了程序模块之间的层次关系,从调用关系图中可以显示模块的类型、调用层次和调用关系,在所要定位的模块上右键选择highligh选项,可以定位该模块的调用模块和被调用模块;选择需要查看的函数单击,图形化显示控制流图。
4 人工审查分析
根据前面制定的代码检查单,测试人员还需要进行人工审查判断,对以上获得的测试报告内容进行分析和处理。为了消除误报的情况,需要人工核对报告来检查代码源,通过对报告提示的违反规则与代码检查单进行对照分析,为最后生成问题报告单提供有力依据。经考核,该测速与装定软件每千行代码缺陷为:发现问题数/代码总行数=8/1.512=5个,不超过每千行10个的代码缺陷率,符合通过要求。
5 结论
本文以某测速与裝定软件为测试对象,应用专业测试工具Testbed对主静态分析、复杂度分析、静态数据流分析和交叉索引等四个指标做了静态测试分析,并对测试生成的报告结果进行了人工审查判断。使用专业的测试工具可以直接提升测试工作效率,也可以增强软件的可靠性和健壮性,但是测试报告结果也不能直接采纳,必须进行人工审查分析,排除可能出现的误判错误,确保最终结果准确可靠。
参考文献:
[1]Testbed静态分析使用指南.上海创景计算机系统有限公司.
[2]周培.基于LDRA Testbed的民用机载软件静态测试方法.[J]计算机测量与控制.2019.27(7)
[3]周永健,范明,张森,赵东旭..LDRA TestBed在CTCS2-200C扩展单元软件测试中的应用.[J]机车电传动.2016.05