CN104881363B - 一种控制律软件的测试方法 - Google Patents
一种控制律软件的测试方法 Download PDFInfo
- Publication number
- CN104881363B CN104881363B CN201510351825.2A CN201510351825A CN104881363B CN 104881363 B CN104881363 B CN 104881363B CN 201510351825 A CN201510351825 A CN 201510351825A CN 104881363 B CN104881363 B CN 104881363B
- Authority
- CN
- China
- Prior art keywords
- software
- control law
- data
- test
- testing
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种控制律软件的测试方法,涉及软件测试领域,对基于控制律仿真模型的控制律软件进行测试。本发明通过对控制律仿真软件生成的连续性输入数据以及预期输出数据进行数据预处理,并执行控制律软件得到实际输出数据,比较实际输出数据与预期输出数据,同时,使用成熟的软件测试工具对上述步骤进行控制律软件数据覆盖率等测试指标统计。
Description
技术领域
本发明涉及软件测试技术领域,具体而言,涉及一种控制律软件的测试方法。
背景技术
软件测试,是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试的目的是尽可能地发现存在于软件中的错误及缺陷,而针对于多模态、多速率组等特点的控制律软件来说,有限的测试数据并不能完全的验证控制律软件的正确性。在以往的控制律软件测试中,软件测试人员根据控制律功能点来选取测试数据,如果测试结果正确则认为控制律软件是正确的,然而这些具有功能点数据的正确性并不能代表所有数据的正确性,因此未能发现存在于软件中的错误及缺陷。如使用控制律仿真软件生成的数据作为测试数据,成千上万组测试数据由测试人员人工输入也是不现实的,且输入数据的准确性也有待质疑。
发明内容
本发明的目的在于解决上述现有技术中的不足,提出一种控制律软件的测试方法,能够覆盖控制律模型中的连续数据,尽可能的发现控制律软件中存在的错误。本发明控制律软件的测试方法对基于控制律仿真模型的控制律软件进行测试,包括如下步骤:
S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据;
S102、对所述连续性多组测试数据中的每一组测试数据,将其输入数据作为控制律软件的输入,执行所述控制律软件,并将所述控制律软件的输出作为实际输出数据,将预期输出数据与实际输出数据进行比对,若所述预期输出数据与实际输出数据的绝对误差超过精度要求,则计一次软件错误,按该步骤内上述方法执行所述连续性多组测试数据中的所有测试数据,统计软件错误次数;
S103、使用软件测试工具对由步骤S102中涉及的方法所产生的程序进行测试;
S104、若步骤S102中软件错误次数不为零,则对所述控制律软件进行程序修改,使其程序正确,并用步骤S101-S103进行验证,直至所述软件错误次数为零;
S105、分析软件测试结果,对未覆盖到的测试数据进行分析,在所述控制律模型中再次生成未被覆盖的范围,进行补充测试,重复执行步骤S101-S104,直至覆盖所述运行周期内所有的测试数据。
优选的是,通过在所述控制律仿真模型中添加数据生成模块提取所述运行周期内的连续性多组测试数据,该数据生成模块通过读取控制律仿真模型中的输入数据与预期输出数据,通过预处理模块对提取的数据进行处理,把处理后的输入数据作为控制律软件的输入,并运行控制律软件得到实际输出。
上述任一方案中优选的是,所述控制律仿真模型使用MATLAB中的Simulink仿真模块构建。
上述任一方案中优选的是,在步骤S102中,将预期输出数据与实际输出数据进行比对时,所述的精度不超过0.001。
优选的是,所述精度为0.0001。
上述任一方案中优选的是,所述对步骤S103中的软件测试工具,包括TESTBED。
上述任一方案中优选的是,所述分析软件测试结果指对所述软件测试指标进行分析,包括语句覆盖率、分支覆盖率以及功能覆盖率。
本发明所提供的控制律软件的测试方法能更有效、更大范围的对控制律软件中的数据进行软件测试,且方法简单,测试数据覆盖范围广。通过在控制律软件中设置的驱动测试程序,不仅能对控制律软件生成的实际输出与仿真模型的预期输出做比较结果统计,而且通过循环语句读取该控制律软件同样能完成该控制律软件的测试。避免了大数据的人工录入,方法简单,可广泛应用于机载软件中的大量的连续性数据测试。
附图说明
图1是按照本发明的控制律软件的测试方法的一优选实施例的测试流程图。
具体实施方式
为了更好地理解本发明所提供的控制律软件的测试方法,下面结合附图对其进一步说明。
如图1所示,本发明控制律软件的测试方法包括如下步骤:
S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据;
应当理解的是,控制律软件具有多模态、多速率组等特点,因而该控制律软件具有周期性。在本实施例中,采用周期为12.5ms,具有50ms和100ms两个速率组的控制律软件进行测试,如选取200s运行周期,则生成16001组测试数据。
本实施例通过编写“.m文件”用以提取该运行周期内的连续性多组测试数据,通过在所述控制律仿真模型中添加该读取文件,以提取所述运行周期内的连续性多组测试数据,如需对飞机的起落架开关SW_GEAR、迎角ALPHA、驾驶杆横向位移DX、脚蹬位移DY、滚转角速率Wx、偏航角速率Wy、左副翼偏度DTXCL、右副翼偏度DTXCR进行监视,其中,起落架开关SW_GEAR、迎角ALPHA、驾驶杆横向位移DX、脚蹬位移DY、滚转角速率Wx、偏航角速率Wy为输入数据,左副翼偏度DTXCL、右副翼偏度DTXCR为控制律仿真模型的预期输出文件。则编写“.m文件”如下:
该数据生成模块通过函数In_Out_Data,读取控制律仿真模型中的输入数据与预期输出数据,并把输入数据进行预处理后,作为控制律软件的输入,从而运行得到实际输出。
S102、对所述连续性多组测试数据中的每一组测试数据,将其输入数据进行预处理后作为控制律软件的输入,执行所述控制律软件,并将所述控制律软件的输出作为实际输出数据,将预期输出数据与实际输出数据进行比对,若所述预期输出数据与实际输出数据的绝对误差超过精度要求,则计一次软件错误,按该步骤内上述方法执行所述连续性多组测试数据中的所有测试数据,统计软件错误次数;
应当理解的是,本发明中将预期输出数据与实际输出数据进行比对时,所述的精度不超过0.001,在本实施例中,取精度0.0001,具体比较过程如下:
需要说明的是,输入“SW_GEAR,ALPHA,DX,DY,Wx,Wy”首先赋值给本函数全局变量,之后执行控制律函数,本函数在循环过程中,调用了函数ControlLaw(),即控制律软件,通过控制律软件输出“VDTXCL”以及“VDTXCR”,即实际输出,之后与预期输出结果“DTXCL、DTXCR”做绝对误差abs,并与精度0.0001进行比较,输出统计结果“result”。
S103、使用软件测试工具对由步骤S102中涉及的方法所产生的程序进行测试;应当理解的是,本实施例中步骤S102的驱动测试程序替换了原有的控制律测试软件读取程序,不仅可以批量进行输入、输出数据导入,而且在该驱动测试程序的循环语句里,调用了控制律软件对应的函数ControlLaw(),因而控制律软件的测试软件具备了读取控制律软件程序的功能,从而也能达到原控制律软件的测试软件所具备的软件测试功能。通过软件测试模块对控制律软件进行测试。本实施例中,所述的控制律的软件测试工具为TESTBED。使用该软件测试工具对所述的驱动测试程序进行覆盖率的统计,及对其内的控制律软件进行覆盖统计,由于对大数据进行测试的阶段一般在软件集成测试阶段进行,因此,较多关注语句、分支、功能的覆盖率。
S104、若步骤S102中软件错误次数不为零,证明该控制律软件本身存在程序性错误,需要对所述控制律软件进行程序修改,使其程序正确,并用步骤S101-S103进行验证,直至所述软件错误次数,即统计结果“result”为零。
S105、分析软件测试结果,对未覆盖到的测试数据进行分析,在所述控制律模型中再次生成未被覆盖的范围,进行补充测试,重复执行步骤S101-S104,直至覆盖所述运行周期内所有的测试数据。
以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改均属于本发明的技术范围,还需要说明的是,按照本发明的控制律软件测试方法技术方案的范畴包括上述各部分之间的任意组合。
Claims (6)
1.一种控制律软件的测试方法,对基于控制律仿真模型的控制律软件进行测试,其特征在于,包括:
S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据;
S102、对所述连续性多组测试数据中的每一组测试数据,将其输入数据作为控制律软件的输入,执行所述控制律软件,并将所述控制律软件的输出作为实际输出数据,将预期输出数据与实际输出数据进行比对,若所述预期输出数据与实际输出数据的绝对误差超过精度要求,则计一次软件错误,按该步骤内上述方法执行所述连续性多组测试数据中的所有测试数据,统计软件错误次数;
S103、使用软件测试工具对由步骤S102中涉及的方法所产生的程序进行测试;
S104、若步骤S102中软件错误次数不为零,则对所述控制律软件进行程序修改,使其程序正确,并用步骤S101-S103进行验证,直至所述软件错误次数为零;
S105、分析软件测试结果,对未覆盖到的测试数据进行分析,在所述控制律模型中再次生成未被覆盖的范围,进行补充测试,重复执行步骤S101-S104,直至覆盖所述运行周期内所有的测试数据。
2.如权利要求1所述的控制律软件的测试方法,其特征在于:通过在所述控制律仿真模型中添加数据生成模块提取所述运行周期内的连续性多组测试数据。
3.如权利要求2所述的控制律软件的测试方法,其特征在于:所述控制律仿真模型使用MATLAB中的Simulink仿真模块构建。
4.如权利要求1所述的控制律软件的测试方法,其特征在于:在步骤S102中,将预期输出数据与实际输出数据进行比对时,所述的精度不超过0.001。
5.如权利要求1所述的控制律软件的测试方法,其特征在于:所述对步骤S103中的软件测试工具,包括TESTBED。
6.如权利要求5所述的控制律软件的测试方法,其特征在于:所述分析软件测试结果指对所述软件测试指标进行分析,包括语句覆盖率、分支覆盖率以及功能覆盖率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510351825.2A CN104881363B (zh) | 2015-06-24 | 2015-06-24 | 一种控制律软件的测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510351825.2A CN104881363B (zh) | 2015-06-24 | 2015-06-24 | 一种控制律软件的测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104881363A CN104881363A (zh) | 2015-09-02 |
CN104881363B true CN104881363B (zh) | 2017-12-12 |
Family
ID=53948865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510351825.2A Active CN104881363B (zh) | 2015-06-24 | 2015-06-24 | 一种控制律软件的测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104881363B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106873355B (zh) * | 2015-12-14 | 2019-12-24 | 中国航空工业第六一八研究所 | 一种多优先级维护测试指令与控制律指令的选择与切换方法 |
CN105608004A (zh) * | 2015-12-17 | 2016-05-25 | 云南大学 | 一种基于cs-ann的软件缺陷预测方法 |
CN108132877B (zh) * | 2017-12-08 | 2021-04-20 | 中航(成都)无人机系统股份有限公司 | 一种飞行控制软件中增益覆盖率测试的方法 |
CN112462739B (zh) * | 2020-11-19 | 2021-06-29 | 北京京航计算通讯研究所 | 一种双通道耦合飞行控制程序的故障检测系统 |
CN112416766B (zh) * | 2020-11-19 | 2021-06-22 | 北京京航计算通讯研究所 | 双通道耦合飞行控制软件的故障模式分析和检测方法 |
CN116710858B (zh) * | 2021-02-17 | 2024-05-03 | 三菱电机株式会社 | 数据核对装置、数据核对系统以及数据核对方法 |
CN114706794B (zh) * | 2022-06-06 | 2022-08-30 | 航天亮丽电气有限责任公司 | 生产管理软件的数据处理系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706751A (zh) * | 2009-11-23 | 2010-05-12 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN101708780A (zh) * | 2009-11-26 | 2010-05-19 | 哈尔滨工业大学 | 用于目标姿态跟踪的刚性航天器的控制方法 |
CN104008056A (zh) * | 2014-05-30 | 2014-08-27 | 广州华多网络科技有限公司 | 软件测试方法及装置 |
CN104503426A (zh) * | 2014-11-25 | 2015-04-08 | 航宇救生装备有限公司 | 翼伞控制律试验调试平台及调试方法 |
-
2015
- 2015-06-24 CN CN201510351825.2A patent/CN104881363B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706751A (zh) * | 2009-11-23 | 2010-05-12 | 中兴通讯股份有限公司 | 软件业务功能覆盖率的统计方法及系统 |
CN101708780A (zh) * | 2009-11-26 | 2010-05-19 | 哈尔滨工业大学 | 用于目标姿态跟踪的刚性航天器的控制方法 |
CN104008056A (zh) * | 2014-05-30 | 2014-08-27 | 广州华多网络科技有限公司 | 软件测试方法及装置 |
CN104503426A (zh) * | 2014-11-25 | 2015-04-08 | 航宇救生装备有限公司 | 翼伞控制律试验调试平台及调试方法 |
Non-Patent Citations (2)
Title |
---|
基于FlightGear的无人直升机飞行仿真技术研究;刘鹏;《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》;20111215;第71-81页 * |
电传飞机模型自由飞试验飞行控制技术研究;刘尚民;《飞行力学》;20120930;第1-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104881363A (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104881363B (zh) | 一种控制律软件的测试方法 | |
CN105893256B (zh) | 基于机器学习算法的软件故障定位方法 | |
CN110488630B (zh) | 一种控制增稳飞控计算机测试系统及测试方法 | |
CN105046279B (zh) | 一种模拟电路故障模式分类方法 | |
CN104899076B (zh) | 一种超大规模集成电路门级网表仿真的加速方法 | |
CN104215893A (zh) | 基于信号概率的电路可靠性评估方法 | |
CN106802576B (zh) | 一种基于仿真的飞行故障判定方法 | |
CN206584346U (zh) | 一种分布式惯导深组合导航软件测试验证系统 | |
CN107678325B (zh) | 一种基于实时操作系统和fpga的转台伺服控制方法 | |
CN107944193A (zh) | 航电半实物仿真系统 | |
CN104977169B (zh) | 一种火箭发动机冷摆数字试验方法 | |
CN103760898A (zh) | 一种快速建立小卫星控制测试系统的方法 | |
CN103364703B (zh) | Led多应力下可靠性快速评测方法 | |
CN106951575A (zh) | 一种基于cosim的多学科虚拟试验仿真方法 | |
CN107621788B (zh) | 一种协同仿真系统及服务器 | |
CN107608231A (zh) | 一种导引头稳定平台的调试方法 | |
CN105574178A (zh) | 一种卫星测试基础数据库及批产化卫星测试装置与方法 | |
CN103244137B (zh) | 一种土压平衡盾构刀盘驱动电机同步伺服控制模拟装置 | |
CN103743645A (zh) | 利用热失重分析技术控制驱油用聚合物质量的方法 | |
CN112849429B (zh) | 一种民机系统测量参数的溯源方法 | |
CN105260519A (zh) | 一种无人机fmeca分析方法 | |
CN113946979A (zh) | 一种导航算法精度验证方法、系统、设备及器存储介质 | |
CN103593285B (zh) | 一种基于判定识别的图像类软件单元测试方法 | |
CN106874179A (zh) | 一种飞控系统bit系统测试方法 | |
CN104634574B (zh) | 发动机外特性曲线获得方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |