CN107992306A - 一种航电软件接口实现一致性自动检查方法 - Google Patents

一种航电软件接口实现一致性自动检查方法 Download PDF

Info

Publication number
CN107992306A
CN107992306A CN201711255907.2A CN201711255907A CN107992306A CN 107992306 A CN107992306 A CN 107992306A CN 201711255907 A CN201711255907 A CN 201711255907A CN 107992306 A CN107992306 A CN 107992306A
Authority
CN
China
Prior art keywords
interface
parsed
intermediate data
document
converted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711255907.2A
Other languages
English (en)
Inventor
孟浩
胡玉露
葛晨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Helicopter Research and Development Institute
Original Assignee
China Helicopter Research and Development Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Helicopter Research and Development Institute filed Critical China Helicopter Research and Development Institute
Priority to CN201711255907.2A priority Critical patent/CN107992306A/zh
Publication of CN107992306A publication Critical patent/CN107992306A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及软件测试领域,特别涉及一种航电软件接口实现一致性自动检查方法,包括如下步骤:将接口文件导出XML形式的接口协议文件,对XML文件进行解析,并对于以Word文档形式的接口文件,采用C#调用COM接口对Word文档中的表格进行解析;将步骤一解析得到的信息转换为统一的中间数据形式;对接口定义头文件进行词法分析和语法分析;将步骤三解析得到的信息转换为统一的中间数据形式;根据步骤二和步骤四中转化得到的中间数据形式信息进行接口一致性检查。本发明的航电软件接口实现一致性自动检查方法,能够对源代码和规范的ICD进行自动解析,能够自动识别内存空间定义等接口实现不一致的缺陷,且不依赖于专用硬件,并提高接口测试工作效率。

Description

一种航电软件接口实现一致性自动检查方法
技术领域
本发明涉及软件测试领域,特别涉及一种航电软件接口实现一致性自动检查方法。
背景技术
航电系统中各子系统和设备通过总线进行协同,构成了复杂的机载计算机网络,其数目多达十几个、甚至几十个。这些系统和设备都由独立的承研单位负责研制开发,不同的系统和设备之间都要靠接口控制文件(ICD)来定义接口协议,接口的正确性和一致性对于航电系统正常工作起着至为关键的作用。与之对应,接口测试在直升机机载软件测试工作占据着重要的位置。
接口测试是根据需求规格书和接口控制文件的规定,对软件配置项与外部设备、系统接口的格式和内容进行测试,包括数据交换的格式与内容;软件通过接口接收和发送数据的能力;软件接口与系统真实接口的正确性;软件对真实设备接口特性的适应性等。
现有研究表明,接口关系直接或间接导致的缺陷占软件生命周期缺陷总数的20%到30%左右,并且其中大多数缺陷的严重等级较高,甚至有些会直接导致系统崩溃。为了保证软件系统质量,必须进行充分而全面的接口测试,常用的接口测试方法可以分为静态测试和动态测试。
静态测试方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、过程、结构、接口等来检查程序的正确性。主要是通过对软件系统的源代码进行安全扫描,根据程序中数据流,控制流,语义等信息与预先定义的规则库进行匹对,从中找出代码中潜在的缺陷。目前静态测试方法和工具主要针对数据流和控制流分析,在接口测试中的应用较少。
在现行的机载软件开发过程中,因需求的持续变更和信息化设计手段覆盖不足,出现了接口控制文件和代码定义存在不一致的问题。这一问题可能导致系统之间通信异常,影响系统功能的正常运行,甚至会造成系统或飞行员的误判,危及任务完成和飞行安全。动态测试方法必须要有相关硬件和测试工具的支持,所需的时间和人力较多。静态测试目前只能通过人工审查的方式,对源代码和接口控制文件进行逐项比对,来确认二者的一致性。随着技术的发展,航电系统采用的机载总线不断升级,从RS422、ARINC429,到MIL-STD-1553B、AFDX总线等,通信容量和速度大幅提高,也导致接口协议更加复杂,采用人工审查进行接口协议验证的效率已经不能满足新一代直升机的研制需求。
对ICD和源代码的一致性检查,存在大量的机械重复性比对工作,这部分工作可以通过计算机编程的方式自动完成,从而提高接口测试效率。
发明内容
本发明的目的是提供了一种航电软件接口实现一致性自动检查方法,以解决现有接口协议验证存在的至少一个的问题。
本发明的技术方案是:
一种航电软件接口实现一致性自动检查方法,其特征在于,包括如下步骤:
步骤一、将接口文件导出XML形式的接口协议文件,对XML文件进行解析,并对于以Word文档形式的接口文件,采用C#调用COM接口对Word文档中的表格进行解析;
步骤二、将步骤一解析得到的信息转换为统一的中间数据形式;
步骤三、对接口定义头文件进行词法分析和语法分析;
步骤四、将步骤三解析得到的信息转换为统一的中间数据形式;
步骤五、根据步骤二和步骤四中转化得到的中间数据形式信息进行接口一致性检查。
可选的,在所述步骤二和步骤四中的中间数据格式为二维数据表格,记录有类别、名称、类型、位数和注释。
可选的,在所述步骤五中,是采用正则表达式提取语句中的特征,根据已有的验证方法编写预定的规则进行检查。
可选的,在所述步骤五中,进行接口一致性检查包括:
步骤5.1、变量名称定义检查;
步骤5.1、内存位置与大小检查;
步骤5.1、注释检查。
发明效果:
本发明的航电软件接口实现一致性自动检查方法效果如下:
1)、能够对源代码和规范的ICD进行自动解析;
2)、能够自动识别内存空间定义等接口实现不一致的缺陷;
3)、不依赖于专用硬件,并提高接口测试工作效率。
附图说明
图1是航电软件接口实现一致性自动检查方法原理框图;
图2是接口实现一致性自动检查流程图。
具体实施方式
为使本发明实施的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行更加详细的描述。在附图中,自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。所描述的实施例是本发明一部分实施例,而不是全部的实施例。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明的实施例进行详细说明。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
下面结合附图1至图2对本发明航电软件接口实现一致性自动检查方法做进一步详细说明。
本发明提供的航电软件接口实现一致性自动检查方法,如图1所示,将接口控制文件(ICD)和接口实现的源代码文件都转换为结构化的中间数据形式,再根据预定的规则进行一致性检查。
a)接口定义及解析
在现行的机载软件开发中,ICD通常采用ICD Workbench等专用工具开发,可由相关工具导出XML形式的接口协议文件。对于XML形式的文件,可以通过DOM(Document ObjectModel)接口获取,DOM接口可以快捷解析XML文件,并以树的形式保存在内存中,通过树的节点进行数据访问。
对于以Word文档形式的ICD,接口协议记录在特定模板的表格中,所需数据可以通过访问特定表格中的内容获取,因而对ICD文档解析的重点是对Word表格的解析。一般采用C#调用COM接口对Word文档中的表格进行解析,可得到特定需求的文本信息。
b)接口代码实现及解析
绝大多数机载软件的开发语言都为C语言,接口协议的实现基本都采用结构体形式。以综合任务处理机IDP和组合导航系统HNS之间通过ARINC 429协议的一个数据字定义为例。
typedef struct{
uint POD:1;//校验位(奇)
uint SSM:2;//SSM
uint spare:19;//保留位
uint atmospheric_invalid:1;//大气机数据无效
uint align_fail:1;//对准故障
uint biaohao:8;//标号
}A429_HNS_IDP_failWord;
结构体名称为A429_HNS_IDP_failWord,表明是组合导航系统和综显处理机之间的429接口通信块,块的名称为“failWord”,即故障字。数据位一共为32位,前8位为标号,30和31位为SSM状态,第32位为奇偶校验位,其余为具体数据定义。所有数据位的定义都后缀着其注释,用于对数据位定义、取值范围、具体意义等进行说明。ARINC429协议的数据字定义与上述结构是相同的,数据位定义因其通信需求不同而异。
型号软件研制都有编码规范对编程风格进行约束,上述结构体定义即可作为解析模板,对接口定义头文件进行词法分析和语法分析,并转换为统一的中间数据形式,以便与ICD协议定义进行比较。
代码解析主要分词法分析和语法分析两部分,将头文件代码中的接口结构体定义转换为中间数据形式。可采用已有编译器前端处理,如LLVM的Clang等,将代码解析为抽象语法树AST,再对AST进行转换为特定中间数据形式。考虑到机载软件代码风格比较规范,需要提取的信息量不大,也可以自行编写简单的词法和语法处理程序。
c)中间数据格式定义
本发明采用的中间数据格式为二维数据表格,如表1所示,主要记录类别、名称、类型、位数和注释。类别主要是块block和变量var,块对应的位数是变量数目,变量对应的位数是比特位数目。表1中1-3行为代码解析后的数据,4-6行为ICD解析后的数据,可以对块及每个变量的不同属性进行一致性检查。
表1中间数据格式
类别 名称 类型 位数 注释
block blk01 - 2 块01
var state int 16 状态
var no int 16 标号
block 01块 - 2 块01
var 状态 16
var 标号 16
d)接口一致性检查
接口一致性检查的首要目标是验证ICD中的协议与源代码实现的一致性,验证主要考虑名称、内存定义、注释等的一致性。采用正则表达式提取语句中的特征,根据已有的验证方法编写相应的规则进行检查。本发明提供三种规则以供参考,可以根据实际需要进行扩展。接口实现一致性自动检查的流程如图2所示。
4.1)变量名称定义检查
变量命名一般由词汇和数字组成,对于数字部分的识别和检查较为简单。对于词汇部分,ICD中的定义基本都是汉语,而代码名称都为英文,所以需要将ICD中的汉语信息转换为英文,并和代码中的定义进行比较。在软件开发过程中,已经积累了专业词汇的英汉对应表(即字典),可以据此进行比较,当两者的名称差距较大时,需要进行人工确认。
4.2)内存位置与大小检查
提取ICD和代码中的数据后,可以获取其数据项/变量的起始位置和数据位大小,其中不一致的地方即为错误。
4.3)注释检查
ICD中会定义数据的范围、比例因子等重要信息,而在实际编码过程中,这些都会记录到变量的注释中。因而也需要对注释部分的信息进行提取,和ICD中的定义进行比较,以便确认二者的一致性。
本发明的航电软件接口实现一致性自动检查方法效果如下:
1)、能够对源代码和规范的ICD进行自动解析;
2)、能够自动识别内存空间定义等接口实现不一致的缺陷;
3)、不依赖于专用硬件,并提高接口测试工作效率。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (4)

