一种利用C++test执行SCADE测试对象的方法

文档序号:6338065阅读:347来源:国知局

专利名称::一种利用C++test执行SCADE测试对象的方法
技术领域
:本发明涉及核电站控制领域,具体涉及一种利用C++test在Worlibench中实现SCADE仿真测试的方法。
背景技术
:目前核电站的应用上,常常需要根据不同的客户要求,安装或增加一些新的设备,这些设备需要使用相应的软件,此类软件都是在相应的工程软件环境下编写的,软件完成后需要首先进行测试,以验证是否能够驱动相应设备或是否达到驱动要求,但此类实际运行环境比较难以实现,因此就采用仿真的方法来验证和测试软件的正确性。SCADESafety-CriticalApplicationDevelopmentEnvironment它是一个高安全性的应用开发环境,功能包括嵌入式软件开发中从需求到嵌入式代码的整个流程需求建模、模型检查、模拟仿真、形式验证、嵌入式代码自动生成以及文档自动生成等等。但是在核电行业没有一个很好的工具直接对SCADE生成的工程使用自己编写的编码规范进行静态分析和开展自动化单元测试,大限制了SCADE的应用范围,也制约了核电站的发展。
发明内容为解决SCADE在核电站应用上的局限和仿真处理时的功能限制问题,本发明提出一种利用Worlibench、C++test的组合来运行SCADE的测试对象,从而在核电领域实现SCADE多功能扩展的技术方案,具体方案如下一种利用C++test执行SCADE测试对象的方法,步骤1、利用SCADE生成测试对象,其特征在于,包括如下步骤步骤2、在Workbench环境下安装C++Test;步骤3、在C++Test中配置测试对象的运行环境;步骤4、将测试对象调入C++Test中执行编译脚本并生成测试用例;步骤5、对测试用例进行插桩操作并生成测试中间文件;步骤6、将测试中间文件调入Worlibench里的仿真程序中运行;步骤7、得到C++Test操控下的测试结果。本发明的另一优选方案所述步骤4包括利用C++Test对测试对象进行静态分析的步骤。本方案以Worlibench为运行基础,插装C++test来处理SCADE的测试对象,从而使Workbench的仿真程序受C++test的控制,实现了利用自己定制的编码规范对SCADE的工程进行静态分析,同时对工程能够进行动态的跟踪调试和生成覆盖率统计数据,达到了验证SCADE的工程的目的,使SCADE的工程完美的应用在核电领域。图1本发明的执行步骤示意框图。具体实施例方式在计算机中安装SCADE、Workbench和C++test三个软件模块,其中SCADE做为工程方使用的测试对象生成软件,用于生成用户需要的各种操作程序,这些操作程序在未进行测试前统称为测试对象。C++test做为Worlibench的一个插件安装在Worlibench中,Workbench就构成对测试对象进行测试的运行环境。C++test作为一个以Worlibench运行环境为基础的C++test执行程序,用来对调入Worlibench运行环境中的以SCADE编写的测试对象进行编译、插桩和运行,同时对WoriAench运行环境中的仿真软件的仿真过程进行监控和输出仿真结果。如图1所示,本方案的工作过程如下101、利用SCADE生成测试对象;利用安装在计算机内的SCADE生成用户需要的操作程序做为测试对象。102、在Workbench环境下安装C++Test;在计算机上安位Worlibench,在Worlibench中插装C++test测试软件。103、在C++Test中配置测试对象的运行环境;由于要使用C++Test执行测试对象,因此在Worlcbench运行模块中搭建一个运行SCADE的工作环境。104、将测试对象调入C++Test中执行编译脚本并生成测试用例;在配置好的环境中,将测试对象调入C++Test中并执行以生成测试用例,且在此过程中对测试对象进行静态分析。在生成测试用例的过程中,还需要与SCADE进行交互,以读取测试用例需要的SCADE环境配置数据。105、对测试用例进行插桩操作并生成测试中间文件;利用C++test对生成的测试用例进行插桩,即设置测试点,对插桩后的测试用例进行编译生成测试中间文件。106、将测试中间文件调入Worlibench里的仿真程序中运行;Worlibench将C++Test生成的测试中间文件调入Windiss仿真程序中运行,仿真程序在仿真过程中导入Worlibench的kernelproject操作系统用来作为测试中间文件的执行系统,同时与SCADE进行交互,最终生成测试结果。107、得到C++Test操控下的测试结果;在windiss仿真程序的运行过程中,利用C++test执行模块显示和跟踪仿真程序的运行过程,随时输出需要的仿真数据。其中C++test在对测试对象进行操作时,需要编写自定义的测试流程脚本,编写环境配置和脚本示例如下由于SCADE生成的算法应用于操作系统下,要测试该工程,故要有4个过程来完成这个动作,即编译过程,加载过程,和执行过程及覆盖率结果上传过程,本方案将主述四个过程合并为两个过程,即BuildVxfforksTestModule-DKM(PassFS)过程和LoadandRunVxfforksTestObject(DKM)过程,后一个过程包含了覆盖率结果上传过程。配置kadeProject_BuildVxfforksTestModule-DKM(PassFS)的脚本如下<TestExecutionModeHint>UnitTesting</TestExecutionModeHint><RunnableExecution>...</RunnableExecution>......<RunnableExecution><SetPropertykey=“stub_config_fiIe"value="${cpptest:testware_loc}/stubconfig.xml"/><SetPropertykey=“stub_config_header_fi1e"value="${cpptest:testware_loc}/cpptest_stubconfig.h"/><TestCaseFindingSteptestSuiteConfigFile="${cpptest:testware_loc}/testsuites.xml"alIowNoTestCasesRun="true"/>......</FinalizeExecution></FlowRecipeTemplate>加载过程和执行过程及覆盖率结果上传过程脚本ScadeProject_LoadandRunVxfforksTestObject(DKM)-WithoutunloadScript的脚本如下......<—确定新建的object名字等于vxsimO〉value=“vxsimO“uiEditable=“true“dispIayName=“Targetconnection(TargetServer)name"/>。权利要求1.一种利用C++test执行SCADE测试对象的方法,步骤1、利用SCADE生成测试对象,其特征在于,包括如下步骤步骤2、在Workbench环境下安装C++Test;步骤3、在C++Test中配置测试对象的运行环境;步骤4、将测试对象调入C++Test中执行编译脚本并生成测试用例;步骤5、对测试用例进行插桩操作并生成测试中间文件;步骤6、将测试中间文件调入WoriAench里的仿真程序中运行;步骤7、得到C++Test操控下的测试结果。2.如权利要求1所述的方法,其特征在于,所述步骤4包括利用C++Test对测试对象进行静态分析的步骤。全文摘要本发明涉及一种利用C++test执行SCADE测试对象的方法,涉及核电站控制领域,包括生成测试对象,在Workbench环境下安装C++Test并配置测试对象的运行环境,将测试对象调入C++Test中执行编译脚本并生成测试用例,对测试用例进行插桩操作并生成测试中间文件,将测试中间文件调入Workbench里的仿真程序中运行,得到C++Test操控下的测试结果。本方案以Workbench为运行基础,插装C++test来处理SCADE的测试对象,实现了利用自己定制的编码规范对SCADE的工程进行静态分析,同时对工程能够进行动态的跟踪调试和生成覆盖率统计数据,达到了验证SCADE的工程的目的。文档编号G06F11/36GK102567187SQ201010579999公开日2012年7月11日申请日期2010年12月7日优先权日2010年12月7日发明者亓兴华,刘军利,孟广国,张宓申请人:中国广东核电集团有限公司,北京广利核系统工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1