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

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

Info

Publication number
CN108132877B
CN108132877B CN201711292849.0A CN201711292849A CN108132877B CN 108132877 B CN108132877 B CN 108132877B CN 201711292849 A CN201711292849 A CN 201711292849A CN 108132877 B CN108132877 B CN 108132877B
Authority
CN
China
Prior art keywords
gain
file
constant
coverage rate
source code
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.)
Active
Application number
CN201711292849.0A
Other languages
English (en)
Other versions
CN108132877A (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 Uav System Co ltd
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 Uav System Co ltd filed Critical Avic Chengdu Uav System Co ltd
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

Images

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)
  • Debugging And Monitoring (AREA)
  • Feedback Control In General (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文件)中:
Figure BDA0001499709680000021
其中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)复合结构体文件记录下所有该类增益的变量地址、开关组合对应值和一维差值的区间边界值。该类型结构体定义情况如下:
Figure BDA0001499709680000031
Figure BDA0001499709680000041
d)二维插值结构体文件记录下所有该类增益的变量地址和二维差值的区间边界值。该类型结构体定义情况如下:
Figure BDA0001499709680000042
具体分析结构体定义文件的实现逻辑见图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文件,分别记录下覆盖率所需信息;所述4种增益结构体为开关量结构体、一维插值结构体、复合结构体和二维插值结构体;
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 CN108132877A (zh) 2018-06-08
CN108132877B true 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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 深圳航天科技创新研究院 一种实现虚拟验证系统覆盖率分析的方法

Family Cites Families (2)

* 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
EP2133795A1 (en) * 2008-06-11 2009-12-16 Software AG System and method for testing a software product

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
Measuring Code Quality with Test Coverage Metrics;Ulf Eriksson;《https://reqtest.com/testing-blog/test-coverage-metrics/》;20170523;第1-14页 *
无人机飞行控制软件测试技术研究;杨一波;《中国优秀硕士学位论文全文数据库 信息科技辑》;20090615;第I138-175页 *

Also Published As

Publication number Publication date
CN108132877A (zh) 2018-06-08

Similar Documents

Publication Publication Date Title
Deshmukh et al. Robust online monitoring of signal temporal logic
CN107678973B (zh) 一种测试脚本的自动生成方法及系统
CN101750978B (zh) 一种支持电传飞行控制系统设计、验证与确认的开放平台
CN109376378B (zh) 一种快速提取白车身安装点刚度结果的前后处理方法
CN109063362B (zh) 航电软件接口控制文件设计管理系统
Hassan et al. Reconfigurable driving simulator for testing and training of advanced driver assistance systems
Moawad et al. Novel large scale simulation process to support DOT’s CAFE modeling system
CN110765568A (zh) 基于SysML的复杂系统设计与安全性分析集成方法
CN111597631A (zh) 基于自适应代理模型的汽车风阻系数优化方法
CN106202776A (zh) 一种运载火箭结构机构产品可靠性评估方法
CN106933572B (zh) 一种基于llvm中间表示程序切片的度量模型
CN108132877B (zh) 一种飞行控制软件中增益覆盖率测试的方法
US11960385B2 (en) Automatic generation of integrated test procedures using system test procedures
CN109165438A (zh) 碳纤维增强复合材料工件的疲劳寿命预测方法
CN103744757A (zh) 一种基于arinc661的df文件验证方法
Offutt et al. An industrial study of applying input space partitioning to test financial calculation engines
US20050043913A1 (en) Method of determining the level of structural coverage testing of test cases which are written for a program that does not provide for structural coverage testing
CN110414097B (zh) Ima系统资源配置验证方法和系统、计算机可读存储介质
CN112784434A (zh) 一种基于模型的航电设计方法
US6850921B1 (en) Method for cascading vehicle system targets to component level design objectives
CN111309287A (zh) 一种软件开发方案的生成方法及系统
Kong et al. Detect functionally equivalent code fragments via k-nearest neighbor algorithm
CN110399298A (zh) 一种测试方法及装置
McCandless et al. Intelligent Black Box Verification, Validation, and Accreditation for Rotorcraft Performance Modeling
KR102411292B1 (ko) 스마트공장 데이터 품질관리 방법

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
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

GR01 Patent grant
GR01 Patent grant