1.一种航电软件接口实现一致性自动检查方法,其特征在于,包括如下步骤:
步骤一、将接口文件导出XML形式的接口协议文件,对XML文件进行解析,并对于以Word文档形式的接口文件,采用C#调用COM接口对Word文档中的表格进行解析;
步骤二、将步骤一解析得到的信息转换为统一的中间数据形式;
步骤三、对接口定义头文件进行词法分析和语法分析;
步骤四、将步骤三解析得到的信息转换为统一的中间数据形式;
步骤五、根据步骤二和步骤四中转化得到的中间数据形式信息进行接口一致性检查。
2.根据权利要求1所述的航电软件接口实现一致性自动检查方法,其特征在于,在所述步骤二和步骤四中的中间数据格式为二维数据表格,记录有类别、名称、类型、位数和注释。
3.根据权利要求1所述的航电软件接口实现一致性自动检查方法,其特征在于,在所述步骤五中,是采用正则表达式提取语句中的特征,根据已有的验证方法编写预定的规则进行检查。
4.根据权利要求3所述的航电软件接口实现一致性自动检查方法,其特征在于,在所述步骤五中,进行接口一致性检查包括:
步骤5.1、变量名称定义检查;
步骤5.1、内存位置与大小检查;
步骤5.1、注释检查。
CN201711255907.2A 2017-12-03 2017-12-03 一种航电软件接口实现一致性自动检查方法 Pending CN107992306A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711255907.2A CN107992306A (zh) 2017-12-03 2017-12-03 一种航电软件接口实现一致性自动检查方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711255907.2A CN107992306A (zh) 2017-12-03 2017-12-03 一种航电软件接口实现一致性自动检查方法

