书书书 第31卷 第2期航 空 学 报Vol.31No.2 2010年 2月ACTAAERONAUTICAETASTRONAUTICASINICAFeb. 2010收稿日期:20081224;修订日期:20090428基金项目:国家“973”计划(G2005CB321902);中国博士后科学基金(20080440299);软件开发环境国家重点实验探索性自主研究课题(SKLSDE2009ZX13)通讯作者:余丹Email:yudan@buaa.edu.cn 文章编号:10006893(2010)02029011航天器自动化测试语言研究余丹,马世龙,李先军,孙波,叶钢(北京航空航天大学软件开发环境国家重点实验室,北京 100191)犃犛狌狉狏犲狔狅犳犜犲狊狋犔犪狀犵狌犪犵犲狊犳狅狉犛狆犪犮犲犮狉犪犳狋犃狌狋狅犿犪狋犻犮犜犲狊狋YuDan,MaShilong,LiXianjun,SunBo,YeGang(StateKeyLaboratoryofSoftwareDevelopmentEnvironment,BeijingUniversityofAeronauticsandAstronautics,Beijing 100191,China)摘 要:航天器测试语言是支撑航天器自动化测试的形式体系及航天器测试过程标准,在当前多航天器批产网络化测试的新需求下,测试语言标准体系研究对于提高航天器测试自动化水平和保障测试过程安全具有重要意义。通过对现有典型航天器测试语言的全面分析和比较,总结出基本特征,并结合当前先进的网络计算技术,提出了我国航天器测试语言发展的目标和方向,同时针对国内航天器测试语言研究设计工作的不足,给出一种航天器测试语言CATOL(ChinaAerospaceTestandOperationLanguage)。该研究对提高我国航天器测试业务规范水平和测试人员的工作效率、促进航天器测试自动化研究的发展将起到一定的推动作用。关键词:航天器;自动化测试;航天器测试语言;标准体系;测试安全中图分类号:V555+.2;TP20 文献标识码:A犃犫狊狋狉犪犮狋:Spacecrafttestlanguageisaformalsystemfordescribingspacecraftautomatictestingandasetofstandardsforspacecrafttestingworkmodes.Forthenewrequirementsofmultispacecraftbatchnetworktesting,astudyofthetestlanguagestandardsystemisimportanttoimprovespacecraftautomatictestingandguaranteethesecurityoftestingprocesses.Thisarticlesurveyedandcomparedcurrentspacecrafttestlanguagescomprehensively,summarizedtheirbasiccharacteristics,andproposedtheobjectivesanddirectionsofthedevelopmentofatestlanguageforChinawhichisassociatedwithnetworkcomputingtechnology.TocompensateforthelackofthedomesticspacecrafttestlanguageresearchesandexplorethedesignofaspacecrafttestlanguageappropriateforChina,aspacecrafttestlanguageCATOL(ChinaAerospaceTestandOperationLanguage)isprovided.ThisresearchwillimprovethespecificationofspacecrafttestingworkinChinaandtheefficiencyofspacecrafttesters,andpromotethedevelopmentinspacecraftautomatictesting.犓犲狔狑狅狉犱狊:spacecraft;automatictesting;spacecrafttestlanguage;standardsystem;testsecurity “十一五”期间,我国对新型航天器研制在性能、数量和生产方式上提出了更高要求,因此需要在航天领域不断加快信息化建设步伐。航天器生产包括制造和测试两个阶段,测试阶段对于保证航天器质量起着关键作用。建设面向航天器自动化测试的测试信息化系统,对于推动高质量航天器研制起到积极作用。航天器测试信息化系统是指将先进的信息技术、航天器测试技术、计算机技术、网络技术、自动控制技术以及通讯技术等有效地综合运用于整个航天器测试而建立起来的一种实时、准确、高效和安全的航天器综合测试系统。它以规范的航天器测试语言为标准,在现有测试资源和方法的基础上,实现航天器测试执行阶段的自动化,支持航天器测试计划编写和测试结果评估,提高测试过程的可靠性和安全性。航天器测试语言是关于各种测试标准描述的形式体系。测试人员通过测试语言编写的程序(测试计划)组织测试流程、描述和访问测试资源;同时用航天器测试语言编写的测试程序精确描述出航天器测试的需求,通过测试信息化系统运行测试程序就可以实现测试过程的自动化,完成航天器的测试任务。因此,积极开展航天器测试语言的定义和实现研究已经成为一个基础性问题和重要研究内容。在国外,由于航天工程起步较早,航天器测试 第2期余丹等:航天器自动化测试语言研究 语言已经经历了较长的发展历程。在国外卫星测试中,美国国家航空航天局(NationalAeronauticsandSpaceAdministration,NASA)使用的是GOAL(GroundOperationsAerospaceLanguages)[1],而欧洲宇航局(EuropeanSpaceAgency,ESA)采用的是ETOL(EuropeanTestandOperationsLanguage)[2],以及后来使用的TCL/TK(ToolCommandLanguage&ToolKit)[3]。在商业语言方面,美国著名的IntegralSystems(ISYS)公司1992年发布了STOL(SatelliteTestandOperationsLanguage)语言[4],用以配置和控制地面系统的组件。而在标准化测试语言的制定上,国际标准化组织IEEE发布了ATLAS(AbbreviatedTestLanguageforAllSystem)语言及其升级版本ATLAS2000标准[5]。这些语言都是在测试语言发展过程中出现的有代表性的语言,在航天器测试语言的发展历程中占有重要的地位。在国内,目前面向航天器测试的语言研究还处于起步阶段,除了少数对国外测试语言进行某些改进与扩展的研究[68],还没有适合国内航天器测试的语言。本文将综述和分析目前面向航天器测试领域的测试语言,总结国外航天器测试语言的特点,并结合当前先进网络计算技术,给出中国航天器测试语言发展的目标及方向,对国内航天器测试语言标准体系的形成以期起到抛砖引玉的作用。1 航天器测试语言分类航天器测试语言可分为以下三类:面向测试人员的语言、面向测试过程的语言和面向信号的测试语言。下面将逐一介绍这些语言的特点,并对其代表性的语言进行说明。11 面向测试人员的语言此类语言的特点是以用户为中心,与目标机器独立,以测试人员容易理解的术语提供必要的操作符,容易被不熟悉编程技术的测试人员学习和理解。这其中最具代表的语言就是GOAL。GOAL是1973年3月肯尼迪空间中心(KennedySpaceCenter,KSC)[9]的软件工程师设计出的针对测试和地面宇航操作的标准语言。在GOAL语言出现以前,NASA[10]使用的地面支持系统测试语言是ATOLL(AcceptanceTestorLaunchLanguage)[11]。但是ATOLL缺乏既能描述测试需求,又适合测试人员开发测试程序的能力,必须经过专门的培训,测试工程师才能理解ATOLL。在开发阿波罗(Apollo)系统的时候,发射能力的高要求对测试语言提出了新的要求,所以KSC花费大量精力设计开发出GOAL。GOAL语言属于高阶语言,吸收了ATLAS和其他几种高阶语言的特征。GOAL面向测试人员,是设计用于航天器发射环境中地面测试操作的测试编程语言,主要用于航天器系统及其子系统的升空前测试和地面控制测试,同时也支持手工和自动测试模型[12]。GOAL语言主要由程序和数据集这两个基本成分组成,另外还包括子程序、宏和nonGOAL语言部分,其中第1层概念是程序和数据集;第2层概念是子程序、宏和nonGOAL部分[1314]。程序部分包括声明语句和过程语句,这些语句都像英语中的简单命令语句,因此利用该语言编制的测试程序可读性高,容易维护,而且程序本身自成文档。声明语句包含了数据声明、表和列表的声明语句。声明语句在GOAL程序的开始部分,不能被执行,只在编译的时候使用。过程语句是测试实际执行的部分。进一步分为外在行为语句和内在行为语句。外在行为语句是那些包含动词APPLY、READ、ISSUE、TURNON、OPEN和REQUESTKEYBOARD等的语句。内在行为语句主要是更多的面向程序员的语句,例如程序控制、定时和排序。这种类型的语句是那些包含动词GOTO、DELAY、LETEQUAL和ASSIGN等的语句。一般而言,GOAL过程语句的结构像一条简单的英语祈使句。最简单的GOAL语句是一个动词;但是大多数GOAL语句包含了接收这个动词的对象。可选的短语或前缀可以用来改变这个动作,也就是可以规定什么时间、多长时间和多快的频率执行这个动作。数据集是独立于程序部分的一个软件实体,它包含了数据声明、子程序、测试设备和被测单元的描述,包括测试接点连接等信息。数据集就像中间文件一样将测试系统和测试过程联系起来。数据集体现了语言与设备无关的特性。数据集包含了一组SPECIFY语句,它定义了实际的测试设备命令。数据集在GOAL程序编译时被使用,但不需要用在在线测试中。GOAL允许编译时使用一个或多个数据集,但是仅当测试程序需要访问外部测试点或系统子过程时才需要。除了程序和数据集,GOAL还有子程序、宏和192 航 空 学 报第31卷nonGOAL的概念。子程序是一个可以执行某个具体任务的独立语句集合,可以被定义在程序或数据集中,其组织和程序相同。宏是简化测试人员使用那些需要重复编写的测试单元的一种方法,可以包含在程序、数据集或是子程序中,但必须在它使用之前定义。而nonGOAL提供了GOAL语句没有提供的能力,比如复杂的数学公式。从上述GOAL语言的结构介绍中可以看出,GOAL语句可以分为三类:声明语句、过程语句和系统语句。其中系统语句包括边界语句、系统指示语句和辅助语句,例如BEGIN、SPECIFY和COMMENT等,主要用做语言处理器(编辑/解释)的提示符。GOAL语言被开发出来之后,NASA将GOAL大规模地用在了航天器测试中,并从可理解性、可读性、易编写性、可维护性和可应用性的程度上对GOAL进行评估,各个方面GOAL的表现都很出色。同时评估也表明从没接触过GOAL的测试工程师可在几分钟到几个小时内就能读懂由GOAL编写的测试程序,在一个星期之内就能使用GOAL来进行测试程序的编程。12 面向测试过程的语言面向测试过程的语言主要特点是以测试流程为中心,开发基于其测试功能的系统基础软件和测试应用软件,其中最具代表性的语言是ETOL、TCL/TK和STOL。(1)ETOLETOL是ESA[15]通过