一种控制律软件的测试方法技术

技术编号:11985855 阅读:117 留言:0更新日期:2015-09-02 15:28
本发明专利技术提供了一种控制律软件的测试方法,涉及软件测试领域,对基于控制律仿真模型的控制律软件进行测试。本发明专利技术通过对控制律仿真软件生成的连续性输入数据以及预期输出数据进行数据预处理,并执行控制律软件得到实际输出数据,比较实际输出数据与预期输出数据,同时,使用成熟的软件测试工具对上述步骤进行控制律软件数据覆盖率等测试指标统计。

【技术实现步骤摘要】

本专利技术设及软件测试
,具体而言,设及。
技术介绍
软件测试,是在规定的条件下对程序进行操作,W发现程序错误,衡量软件质量, 并对其是否能满足设计要求进行评估的过程。软件测试的目的是尽可能地发现存在于软件 中的错误及缺陷,而针对于多模态、多速率组等特点的控制律软件来说,有限的测试数据并 不能完全的验证控制律软件的正确性。在W往的控制律软件测试中,软件测试人员根据控 制律功能点来选取测试数据,如果测试结果正确则认为控制律软件是正确的,然而该些具 有功能点数据的正确性并不能代表所有数据的正确性,因此未能发现存在于软件中的错误 及缺陷。如使用控制律仿真软件生成的数据作为测试数据,成千上万组测试数据由测试人 员人工输入也是不现实的,且输入数据的准确性也有待质疑。
技术实现思路
本专利技术的目的在于解决上述现有技术中的不足,提出一种控制律软件的测试方 法,能够覆盖控制律模型中的连续数据,尽可能的发现控制律软件中存在的错误。本专利技术控 制律软件的测试方法对基于控制律仿真模型的控制律软件进行测试,包括如下步骤: S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组 测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指 令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据; S102、对所述连续性多组测试数据中的每一组测试数据,将其输入数据作为控制 律软件的输入,执行所述控制律软件,并将所述控制律软件的输出作为实际输出数据,将预 期输出数据与实际输出数据进行比对,若所述预期输出数据与实际输出数据的绝对误差超 过精度要求,则计一次软件错误,按该步骤内上述方法执行所述连续性多组测试数据中的 所有测试数据,统计软件错误次数; S103、使用软件测试工具对由步骤S102中设及的方法所产生的程序进行测试; S104、若步骤S102中软件错误次数不为零,则对所述控制律软件进行程序修改, 使其程序正确,并用步骤S101-S103进行验证,直至所述软件错误次数为零;[000引S105、分析软件测试结果,对未覆盖到的测试数据进行分析,在所述控制律模型中 再次生成未被覆盖的范围,进行补充测试,重复执行步骤S101-S104,直至覆盖所述运行周 期内所有的测试数据。 优选的是,通过在所述控制律仿真模型中添加数据生成模块提取所述运行周期内 的连续性多组测试数据,该数据生成模块通过读取控制律仿真模型中的输入数据与预期输 出数据,通过预处理模块对提取的数据进行处理,把处理后的输入数据作为控制律软件的 输入,并运行控制律软件得到实际输出。 上述任一方案中优选的是,所述控制律仿真模型使用MTLAB中的Simulink仿真 模块构建。 上述任一方案中优选的是,在步骤S102中,将预期输出数据与实际输出数据进行 比对时,所述的精度不超过0. 001。 优选的是,所述精度为0.0001。 上述任一方案中优选的是,所述对步骤S103中的软件测试工具,包括TESTBED。 上述任一方案中优选的是,所述分析软件测试结果指对所述软件测试指标进行分 析,包括语句覆盖率、分支覆盖率W及功能覆盖率。 本专利技术所提供的控制律软件的测试方法能更有效、更大范围的对控制律软件中的 数据进行软件测试,且方法简单,测试数据覆盖范围广。通过在控制律软件中设置的驱动测 试程序,不仅能对控制律软件生成的实际输出与仿真模型的预期输出做比较结果统计,而 且通过循环语句读取该控制律软件同样能完成该控制律软件的测试。避免了大数据的人工 录入,方法简单,可广泛应用于机载软件中的大量的连续性数据测试。【附图说明】 图1是按照本专利技术的控制律软件的测试方法的一优选实施例的测试流程图。【具体实施方式】 为了更好地理解本专利技术所提供的控制律软件的测试方法,下面结合附图对其进一 步说明。 如图1所示,本专利技术控制律软件的测试方法包括如下步骤: S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组 测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指 令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据; 应当理解的是,控制律软件具有多模态、多速率组等特点,因而该控制律软件具有 周期性。在本实施例中,采用周期为12. 5ms,具有50ms和100ms两个速率组的控制律软件 进行测试,如选取200s运行周期,则生成16001组测试数据。 本实施例通过编写".m文件"用W提取该运行周期内的连续性多组测试数据,通 过在所述控制律仿真模型中添加该读取文件,W提取所述运行周期内的连续性多组测试数 据,如需对飞机的起落架开关SW_GEAR、迎角ALPHA、驾驶杆横向位移DX、脚踐位移DY、滚转 角速率Wx、偏航角速率Wy、左副翼偏度DTX化、右副翼偏度DTXCR进行监视,其中,起落架开 关SW_GEAR、迎角ALPHA、驾驶杆横向位移DX、脚踐位移DY、滚转角速率Wx、偏航角速率Wy为 输入数据,左副翼偏度DTXCL、右副翼偏度DTXCR为控制律仿真模型的预期输出文件。则编 写".m文件"如下: void In_Out_Data(void) { 该数据生成模块通过函数In_Out_Data,读取控制律当前第1页1 2 本文档来自技高网...
一种控制律软件的测试方法

【技术保护点】
一种控制律软件的测试方法,对基于控制律仿真模型的控制律软件进行测试,其特征在于,包括:S101、选取控制律仿真模型中的某一运行周期,提取该运行周期内的连续性多组测试数据,所述运行周期是指在该运行周期内覆盖所述控制律仿真模型中的所有控制指令,所述连续性多组测试数据中的每一组测试数据包括输入数据和预期输出数据;S102、对所述连续性多组测试数据中的每一组测试数据,将其输入数据作为控制律软件的输入,执行所述控制律软件,并将所述控制律软件的输出作为实际输出数据,将预期输出数据与实际输出数据进行比对,若所述预期输出数据与实际输出数据的绝对误差超过精度要求,则计一次软件错误,按该步骤内上述方法执行所述连续性多组测试数据中的所有测试数据,统计软件错误次数;S103、使用软件测试工具对由步骤S102中涉及的方法所产生的程序进行测试;S104、若步骤S102中软件错误次数不为零,则对所述控制律软件进行程序修改,使其程序正确,并用步骤S101‑S103进行验证,直至所述软件错误次数为零;S105、分析软件测试结果,对未覆盖到的测试数据进行分析,在所述控制律模型中再次生成未被覆盖的范围,进行补充测试,重复执行步骤S101‑S104,直至覆盖所述运行周期内所有的测试数据。...

【技术特征摘要】

【专利技术属性】
技术研发人员:刘佳魏小勇李育
申请(专利权)人:中国航空工业集团公司西安飞机设计研究所
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1