一种控制律软件的测试方法.pdf

上传人:b*** 文档编号:21704 上传时间:2018-01-12 格式:PDF 页数:7 大小:384.26KB
返回 下载 相关 举报
摘要
申请专利号:

CN201510351825.2

申请日:

2015.06.24

公开号:

CN104881363A

公开日:

2015.09.02

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 11/36申请日:20150624|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

中国航空工业集团公司西安飞机设计研究所

发明人:

刘佳; 魏小勇; 李育

地址:

710089陕西省西安市阎良区人民东路1号

优先权:

专利代理机构:

北京航信高科知识产权代理事务所(普通合伙)11526

代理人:

贾萌

PDF下载: PDF下载
内容摘要

本发明提供了一种控制律软件的测试方法,涉及软件测试领域,对基于控制律仿真模型的控制律软件进行测试。本发明通过对控制律仿真软件生成的连续性输入数据以及预期输出数据进行数据预处理,并执行控制律软件得到实际输出数据,比较实际输出数据与预期输出数据,同时,使用成熟的软件测试工具对上述步骤进行控制律软件数据覆盖率等测试指标统计。

权利要求书

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所述的控制律软件的测试方法,其特征在于:所述分析软件测试结果指对所述软件测试指标进行分析,包括语句覆盖率、分支覆盖率以及功能覆盖率。

说明书

一种控制律软件的测试方法
技术领域
本发明涉及软件测试技术领域,具体而言,涉及一种控制律软件的测试方法。
背景技术
软件测试,是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。软件测试的目的是尽可能地发现存在于软件中的错误及缺陷,而针对于多模态、多速率组等特点的控制律软件来说,有限的测试数据并不能完全的验证控制律软件的正确性。在以往的控制律软件测试中,软件测试人员根据控制律功能点来选取测试数据,如果测试结果正确则认为控制律软件是正确的,然而这些具有功能点数据的正确性并不能代表所有数据的正确性,因此未能发现存在于软件中的错误及缺陷。如使用控制律仿真软件生成的数据作为测试数据,成千上万组测试数据由测试人员人工输入也是不现实的,且输入数据的准确性也有待质疑。
发明内容
本发明的目的在于解决上述现有技术中的不足,提出一种控制律软件的测试方法,能够覆盖控制律模型中的连续数据,尽可能的发现控制律软件中存在的错误。本发明控制律软件的测试方法对基于控制律仿真模型的控制律软件进行测试,包括如下步骤:
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,直至覆盖所述运行周期内所有的测试数据。
以上结合本发明的具体实施例做了详细描述,但并非是对本发明的限制,凡是依据本发明的技术实质对以上实施例所做的任何简单修改均属于本发明的技术范围,还需要说明的是,按照本发明的控制律软件测试方法技术方案的范畴包括上述各部分之间的任意组合。

一种控制律软件的测试方法.pdf_第1页
第1页 / 共7页
一种控制律软件的测试方法.pdf_第2页
第2页 / 共7页
一种控制律软件的测试方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种控制律软件的测试方法.pdf》由会员分享,可在线阅读,更多相关《一种控制律软件的测试方法.pdf(7页珍藏版)》请在专利查询网上搜索。

本发明提供了一种控制律软件的测试方法,涉及软件测试领域,对基于控制律仿真模型的控制律软件进行测试。本发明通过对控制律仿真软件生成的连续性输入数据以及预期输出数据进行数据预处理,并执行控制律软件得到实际输出数据,比较实际输出数据与预期输出数据,同时,使用成熟的软件测试工具对上述步骤进行控制律软件数据覆盖率等测试指标统计。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1