CN108132877A - 一种飞行控制软件中增益覆盖率测试的方法 - Google Patents
一种飞行控制软件中增益覆盖率测试的方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test 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)增益覆盖率结果分析:读取常量增益的匹配结果和结构体类型常量的统计结果做出统计,生成增益覆盖率测试报告。
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)
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 | 深圳航天科技创新研究院 | 一种实现虚拟验证系统覆盖率分析的方法 |
-
2017
- 2017-12-08 CN CN201711292849.0A patent/CN108132877B/zh active Active
Patent Citations (6)
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)
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 |