一种飞行控制软件中增益覆盖率测试的方法技术

技术编号:18165392 阅读:59 留言:0更新日期:2018-06-09 11:22
本发明专利技术属于飞行控制系统设计技术,涉及一种飞行控制软件中增益覆盖率测试的方法。本发明专利技术包括:常量增益覆盖率测试(即遍历增益文件和源代码中常量所在文件,将二者进行比较,记录常量匹配结果);变量增益结构体分析(即分析增益结构体定义文件,通过4种增益结构体的各自特征进行分类记录,生成init.txt文件,分别记录下覆盖率所需信息);源代码插桩(即在源代码中用变量增益插桩函数替换增益计算函数,在运行用例时,记录下用例运行的覆盖率所需信息,生成print.txt文件);增益覆盖率结果分析(即读取常量增益的匹配结果和结构体类型常量的统计结果做出统计,生成增益覆盖率测试报告)。本发明专利技术填补了增益覆盖率测试的空白。

A method of gain coverage test in flight control software

The invention belongs to the design technology of the flight control system, and relates to a method for testing the gain coverage rate in the flight control software. The invention includes the constant gain coverage test (i.e. traversing the gain file and the constant file in the source code, comparing the two, and recording the constant matching results); the variable gain structure body analysis (i.e., the analysis gain structure body definition file, classifies the respective features of the 4 kinds of gain structures to generate init.txt The source code inserts the pile (i.e., replacing the gain calculation function with the variable gain interpolation function in the source code, recording the information required for the coverage of the use case running when running the use case, generating the print.txt file); the gain coverage analysis (that is, to read the matching results of the constant gain and the result of the gain coverage. \ The statistical results of structure type constants are used to generate statistics and generate coverage test reports. The invention fills in the blank of the gain coverage test.

【技术实现步骤摘要】
一种飞行控制软件中增益覆盖率测试的方法
本专利技术属于飞行控制系统设计技术,涉及一种飞行控制软件中增益覆盖率测试的方法。
技术介绍
飞行控制律应用软件属安全关键软件,其运行状况与飞机的飞行安全息息相关,因此,对该软件的覆盖率测试非常必要。然而,目前对飞行控制律应用软件的覆盖率测试只局限于逻辑语句的覆盖率测试,控制律增益覆盖率的测试还是一片空白。控制律增益模块是飞行控制软件的重要组成。该模块在飞机研制的初始阶段规模较小,实现了逻辑语句的覆盖率测试就能基本满足研制需求,加上测试方法和工具的限制,不做增益覆盖率测试也无可厚非。但是随着型号的发展,控制律增益的复杂度日渐提高,代码规模也日益增大。在数量庞大,结构复杂,支路繁多的增益中,控制律增益的覆盖率测试已经成为验证增益完备性的重要保证和项目研制的迫切需求。
技术实现思路
本专利技术的目的是:提供一种飞行控制软件中增益覆盖率测试的方法。本专利技术的技术方案是:一种飞行控制软件中增益覆盖率测试的方法,包括:a)常量增益覆盖率测试:遍历增益文件和源代码中常量所在文件,将二者进行比较,记录常量匹配结果;b)变量增益结构体分析:分析增益结构体定义文件,通过4种增益结构体的各自特征进行分类记录,生成init.txt文件,分别记录下覆盖率所需信息;c)源代码插桩:在源代码中用变量增益插桩函数替换增益计算函数,在运行用例时,记录下用例运行的覆盖率所需信息,生成print.txt文件;d)增益覆盖率结果分析:读取常量增益的匹配结果和结构体类型常量的统计结果做出统计,生成增益覆盖率测试报告。本专利技术的有益效果是:本专利技术目前可运用于支持运行windows测试系统的控制律增益覆盖率测试。它能够验证增益开关封闭性、增益支路测试完备性、常量增益正确性等,是验证增益完备性的重要保证。本专利技术开发后可作为控制律测试工具的一部分,完善控制律测试的项目内容,填补增益覆盖率测试的空白,从而保证测试质量。也能为需求设计和软件开发人员提供参考。附图说明图1为本专利技术控制律增益测试具体实施的总体流程图;图2为本专利技术中的结构体分析示意图;图3为本专利技术中的插桩流程示意图;图4为本专利技术中的结果分析示意图。具体实施方式下面结合附图对本专利技术的具体实施方式做进一步说明。本专利技术具体实施方法分为以下5个步骤,参见图1,增益覆盖率主要包括常值增益(简单常量)的测试分析和变量增益(结构体常量)的测试分析两方面,二者的统计结果将在最后进行分析时生成1份报告:1)所有控制律增益以如下形式定义于控制律增益文件(inp文件)中:其中g_gains1为变量名,5.0为其取值。源代码中以constfloatg_gains1=5.0;的形式统一定义简单常量。通过遍历inp文件,记录下所有常值增益的变量名和取值,在与源代码中常量增益比较后,将增益是否覆盖和取值是否相等等情况写入文件;2)在增益结构体定义文件中,定义了四种不同类型的增益,通过分析该结构体定义文件,可以根据这4类增益结构体(即开关量结构体、一维插值结构体、复合结构体、二维插值结构体)的各自特征分别生成4个xxx_init.txt文件:a)开关量结构体文件记录下所有该类增益的变量地址和开关组合对应值。该类型结构体定义及赋值情况如下:定义:structgain3{floatcoef[4];};赋值:gain3constst_gain3={/*st_gain3.coef[0]=*/{-4,/*st_gain3.coef[1]=*/-3.2,/*st_gain3.coef[2]=*/-3.2,/*st_gain3.coef[3]=*/-3.2},};b)一维插值结构体文件记录下所有该类增益的变量地址和一维差值的区间边界值。该类型结构体定义及赋值情况如下:定义:struct_gain2{floatcoef[13];};赋值:structg_gain2constst_gain2={/*st_gain2.coef[0]=*/{-1,(第一个固定分配X值)/*st_gain2.coef[1]=*/0,第一个X值对应斜率a)/*st_gain2.coef[2]=*/10,(第一个X值对应截距b)/*st_gain2.coef[3]=*/1800,(第二个数据库里定义的X值)/*st_gain2.coef[4]=*/-0.003125,(第二个X值对应斜率a)/*st_gain2.coef[5]=*/15.625,(第二个X值对应截距b)/*st_gain2.coef[6]=*/3400,(第三个数据库里定义的X值)/*st_gain2.coef[7]=*/-0.00227273,(第三个X值对应斜率a)/*st_gain2.coef[8]=*/12.7273,(第三个X值对应截距b)/*st_gain2.coef[9]=*/5600,(第四个固定分配的X值)/*st_gain2.coef[10]=*/0,(第四个X值对应斜率a)/*st_gain2.coef[11]=*/0,(第四个X值对应截距b)/*st_gain2.coef[12]=*/1e+37},(无限大值作插值结束标志)c)复合结构体文件记录下所有该类增益的变量地址、开关组合对应值和一维差值的区间边界值。该类型结构体定义情况如下:d)二维插值结构体文件记录下所有该类增益的变量地址和二维差值的区间边界值。该类型结构体定义情况如下:具体分析结构体定义文件的实现逻辑见图2,变量增益(结构体常量)可以根据结构体的自身特征,在分析结构体定义文件时进行分类处理;3)在源文件中,用了四种计算增益的函数,对应计算(2)中所列出的4类增益,在插桩时,同样利用4类变量增益插桩函数替换源代码中进行增益计算的函数,在运行测试用例时:a)开关量结构体记录下用例运行到的变量地址和开关量对应值,生成swtich_print.txt文件;b)一维插值结构体记录下用例运行到的变量地址和区间信息,生成inter_1d_print.txt文件;c)复合结构体记录下用例运行到的变量地址、开关量对应值和区间信息,生成com.txt文件;d)二维插值结构体记录下用例运行到的变量地址和区间信息,生成inter_2d_print.txt文件;插桩运行的具体流程见图3,在源代码中进行控制律增益计算的函数有四种,对应4类变量增益,在覆盖率测试中利用4类变量增益插桩函数替换源代码中进行增益计算的函数来进行覆盖率信息的收集;4)联合处理2)-3)中生成文件的信息,对变量增益的覆盖率进行分析统计,记录下开关量、插值区间未被运行到的情况;5)利用1)中常量增益的匹配结果和4)中变量增益的覆盖率统计结果,生成html格式的增益覆盖率测试报告(图4)。本专利技术正是根据实际研制过称中对增益覆盖率测试的需求提出的,它一方面成功弥补了软件中无增益覆盖率测试的空白,保证了测试质量;另一方面为需求设计人员和软件开发人员提供参考,便于完善设计。此外,本专利技术可以在原有飞控软件独立测试、覆盖率测试的平台上运用,具有统一性和继承性,且本专利技术已成功应用于WL-A系列飞机的飞控软件研制中。本文档来自技高网...
一种飞行控制软件中增益覆盖率测试的方法

【技术保护点】
一种飞行控制软件中增益覆盖率测试的方法,其特征为所述方法包括:a)常量增益覆盖率测试:遍历增益文件和源代码中常量所在文件,将二者进行比较,记录常量匹配结果;b)变量增益结构体分析:分析增益结构体定义文件,通过4种增益结构体的各自特征进行分类记录,生成init.txt文件,分别记录下覆盖率所需信息;c)源代码插桩:在源代码中用变量增益插桩函数替换增益计算函数,在运行用例时,记录下用例运行的覆盖率所需信息,生成print.txt文件;d)增益覆盖率结果分析:读取常量增益的匹配结果和结构体类型常量的统计结果做出统计,生成增益覆盖率测试报告。

【技术特征摘要】
1.一种飞行控制软件中增益覆盖率测试的方法,其特征为所述方法包括:a)常量增益覆盖率测试:遍历增益文件和源代码中常量所在文件,将二者进行比较,记录常量匹配结果;b)变量增益结构体分析:分析增益结构体定义文件,通过4种增益结构体的各自特征进行分类记录,生成init.txt文...

【专利技术属性】
技术研发人员:许海静孙绍山杨伟严增锐饶晓
申请(专利权)人:中国航空工业集团公司成都飞机设计研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1