Publications (1)

Publication Number Publication Date
CN107992306A true CN107992306A (zh) 2018-05-04

Family

ID=62035249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711255907.2A Pending CN107992306A (zh) 2017-12-03 2017-12-03 一种航电软件接口实现一致性自动检查方法

Country Status (1)

Country Link
CN (1) CN107992306A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920289A (zh) * 2018-07-03 2018-11-30 上海仪电汽车电子系统有限公司 车载控制器的数据处理方法与车载控制器
CN109117368A (zh) * 2018-07-27 2019-01-01 平安科技(深圳)有限公司 一种接口测试方法、电子设备及存储介质
CN110377276A (zh) * 2019-07-19 2019-10-25 潍柴动力股份有限公司 源代码文件管理方法及设备
CN111679983A (zh) * 2020-06-08 2020-09-18 中国银行股份有限公司 Java接口静态测试方法及装置
CN112327815A (zh) * 2020-11-30 2021-02-05 北京一雄信息科技有限公司 一种批量测试汽车诊断仪数据流准确性的方法及装置
CN114564919A (zh) * 2022-02-17 2022-05-31 成都飞机工业(集团)有限责任公司 无人机控制文件的转换方法、装置、设备及存储介质
CN114781349A (zh) * 2022-04-22 2022-07-22 重庆长安汽车股份有限公司 嵌入式控制器软件集成用软件接口表自动检查的方法
CN115098570A (zh) * 2022-05-18 2022-09-23 中国航空工业集团公司沈阳飞机设计研究所 一种将航线数据自动写入飞行管理系统的方法及装置
CN115509632A (zh) * 2022-09-26 2022-12-23 重庆大学 基于接口描述文件的软件接口一致性校验方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123474A (ja) * 2000-10-12 2002-04-26 Tadayoshi Kadani インターネットとインターネットメールを使用した情報処理システム
CN101867501A (zh) * 2010-05-25 2010-10-20 北京宜富泰网络测试实验室有限公司 Snmp接口信息模型一致性自动化测试方法及系统
CN102937800A (zh) * 2012-10-28 2013-02-20 中国电子科技集团公司第十研究所 Icd集成管理工具
CN104035859A (zh) * 2013-03-07 2014-09-10 腾讯科技(深圳)有限公司 一种可视化自动测试方法及其系统
CN106547726A (zh) * 2015-09-16 2017-03-29 中国航空工业第六八研究所 一种基于文档的自动化审查方法及审查装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123474A (ja) * 2000-10-12 2002-04-26 Tadayoshi Kadani インターネットとインターネットメールを使用した情報処理システム
CN101867501A (zh) * 2010-05-25 2010-10-20 北京宜富泰网络测试实验室有限公司 Snmp接口信息模型一致性自动化测试方法及系统
CN102937800A (zh) * 2012-10-28 2013-02-20 中国电子科技集团公司第十研究所 Icd集成管理工具
CN104035859A (zh) * 2013-03-07 2014-09-10 腾讯科技(深圳)有限公司 一种可视化自动测试方法及其系统
CN106547726A (zh) * 2015-09-16 2017-03-29 中国航空工业第六八研究所 一种基于文档的自动化审查方法及审查装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘斌: "《软件验证与确认》", 30 April 2011, 北京:国防工业出版社 *
相征: "《基于VxWorks嵌入式系统的数据通信》", 30 June 2011, 西安电子科技大学出版社 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920289A (zh) * 2018-07-03 2018-11-30 上海仪电汽车电子系统有限公司 车载控制器的数据处理方法与车载控制器
CN109117368A (zh) * 2018-07-27 2019-01-01 平安科技(深圳)有限公司 一种接口测试方法、电子设备及存储介质
WO2020019490A1 (zh) * 2018-07-27 2020-01-30 平安科技(深圳)有限公司 一种接口测试方法、电子设备及存储介质
CN110377276B (zh) * 2019-07-19 2023-05-23 潍柴动力股份有限公司 源代码文件管理方法及设备
CN110377276A (zh) * 2019-07-19 2019-10-25 潍柴动力股份有限公司 源代码文件管理方法及设备
CN111679983A (zh) * 2020-06-08 2020-09-18 中国银行股份有限公司 Java接口静态测试方法及装置
CN111679983B (zh) * 2020-06-08 2023-10-24 中国银行股份有限公司 Java接口静态测试方法及装置
CN112327815A (zh) * 2020-11-30 2021-02-05 北京一雄信息科技有限公司 一种批量测试汽车诊断仪数据流准确性的方法及装置
CN114564919A (zh) * 2022-02-17 2022-05-31 成都飞机工业(集团)有限责任公司 无人机控制文件的转换方法、装置、设备及存储介质
CN114781349A (zh) * 2022-04-22 2022-07-22 重庆长安汽车股份有限公司 嵌入式控制器软件集成用软件接口表自动检查的方法
CN115098570A (zh) * 2022-05-18 2022-09-23 中国航空工业集团公司沈阳飞机设计研究所 一种将航线数据自动写入飞行管理系统的方法及装置
CN115098570B (zh) * 2022-05-18 2023-06-02 中国航空工业集团公司沈阳飞机设计研究所 一种将航线数据自动写入飞行管理系统的方法及装置
CN115509632A (zh) * 2022-09-26 2022-12-23 重庆大学 基于接口描述文件的软件接口一致性校验方法

