CN108132877A - 一种飞行控制软件中增益覆盖率测试的方法 - Google Patents

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

Info

Publication number
CN108132877A
CN108132877A CN201711292849.0A CN201711292849A CN108132877A CN 108132877 A CN108132877 A CN 108132877A CN 201711292849 A CN201711292849 A CN 201711292849A CN 108132877 A CN108132877 A CN 108132877A
Authority
CN
China
Prior art keywords
gain
coverage rate
constant
rate test
file
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.)
Granted
Application number
CN201711292849.0A
Other languages
English (en)
Other versions
CN108132877B (zh
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.)
AVIC (Chengdu) UAV System Co.,Ltd.
Original Assignee
AVIC Chengdu Aircraft Design and Research 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 AVIC Chengdu Aircraft Design and Research Institute filed Critical AVIC Chengdu Aircraft Design and Research Institute
Priority to CN201711292849.0A priority Critical patent/CN108132877B/zh
Publication of CN108132877A publication Critical patent/CN108132877A/zh
Application granted granted Critical
Publication of CN108132877B publication Critical patent/CN108132877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Feedback Control In General (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

一种飞行控制软件中增益覆盖率测试的方法
技术领域
本发明属于飞行控制系统设计技术,涉及一种飞行控制软件中增益覆盖率测试的方法。
背景技术
飞行控制律应用软件属安全关键软件,其运行状况与飞机的飞行安全息息相关,因此,对该软件的覆盖率测试非常必要。然而,目前对飞行控制律应用软件的覆盖率测试只局限于逻辑语句的覆盖率测试,控制律增益覆盖率的测试还是一片空白。
控制律增益模块是飞行控制软件的重要组成。该模块在飞机研制的初始阶段规模较小,实现了逻辑语句的覆盖率测试就能基本满足研制需求,加上测试方法和工具的限制,不做增益覆盖率测试也无可厚非。但是随着型号的发展,控制律增益的复杂度日渐提高,代码规模也日益增大。在数量庞大,结构复杂,支路繁多的增益中,控制律增益的覆盖率测试已经成为验证增益完备性的重要保证和项目研制的迫切需求。
发明内容
本发明的目的是:提供一种飞行控制软件中增益覆盖率测试的方法。
本发明的技术方案是:一种飞行控制软件中增益覆盖率测试的方法,包括:
a)常量增益覆盖率测试:遍历增益文件和源代码中常量所在文件,将二者进行比较,记录常量匹配结果;
b)变量增益结构体分析:分析增益结构体定义文件,通过4种增益结构体的各自特征进行分类记录,生成init.txt文件,分别记录下覆盖率所需信息;
c)源代码插桩:在源代码中用变量增益插桩函数替换增益计算函数,在运行用例时,记录下用例运行的覆盖率所需信息,生成print.txt文件;
d)增益覆盖率结果分析:读取常量增益的匹配结果和结构体类型常量的统计结果做出统计,生成增益覆盖率测试报告。
本发明的有益效果是:本发明目前可运用于支持运行windows测试系统的控制律增益覆盖率测试。它能够验证增益开关封闭性、增益支路测试完备性、常量增益正确性等,是验证增益完备性的重要保证。本发明开发后可作为控制律测试工具的一部分,完善控制律测试的项目内容,填补增益覆盖率测试的空白,从而保证测试质量。也能为需求设计和软件开发人员提供参考。
附图说明
图1为本发明控制律增益测试具体实施的总体流程图;
图2为本发明中的结构体分析示意图;
图3为本发明中的插桩流程示意图;
图4为本发明中的结果分析示意图。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步说明。
本发明具体实施方法分为以下5个步骤,参见图1,增益覆盖率主要包括常值增益(简单常量)的测试分析和变量增益(结构体常量)的测试分析两方面,二者的统计结果将在最后进行分析时生成1份报告:
1)所有控制律增益以如下形式定义于控制律增益文件(inp文件)中:
其中g_gains1为变量名,5.0为其取值。源代码中以const float g_gains1=5.0;的形式统一定义简单常量。通过遍历inp文件,记录下所有常值增益的变量名和取值,在与源代码中常量增益比较后,将增益是否覆盖和取值是否相等等情况写入文件;
2)在增益结构体定义文件中,定义了四种不同类型的增益,通过分析该结构体定义文件,可以根据这4类增益结构体(即开关量结构体、一维插值结构体、复合结构体、二维插值结构体)的各自特征分别生成4个xxx_init.txt文件:
a)开关量结构体文件记录下所有该类增益的变量地址和开关组合对应值。该类型结构体定义及赋值情况如下:
定义:struct gain3{float coef[4];};
赋值:gain3const st_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{float coef[13];};
赋值:struct g_gain2const st_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系列飞机的飞控软件研制中。

Claims (1)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711292849.0A CN108132877B (zh) 2017-12-08 2017-12-08 一种飞行控制软件中增益覆盖率测试的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711292849.0A CN108132877B (zh) 2017-12-08 2017-12-08 一种飞行控制软件中增益覆盖率测试的方法

