- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
飞行控制软件单元测试方法研究.doc
飞行控制软件单元测试方法研究
摘 要:结合飞行控制软件特点,介绍使用自动生成测试用例的软件测试工具Cantata6.2快速完成飞行控制软件单元测试的方法。结合实践经验,提出使用Cantata6.2进行飞行控制软件单元测试的策略,以及对开发编码的要求。
关键词:飞行控制软件;单元测试;动态测试
中图分类号:TP301
文献标识码:A 文章编号:1672-7800(2015)005-0029-03
作者简介:刘思思(1985-),女,陕西商洛人,硕士,上海机电工程研究所工程师,研究方向为飞行控制软件开发、系统集成与验证;刘迪(1985-),男,黑龙江哈尔滨人,硕士,上海机电工程研究所工程师,研究方向为制导控制系统设计与仿真。
0 引言
在飞行控制软件(简称飞控软件)开发过程中,单元测试环节必不可少。其中,静态度量指标可以用专门的工具很方便得出其具体数值,而动态测试虽然也有专门的工具,但编写测试用例需要花费大量时间和精力。当前,航天多型号开发任务重,迫切需要应用自动化的测试工具软件来提高动态测试的工作效率。
本文结合飞控软件的特点,论述通过自动生成测试用例的工具软件Cantata6.2进行单元动态测试的方法。
1 飞行控制软件特点
飞控软件的主要功能是完成相关设备之间的实时信息交互与控制解算,从而实现飞行过程中姿态和位置的控制。飞控软件主要分为应用层软件、接口协议层软件和底层驱动软件3个部分,软件架构如图1所示。
应用层软件由实现姿态和位置控制的各功能模块组成;接口协议层软件主要为飞行控制设备与其它设备之间通信的协议模块;底层驱动软件主要由飞行控制设备的接口驱动模块以及硬件输入输出模块组成。
飞控软件嵌入在飞控设备中,具有实时性高、时序和逻辑复杂、可靠性高的特点。首先,要确保底层驱动软件和接口协议软件的正确性,使得各类信号得以正确传输;其次,要确保软件与控制算法模型的一致性,输入输出及解算正确;最后,要确保软件时序和逻辑的正确性。只有这样才能保证飞行控制系统正常工作。
2 飞行控制软件单元测试的意义
对飞控软件的最小组成单位――函数进行测试的目的在于检验其能否正确地实现其功能,满足性能指标和接口要求。通过语句(SC)、条件(DC)、修正条件判断(MC/DC)等覆盖率指标评价程序结构,及早发现软件代码中的编码和逻辑错误。
对于飞控软件来说,被测函数已经完成了编码和调试,能够通过编译和链接进行单元测试。此外,不考虑每个模块与其它模块之间的关系,为每个模块设计驱动模块和桩模块,每个模块进行独立的单元测试,各模块的单元测试可以并行进行,能够提高测试效率,也较容易实现100%的覆盖率指标要求[1]。
3 Cantata6.2测试工具
3.1 Cantata6.2简介
Cantata6.2采用先进的代码分析器和AutoTest技术,智能分析被测代码,扫描代码的所有可能路径,根据选定的覆盖率标准,自动生成满足100%覆盖率的测试用例。对全局变量、返回值自动赋期望值,并包含对全局变量、返回值、调用函数参数传递等进行检查。对形参为复杂类型,如结构体指针的情况,能自动生成相应的测试对象,即构造一个结构体数组,将结构体数组的地址赋给形参。自动生成桩函数,在测试工程中替代真实的外部函数。使用Cantata6.2进行单元测试的原理如图2所示。
用户可以使用Cantata6.2工具AutoTest选择相应的覆盖率规则集,通常航天A级软件要满足修正条件判断(MC/DC)覆盖率100%,B级软件要满足分支判断(DC)覆盖率指标100%,C级软件要满足语句(SC)覆盖率指标100%。飞控软件通常均为A级软件,选择DO-178B/ED-12B Level A Coverage规则,自动生成满足SC、DC、MC/DC3个覆盖率指标要求的测试脚本文件。
3.2 含有桩函数的测试实例
本文以飞控软件的指令形成函数模块为例,检验Cantata6.2的动态测试功能。该函数模块的主要功能是形成稳定控制系统姿态控制等的指令信号。代码框架如下:
void Instruction (C_INSTRCUTION *C_)
{
……; //定义局部变量
if(C_-fInTT t1)
{
……; //控制解算
}
else
{
……; //控制解算
Function1(C_);
……;
if(C_- fInTT t2) //注①
{
……;
}
else
{
……;
}
……;
}
}
利用Cantata6.2进
文档评论(0)