Similar Documents

Publication Publication Date Title
CN107992306A (zh) 一种航电软件接口实现一致性自动检查方法
CN110852065B (zh) 一种文档审核方法、装置、系统、设备及存储介质
US20020107684A1 (en) Methods and apparatus for globalising software
CN107273117A (zh) 一种编程友好型的敏捷代码自动生成系统
US20110270858A1 (en) File type recognition analysis method and system
CN112445775B (zh) 一种光刻机的故障分析方法、装置、设备和存储介质
CN101751281A (zh) 编译器生成系统和方法
CN109063362B (zh) 航电软件接口控制文件设计管理系统
US20150193213A1 (en) Computer Implemented System and Method for Checking a Program Code
CN106294180A (zh) 一种走查多编程语言代码的集成方法
CN111782117A (zh) 界面的展示方法和装置、存储介质、电子装置
CN106775914B (zh) 一种自动生成键值的代码国际化方法及装置
JP6952967B2 (ja) 自動翻訳装置
CN112733517B (zh) 需求模板符合性检查的方法、电子设备及存储介质
CN104021075A (zh) 用于程序代码的评估方法和装置
GB2513348A (en) Translation validation
CN117827923A (zh) 一种查询需求的处理方法、装置、计算机设备及存储介质
CN105678509A (zh) 一种数据处理方法及系统
CN113468315B (zh) 漏洞厂商名称的匹配方法
CN108304330A (zh) 内容提取方法、装置和计算机设备
CN108829968A (zh) 基于Python扩展函数的电路图审查方法
CN117501275A (zh) 用于分析由大量单独消息组成的数据的方法、计算机程序产品和计算机系统
CN113918165A (zh) 文字描述式流程说明编译为应用自动操作脚本方法及系统
CN114116268A (zh) Flink SQL语句的校验方法、装置、计算机设备和存储介质
CN112395865A (zh) 报关单校验方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180504

RJ01 Rejection of invention patent application after publication