一种面向航天器姿轨控软件的Python自动测试脚本编写方法与流程

文档序号:26952068发布日期:2021-10-16 02:02阅读:219来源:国知局
一种面向航天器姿轨控软件的Python自动测试脚本编写方法与流程
一种面向航天器姿轨控软件的python自动测试脚本编写方法
技术领域
1.本发明涉及一种面向航天器姿轨控软件的python自动测试脚本编写方法,主要用于航天器姿轨控软件的自动测试脚本编写,属于航天器姿轨控软件测试领域。


背景技术:

2.航天器姿轨控系统的任务是确保航天器能准确按预定的姿态和轨道运行,完成复杂多样的飞行使命,姿轨控软件是控制系统的大脑。随着航天任务数量和难度的增加,姿轨控软件研制面临版本迭代多而研制周期短的现状,同时对姿轨控软件测试工作带来挑战。
3.传统的手动测试中,测试人员逐一执行每个用例中的每条步骤,实时观察遥测数据和遥测曲线等,对每个步骤执行的正确性进行判读。这种手动测试工作量大,重复工作多,效率较低。


技术实现要素:

4.本发明解决的技术问题是:克服现有技术的不足,提供了一种面向航天器姿轨控软件的python自动测试脚本编写方法,提升了航天器姿轨控软件自动测试脚本编写效率和测试质量。
5.本发明的技术解决方案是:一种面向航天器姿轨控软件的python自动测试脚本编写方法,包括如下步骤:
6.步骤(1),确定航天器姿轨控软件测试脚本编写所需要的基础模块库:初始状态设置库、遥控指令库、故障设置库、判读规则库、步骤驱动库、测试控制库;
7.步骤(2),使用python语言编写航天器姿轨控软件测试脚本编写所需要的各基础模块库;
8.步骤(3),确定航天器姿轨控软件自动测试脚本编写流程框架;
9.步骤(4),按照航天器姿轨控软件自动测试脚本编写流程框架,调用基础模块库函数编写自动测试脚本。
10.进一步地,所述基础模块库包括:
11.初始状态设置库,包括初始时间、轨道、姿态、角动量、质量特性、部件加电状态;
12.遥控指令库,包括该姿轨控软件涉及到的所有遥控指令;
13.故障设置库,包括各部件的掉电故障、接口通讯故障、敏感器姿态常值故障、敏感器姿态跳变故障、敏感器姿态超差故障、推力器喷管堵塞故障;
14.判读规则库,包括针对离散遥测量的正常状态判读、异常状态判读、条件判读、逻辑运算判读,针对连续遥测量的门限判读、统计判读、姿态控制精度判读、轨控效果判读,以及针对一般测试用例的通用判读,通用判读包括无告警无停控判读、星地轨道一致判读、星地姿态一致判读;
15.步骤驱动库,包括相对时间驱动、绝对时间驱动、条件驱动、其它逻辑驱动;
16.测试控制库,包括测试启动、测试结束、测试脚本批量执行、测试画图、典型工况的
测试用例脚本模板和测试脚本推荐、同类型测试用例脚本自动生成。
17.进一步地,所述流程框架中的测试流程为:
18.启动测试;
19.设置初始状态;
20.测试步骤驱动,包括时间驱动、条件驱动、其它逻辑驱动;
21.执行若干测试步骤,测试步骤的内容包括发送指令、故障设置;
22.对测试步骤的执行结果进行判读,判读内容包括对测试步骤中发送指令后、故障设置后执行结果的判读,以及通用判读;
23.根据此用例预设的遥测量进行画图,用于方便人工复查和生成测试报告;
24.结束测试。
25.进一步地,所述步骤(4)具体包括如下步骤:
26.启动测试时,调用测试控制库中的启动测试函数以启动测试;
27.设置初始状态时,调用初始状态设置库中的初始状态设置函数以设置具体测试用例需要的初始时间、轨道、姿态、角动量、质量特性、部件加电状态;
28.测试步骤驱动时,根据具体测试用例需要,调用步骤驱动库中的时间驱动、条件驱动、其它逻辑驱动;
29.执行测试步骤时,根据具体测试用例需要,调用指令库或故障设置库,以发送某指令或进行某故障设置;
30.进行判读时,根据测试步骤,调用判读规则库,对测试步骤的执行结果进行判读,对多步骤组合进行判读,同时调用通用判读规则;
31.根据此用例预设的遥测量进行画图时,根据具体测试用例需要,调用测试控制库的测试画图函数;
32.结束测试,调用测试控制库中的结束测试函数以结束测试;
33.完成自动测试脚本编写。
34.一种面向航天器姿轨控软件的python自动测试脚本编写系统,包括:
35.第一模块,提供航天器姿轨控软件测试脚本编写所需要的基础模块库,具体包括:初始状态设置库、遥控指令库、故障设置库、判读规则库、步骤驱动库、测试控制库;
36.第二模块,提供航天器姿轨控软件自动测试脚本编写流程框架;
37.第三模块,用于按照航天器姿轨控软件自动测试脚本编写流程框架,调用基础模块库中的函数编写自动测试脚本。
38.进一步地,所述基础模块库包括:
39.初始状态设置库,包括初始时间、轨道、姿态、角动量、质量特性、部件加电状态;
40.遥控指令库,包括该姿轨控软件涉及到的所有遥控指令;
41.故障设置库,包括各部件的掉电故障、接口通讯故障、敏感器姿态常值故障、敏感器姿态跳变故障、敏感器姿态超差故障、推力器喷管堵塞故障;
42.判读规则库,包括针对离散遥测量的正常状态判读、异常状态判读、条件判读、逻辑运算判读,针对连续遥测量的门限判读、统计判读、姿态控制精度判读、轨控效果判读,以及针对一般测试用例的通用判读,通用判读包括无告警无停控判读、星地轨道一致判读、星地姿态一致判读;
43.步骤驱动库,包括相对时间驱动、绝对时间驱动、条件驱动、其它逻辑驱动;
44.测试控制库,包括测试启动、测试结束、测试脚本批量执行、测试画图、典型工况的测试用例脚本模板和测试脚本推荐、同类型测试用例脚本自动生成。
45.进一步地,所述流程框架中的测试流程为:
46.启动测试;
47.设置初始状态;
48.测试步骤驱动,包括时间驱动、条件驱动、其它逻辑驱动;
49.执行若干测试步骤,测试步骤的内容包括发送指令、故障设置;
50.自动对测试步骤的执行结果进行判读,判读内容包括对测试步骤中发送指令后、故障设置后执行结果的判读,以及通用判读;
51.根据此用例预设的遥测量进行画图,用于方便人工复查和生成测试报告;
52.结束测试。
53.进一步地,所述第三模块中调用基础模块库中的函数编写自动测试脚本具体包括如下步骤:
54.启动测试时,调用测试控制库中的启动测试函数以启动测试;
55.设置初始状态时,调用初始状态设置库中的初始状态设置函数以设置具体测试用例需要的初始时间、轨道、姿态、角动量、质量特性、部件加电状态;
56.测试步骤驱动时,根据具体测试用例需要,调用步骤驱动库中的时间驱动、条件驱动、其它逻辑驱动;
57.执行测试步骤时,根据具体测试用例需要,调用指令库或故障设置库,以发送某指令或进行某故障设置;
58.进行判读时,根据测试步骤,调用判读规则库,对测试步骤的执行结果进行判读,对多步骤组合进行判读,同时调用通用判读规则;
59.根据此用例预设的遥测量进行画图时,根据具体测试用例需要,调用测试控制库的测试画图函数;
60.结束测试,调用测试控制库中的结束测试函数以结束测试;
61.完成自动测试脚本编写。
62.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述一种面向航天器姿轨控软件的python自动测试脚本编写方法的步骤。
63.一种面向航天器姿轨控软件的python自动测试脚本编写设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现所述一种面向航天器姿轨控软件的python自动测试脚本编写方法的步骤。
64.本发明与现有技术相比的优点在于:
65.(1)本发明针对航天器姿轨控软件测试用例编写特点,设计了完善的遥控指令库、初始状态设置库、故障设置库、判读规则库、步骤驱动库、测试控制库,提升了测试脚本编写的效率和质量。
66.(2)本发明针对航天器姿轨控软件测试用例编写特点,设计了航天器姿轨控软件
自动测试脚本编写流程框架,完善了航天器姿轨控软件测试脚本编写规范。
67.(3)通过不断完善积累航天器姿轨控软件测试脚本编写基础模块库、典型工况测试脚本、型号可复用测试脚本,促进了测试环境通用化发展,提升了测试资产复用。
附图说明
68.图1为航天器姿轨控软件测试脚本编写基础模块库图;
69.图2为航天器姿轨控软件测试脚本编写流程框架图。
具体实施方式
70.针对航天器姿轨控软件,在其复杂度不断增加、研制周期缩短、研制版本迭代快的现状下,自动化测试势在必行,自动测试脚本编写的效率和质量至关重要。如图1、图2,本发明一种面向航天器姿轨控软件的python自动测试脚本编写方法,对自动测试脚本编写的基础模块库、自动测试脚本编写流程框架进行设计,根据自动测试脚本编写流程,调用各库的基本函数进行脚本编写,通过调用库函数,提升测试脚本编写的效率,完善的判读规则库,多重判读规则调用,提升了测试的质量。
71.在本技术实施例所提供的方案中,一种面向航天器姿轨控软件的python自动测试脚本编写方法,具体步骤如下:
72.第一步,设计航天器姿轨控软件测试脚本编写所需要的基础模块库,包括以下内容:
73.(1)初始状态设置库,包括初始时间、轨道、姿态、部件加电状态等;
74.(2)遥控指令库,包括该姿轨控软件涉及到的所有遥控指令,同时包括可选用的关联判读;
75.(3)故障设置库,包括各部件的掉电故障、接口通讯故障、敏感器姿态常值故障、敏感器姿态跳变故障等,同时包括可选用的关联判读;
76.(4)判读规则库,包括针对离散遥测量的正常状态判读、异常状态判读、条件判读、逻辑运算判读等,针对连续遥测量的门限判读、统计判读、姿态控制精度判读、轨控效果判读等,以及针对一般测试用例的通用判读,如无告警无停控判读、星地轨道一致判读、星地姿态一致判读;
77.(5)步骤驱动库,包括相对时间驱动、绝对时间驱动、条件驱动等;
78.(6)测试控制库,包括测试启动、测试结束、测试脚本批量执行、测试画图、典型工况的测试用例脚本模板和测试脚本推荐、同类型测试用例脚本自动生成等。如图1所示为航天器姿轨控软件测试脚本编写基础模块库图。
79.第二步,使用python语言编写航天器姿轨控软件测试脚本编写所需要的各基础模块库:
80.使用python语言编写遥控指令库、初始状态设置库、故障设置库、判读规则库、步骤驱动库、测试控制库,各库函数名称以语义命名。
81.例1:指令库中一个固定遥控指令“转入正常模式”,python语言编写如下:
82.def发送指令转入正常模式():
83.tc=[ab06,0001,0002,0003,0004,0005,0006];注释:指令内容
[0084]
发送(tc);
[0085]
例2:判读规则库中一个针对遥测量差值范围检查的规则,python语言编写如下:
[0086]
def两个遥测量差值范围检查(tm_var1,tm_var2,offset):
[0087]
注释:tm_var1
ꢀꢀꢀ
某遥测变量1
[0088]
注释:tm_var2
ꢀꢀꢀ
某遥测变量2
[0089]
注释:offset
ꢀꢀꢀꢀ
两个遥测量的偏差阈值,默认2%
[0090]
return generalcase(两个遥测量差值检查);
[0091]
check(abs(tm_var1

tm_var2)<offset);
[0092]
print('遥测量差值为:',tm_var1

tm_var2);
[0093]
return
[0094]
例3:判读规则库中一个针对运行状态正常检查的规则,python语言编写如下:
[0095]
def运行状态正常检查():
[0096]
注释:没有切机
[0097]
check(切机遥测量==0);
[0098]
注释:没有停控
[0099]
check(长期停控遥测量==0and短期停控遥测量==0);
[0100]
注释:没有告警
[0101]
check(浮点异常告警标志==0);
[0102]
check(地敏a告警标志==0and地敏b告警标志==0);
[0103]
check(陀螺告警标志==0);
[0104]
check(太敏故障告警标志==0);
[0105]
check(姿态超差告警标志==0);
[0106]
check(喷气频繁告警标志==0);
[0107]
return
[0108]
第三步,设计航天器姿轨控软件自动测试脚本编写流程框架:
[0109]
(1)启动测试;
[0110]
(2)初始状态设置,包括初始时间、轨道、姿态角、角速度、部件加电状态等;
[0111]
(3)测试步骤驱动,包括时间驱动,条件驱动等;
[0112]
(4)测试步骤1~测试步骤n,测试步骤的内容为发送指令、故障设置;
[0113]
(5)自动判读1~自动判读n,自动判读内容包括对测试步骤中发送指令后、故障设置后执行结果的判读,也包括通用判读。
[0114]
(6)根据此用例预设的遥测量进行画图,用于方便人工复查和生成测试报告;
[0115]
(7)结束测试。
[0116]
如图2所示为航天器姿轨控软件测试脚本编写流程框架图。
[0117]
第四步,按照航天器姿轨控软件自动测试脚本编写流程框架,调用库函数编写自动测试脚本。
[0118]
以地敏姿态角遥测剔野功能的自动测试脚本编写为例,功能为:地敏姿态角遥测为从地敏接口采集的原始数据,可能偶发出现几拍野值,当野值大于8度,持续时间大于0.5秒时,地敏姿态角遥测显示野值,否则不显示野值。
[0119]
(1)按照航天器姿轨控软件自动测试脚本编写流程框架,首先启动测试,调用测试控制库中的启动测试函数:启动测试();
[0120]
(2)按照航天器姿轨控软件自动测试脚本编写流程框架,进行初始状态设置,调用初始状态设置库中的初始状态设置函数:
[0121]
动力学配置文件及初始utc时和轨道六根数设置(5,2020,6,3,11,0,0,42186.112,0.002,0.001,250.66358,346.71103,349.94902);注释:动力学配置文件及初始utc时和轨道六根数设置(),为初始状态设置库的库函数,功能为设置动力学配置文件和初始时间、轨道参数;
[0122]
轮子加电状态设置(1,1,1,1);注释:轮子加电状态设置(),为初始状态设置库的库函数,此处设置4个轮子均加电,可通过程控进入正常模式;
[0123]
正常模式部件缺省加电设置();注释:正常模式部件缺省加电设置(),为初始状态设置库的库函数,设置各敏感器、执行结构主份加电;
[0124]
(3)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤时间驱动:
[0125]
延时(100);注释:延时(),为步骤驱动库的库函数,此处为延时100秒;
[0126]
(4)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤1:
[0127]
发送指令转入地球指向模式();注释:发送指令转入地球指向模式(),为遥控指令库的库函数,此处为发送指令转入地球指向模式,地球指向模式下使用地敏作为姿态测量敏感器;
[0128]
(5)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤1的自动判读:
[0129]
延时(2);注释:延时2秒,考虑遥测下传需要时间;
[0130]
遥测量检查(模式字,6);注释:遥测量检查(),为判读规则库的库函数,此处对应步骤1,应检查模式字是否为6(地球指向模式);
[0131]
延时(100);注释:延时100秒,等待转模式后姿态控制稳定;
[0132]
启动滚动角姿态控制精度检查();注释:启动滚动角姿态控制精度检查(),为判读规则库的库函数,此处开始统计滚动角;
[0133]
启动俯仰角姿态控制精度检查();注释:启动俯仰角姿态控制精度检查(),为判读规则库的库函数,此处开始统计俯仰角;
[0134]
(6)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤2:
[0135]
持续设置地敏输入姿态(0,10,0.3);注释:持续设置地敏输入姿态(),为故障设置库的库函数,前两个变量为设置地敏输入的滚动角和俯仰角的值,第3个变量为此设置维持的时间,时间到后取消此设置;
[0136]
(7)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤2的判读:
[0137]
遥测量数值范围持续判读(地敏滚动角,1,20);注释:遥测量数值范围持续判读(),为判读规则库的库函数,第一个变量是要判读的遥测量,第两个变量是门限值,第三个变量是判读启动后持续判读的时长,单位是秒。
[0138]
遥测量数值范围持续判读(地敏俯仰角,1,20);注释:含义为启动判读后20秒内地敏滚动角、地敏俯仰角是否小于1度。
[0139]
(8)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤3:
[0140]
延时(100);注释:100秒后进行步骤3测试
[0141]
持续设置地敏输入姿态(0,10,0.6);注释:前两个变量为设置的地敏滚动角和俯仰角的值,第3个变量为此设置维持的时间,时间到后取消此设置;
[0142]
(9)按照航天器姿轨控软件自动测试脚本编写流程框架,进行测试步骤3的判读:
[0143]
遥测量数值范围持续判读(星上滚动角,1,20);
[0144]
遥测量数值范围持续判读(星上俯仰角,1,20);
[0145]
遥测量数值范围持续判读(地敏滚动角,1,20);注释:第一个变量是要判读的遥测量,第两个变量是门限值,第三个变量是判读启动后持续判读的时长,单位是秒。
[0146]
thetaes=遥测量最大值统计(地敏俯仰角,20);注释:遥测量最大值统计(),为判读规则库的库函数,含义为地敏俯仰角在20秒内的最大值。
[0147]
延时(20);
[0148]
表达式判读(thetaes>9.8and thetaes<10.2);注释:表达式判读(),为判读规则库的库函数;
[0149]
(10)按照航天器姿轨控软件自动测试脚本编写流程框架,测试步骤结束后,可进行通用判读:
[0150]
运行状态正常检查();注释:运行状态正常检查(),为判读规则库的库函数;
[0151]
星地轨道外推一致检查();注释:星地轨道外推一致检查(),为判读规则库的库函数;
[0152]
滚动角姿态控制精度检查(0.05,0.5);注释:滚动角姿态控制精度检查(),为判读规则库的库函数;第一个变量为统计时段内星上滚动角均值的门限,第二个变量为统计时段内星上滚动角方差的门限。
[0153]
俯仰角姿态控制精度检查(0.05,0.5);注释:控制精度判读的统计数据是从调用“启动俯仰角姿态控制精度检查()”时开始统计的。
[0154]
(11)按照航天器姿轨控软件自动测试脚本编写流程框架,选择星上滚动角、星上俯仰角、地敏滚动角、地敏俯仰角进行画图,结束测试。
[0155]
自动化测试平台中,通过python实现了测试用例步骤的脚本化、测试用例批量执行,提升了测试效率。同时通过python建立数据判读规则,对离散量遥测数据进行正常状态判读、异常状态判读、条件判读、逻辑运算判读等,对连续量遥测数据进行门限判读、变化趋势判读、统计判读,并针对姿轨控软件特点,进行通用的姿态控制精度判读、星地姿态数据一致判读、星地轨道数据一致判读。通过python编辑规则库,实现方便,强大的判读规则和多重判读规则调用,大大提升了测试质量。
[0156]
本技术提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。
[0157]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
[0158]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0159]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0160]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0161]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
[0162]
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1