Publications (2)

Publication Number Publication Date
CN108132877A true CN108132877A (zh) 2018-06-08
CN108132877B CN108132877B (zh) 2021-04-20

Family

ID=62390188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711292849.0A Active CN108132877B (zh) 2017-12-08 2017-12-08 一种飞行控制软件中增益覆盖率测试的方法

Country Status (1)

Country Link
CN (1) CN108132877B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121025A1 (en) * 2001-09-05 2003-06-26 Eitan Farchi Method and system for combining multiple software test generators
US20090313606A1 (en) * 2008-06-11 2009-12-17 Julius Geppert System and Method for Testing a Software Product
CN103116280A (zh) * 2013-01-16 2013-05-22 北京航空航天大学 一种存在变分布网络随机延迟的微小型无人飞行器纵向控制方法
CN104881363A (zh) * 2015-06-24 2015-09-02 中国航空工业集团公司西安飞机设计研究所 一种控制律软件的测试方法
CN105608000A (zh) * 2015-12-16 2016-05-25 北京奇虎科技有限公司 获取代码覆盖率数据的方法及装置
CN106844221A (zh) * 2017-03-10 2017-06-13 深圳航天科技创新研究院 一种实现虚拟验证系统覆盖率分析的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030121025A1 (en) * 2001-09-05 2003-06-26 Eitan Farchi Method and system for combining multiple software test generators
US20090313606A1 (en) * 2008-06-11 2009-12-17 Julius Geppert System and Method for Testing a Software Product
CN103116280A (zh) * 2013-01-16 2013-05-22 北京航空航天大学 一种存在变分布网络随机延迟的微小型无人飞行器纵向控制方法
CN104881363A (zh) * 2015-06-24 2015-09-02 中国航空工业集团公司西安飞机设计研究所 一种控制律软件的测试方法
CN105608000A (zh) * 2015-12-16 2016-05-25 北京奇虎科技有限公司 获取代码覆盖率数据的方法及装置
CN106844221A (zh) * 2017-03-10 2017-06-13 深圳航天科技创新研究院 一种实现虚拟验证系统覆盖率分析的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ULF ERIKSSON: "Measuring Code Quality with Test Coverage Metrics", 《HTTPS://REQTEST.COM/TESTING-BLOG/TEST-COVERAGE-METRICS/》 *
杨一波: "无人机飞行控制软件测试技术研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
CN108132877B (zh) 2021-04-20

Similar Documents

Publication Publication Date Title
CN101404045B (zh) 为组合验证生成自动化假设的方法、系统和计算机程序产品
CN105893256A (zh) 基于机器学习算法的软件故障定位方法
Moawad et al. Novel large scale simulation process to support DOT’s CAFE modeling system
CN105868050A (zh) 基于json数据的验证方法及装置
CN111753426A (zh) 颗粒物污染的源解析方法和装置
CN112949766A (zh) 目标区域检测模型训练方法及系统及装置及介质
Howden The Theory and Practice of Foundation Testing
CN115629159B (zh) 一种基于多源数据的臭氧及前体物溯源方法及装置
CN115310282A (zh) 一种基于数字孪生的自动驾驶仿真测试场景构建方法
He et al. Introducing electrified vehicle dynamics in traffic simulation
CN106126637A (zh) 一种交通工具类别识别方法及装置
CN115146976A (zh) 影响待勘测区块评价的主要地质参数的选取方法及设备
Newman et al. Use and abuse of driving cycle research: clarifying the relationship between traffic congestion, energy, and emissions
CN108132877A (zh) 一种飞行控制软件中增益覆盖率测试的方法
CN108710967A (zh) 基于数据融合和支持向量机的高速路交通事故严重度预测方法
Zarrillo Development and applications of TPModel, a queuing model describing traffic operations during electronic toll collection (ETC)
CN114238097B (zh) 一种基于场景描述语言的自动驾驶系统仿真测试技术
CN105373884A (zh) 一种电子设备效能的环境影响评估方法
Dumke et al. Software measurement: current trends in research and practice
Akinsola et al. Qualitative comparative analysis of software integration testing techniques
Riedmaier Model Validation and Uncertainty Aggregation for Safety Assessment of Automated Vehicles
Gonschorek et al. Fault trees vs. component fault trees: An empirical study
Pirio On the $(n+ 3) $-webs by rational curves induced by the forgetful maps on the moduli spaces $\mathcal M_ {0, n+ 3} $
CN107703923A (zh) 数据耦合和控制耦合自动分析方法
WO2007010198A1 (en) A method of analysing representations of separation patterns

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
TA01 Transfer of patent application right

Effective date of registration: 20210308

Address after: 611731, No. four, West core road, hi tech West District, Sichuan, Chengdu

Applicant after: AVIC (Chengdu) UAV System Co.,Ltd.

Address before: 610091 planning and Development Department of Chengdu aircraft design and Research Institute, 1610 Riyue Avenue, Qingyang District, Chengdu City, Sichuan Province

Applicant before: AVIC CHENGDU AIRCRAFT DESIGN & Research Institute

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant