用于创建和测试控制器程序的方法和装置制造方法
【专利摘要】本发明涉及用于创建和测试控制器程序的开发装置和方法。该方法包括提供用于操作运行环境的量值的接入点,运行环境用于在测试环境中用测试场景程序组件和观察器设备来测试待测试的控制器程序组件,测试场景程序组件用于提供输入值,观察器设备用于接收输出值和显示测试结果。在此,由包括待测试的控制器程序组件和测试场景程序组件的一个或多个程序组件来创建所有程序组件的可执行程序,其中程序组件的接口分别根据AUTOSAR标准定义。在此,所述创建包括生成运行环境,其中运行环境提供用于在程序组件之间传输输入值和输出值的通信通道,并且提供组件-测试服务,其根据AUTOSAR标准向运行环境提供接口作为用于操作所述运行环境的量值的接入点。
【专利说明】用于创建和测试控制器程序的方法和装置
【技术领域】
[0001]本发明涉及一种用于创建和测试控制器程序的开发装置以及方法。在此,控制器程序构造用于控制交通工具中的电子控制单元。相应的方法包括提供用于操作运行环境的量值的接入点,所述运行环境用于在测试环境中借助测试场景程序组件和观察器装置来测试待测试的控制器程序组件,其中所述测试场景程序组件用于提供输入值,并且所述观察器装置用于接收输出值和显示测试结果。在此使用一个或多个程序组件,包括待测试的控制器程序组件和测试场景程序组件,所述程序组件的接口分别根据AUTOSAR(汽车开放系统架构,Automotive Open System Architecture)标准定义。定义在所有程序组件的输入值和输出值之间的连接,并且创建所有程序组件的可执行程序。在此,所述创建包括生成运行环境,其中,所述运行环境提供用于在程序组件之间传输输入值和输出值的通信通道。
[0002]在本发明的范围内,术语开发装置能够理解为指一种装置,用户(也就是例如开发装置的使用者)能够借助于该装置开发、建模和创建控制器程序。然后,所创建的控制器程序能够用于模拟和/或用于测试。在本发明的范围内,术语控制器程序能够理解为指用于控制交通工具中的电子控制单元的测量程序、控制程序、调节程序和/或校准程序。术语控制器程序既能够包括具有不同功能的各个程序组件,也能够包括具有多个相互连接的程序组件的复杂的程序架构。在本发明的范围内,术语电子控制单元能够理解为指一种控制系统,例如机动车中的控制器。在此,电子控制单元例如能够用于测量、控制、调节和/或校准交通工具组件。术语交通工具在下文中用作对水运交通工具、路运交通工具、空中交通工具和/或上述交通工具的组合的统称。
【背景技术】
[0003]从现有技术中原则上已知用于创建和测试开头所述类型的控制器程序的开发装置以及方法。其通常被用户用作用于创建、开发、测试、模拟和/或校准控制器程序的开发工具,所述控制器程序是例如用于真实控制器的或者虚拟电子控制单元(V-ECU=VirtualElectronic Control Unit)的和 / 或虚拟处理单兀(VPU:Virtual Processing Unit)的控制器程序。
[0004]V-ECU是虚拟控制器,也就是,不直接与硬件相关的控制器程序,但是该控制器程序反映硬件的所有特定的特性。V-ECU集成在模拟器中,以便模拟真实控制器的行为。V-ECU能够在离线模拟或实时模拟的范围内应用。V-ECU使用模拟器母板的接口,以便与其它控制器、路径模型或10驱动器通信。在用户的认知中,V-E⑶常常代表其整个E⑶,包括所有驱动模块。但是在技术意义上,V-E⑶仅包括在母板接口之上的程序部分,这是因为位于下级的程序层由具体的模拟器的母板模块代替。在运行时间内,V-ECU借助于VPU集成代码嵌入框架(VPU)中,以便从中获得可执行的模拟进程。在本申请的范围内,这样的可执行的模拟进程被描述为可执行程序。所述可执行程序能够由一个或多个控制器程序组件和/或测试场景程序组件组合而成。这些程序组件自身能够实现一个或多个不同的功能。与集成的程序组件的数量无关地产生一个唯一的运行环境。这允许测试在现有的程序架构中的控制器程序组件。为此,给定的架构必须仅扩展测试组件并且配置和重新生成运行环境。
[0005]VPU是模拟器内的虚拟执行单元,在该虚拟执行单元上执行待模拟的应用。VPU具有自身的被分配的虚拟计算资源(核)、虚拟内存(RAM)、以及虚拟计时器。所述资源与其它VPU无关,从而各VPU准并行模拟。同样地,VPU具有独立的一组OS资源(任务、计数器、警报、事件、临界区……)。IO驱动器的使用以及与其它VPU的通信经由母板服务实现。在实时系统中,VPU大多数以自身的物理代码执行。在离线模拟时,VPU向核的分配通过所基于的模拟环境的操作系统(例如Windows)动态地实现。
[0006]开始所述类型的示例性开发装置能够从对SyStemDeSk3.1的产品描述中知悉:(http://www.dspace.de/de/gmb/home/products/sw/system_architecture_software/systemd.esk.cfm)。SystemDesk是用于辅助开发分布式电子系统的工具。SystemDesk尤其构造用于创建能够使用在所谓的AUTOSAR(汽车开放系统架构,Automotive Open SystemArchitekture)标准的范围内的控制器程序。
[0007]目前已知的开发装置通常为用户提供用于开发装置的操作界面,借助于所述操作界面能够以图形的方式、例如以具有多个程序组件的树结构的形式描述控制器程序的模块或架构。随着目前的控制器程序及其模块或架构的复杂性的增加,可应用的、用于创建这类控制器程序的开发装置的复杂性也增大。因此,在复杂的程序结构的范围内,各个程序组件的早期测试成为现代程序开发的重要组成部分,以便能够在开发过程中较早的时间点识别出在稍后的流程中可能的错误源。在2008年的SAE Technical Paper2008-01-0383中、作者为 Sandmann, G.和 Thompson, R.、题目为 “Development of AUTOSAR SoftwareComponent s within Model-Based Design”的文献中提出一种用于基于模型的设计的方法,其不将测试步骤和验证步骤视作最终的进程,而是视作持续地伴随的活动。除了如由设计或测试工程师开发的测试场景,该方法还提供用于自动生成测试用例的装置,如例如对于在D0-178B标准中的MC/DC (修正条件/判定覆盖,Modified condition/decisioncoverage)而言为A级软件规定的装置。
[0008]然而,除了应用特定的测试场景,各个应用必须对其在待处理的数据的进程链中可能发生的错误(例如从一个电子监控单元到另一电子监控单元的内部信号传递的延迟或失效)方面的正确的功能性进行测试。至今为止的基于AUTOSAR标准的测试环境的实现允许多个相互作用的电子控制单元的复合测试,所述测试环境包括经由运行环境与测试场景程序组件连接的应用程序组件,所述复合测试,如在“Testautomatisierungfiir Steuergerate -Programme mit AUTOSAR Architektur”(http://www.fkfs.de/fileadmin/media/04_unternehmen/veranstaltungen/autotest/pdf_dokumente/paper_2008/paper_l l_SYSTECS_Zurawka.pdf)中所描述的那样,每一个本身都被视作黑盒子,并且控制单元的所有输入信号和输出信号在全局数据池中提供用于操作。因此即使结合不同的开发状态下的早期测试也已经是可能的。原有的自动生成的AUTOSAR运行环境通过测试系统的机制复制。
[0009]在2Oll 年 I 月出版的文献“Messina2.9von Berner&Mattner:Neues Releaseverbessert AUTOSAR-Unterstuetzung fuer modellbasiertes Testen”中描述了另一测试系统。在此,MESSINA程序为复合测试的每个集成的程序组件创建自身的基于AUT0SAR-XML文档的测试运行环境。对各个测试运行环境的通信进行模拟,其方式为:虚拟功能总线构成运行环境接口(如发送/接收端口或客户/服务器端口)的通信。因此允许模仿或检查客户/服务器操作。因此,相应的测试运行环境用于将各个程序组件与Messina平台连接。
【发明内容】
[0010]因此本发明的目的是,提供用于创建和测试控制器程序组件的一种改良的开发装置以及一种有效的方法,所述开发装置或方法允许根据AUTOSAR标准测试控制器程序组件对接入到不同的程序组件之间的通信进程中的反应。
[0011]所述目的通过开始所述类型的方法得以实现,其中:
[0012]提供组件-测试服务,所述组件-测试服务根据AUTOSAR标准为运行环境提供接口作为用于操作运行环境的量值的接入点,并且借助于相应地生成用于运行环境的代码而允许测试场景程序组件对运行环境的量值进行访问,其中,所述量值确定或描述或影响经由通信通道运行的进程。
[0013]本发明基于的认识是,随着目前的控制器程序的复杂性的增加,灵活地测试在开发的不同阶段中的参与复合测试的不同程序组件是必要的。在此,除了由各个程序组件实现的目的,还必须测试这些组件对在程序组件相互间通信时发生的错误(例如有错的信号传递)的反应。对于测试目的而言同样有利的是,在测试期间能够操作各个程序内部的量值,而不必每次都模拟或相应地配置控制器程序组件。参与测试的程序组件的通信经由一个共用的运行环境进行。在此基于集成的程序组件和用于测试在通信内部特定的错误状态或特定的预设事件的运行环境,要避免随后向生成的可执行程序中的接入,这是因为所基于的测试场景程序组件不包含必需的信息,以借助新生成的可执行程序复制在稍后的阶段中的错误状态。另一方面,每个程序组件分别生成一个自身的运行环境,以便在程序组件之间注入通信错误,这导致测试环境的不必要的复杂性。
[0014]本发明的一个重要的优点在于,在组件测试或组件复合测试的范围内能够从外部影响运行环境的行为。因此,测试场景程序组件能够在不进一步适配的情况下多次重复应用。
[0015]在本发明的范围内,运行环境的组件-测试服务能够理解为根据AUTOSAR标准对作为用于操作运行环境的量值的接入点的运行环境的端口和接口的描述。所述描述例如通过组件-测试服务与例如测试场景程序组件的连接而被模拟器进程已知。因此,在自动创建可执行程序时,根据定义的接入点创建用于运行环境的相应的接入接口。然后,测试场景程序组件的接口能够根据本发明与运行环境的接入接口(也就是接入点)连接,并且从而对在程序组件或各个程序组件的内部量值之间的通信产生影响。
[0016]因此,本发明的另一优点是,借助生成可执行程序(其包括生成运行环境),除了通常产生的程序变量描述以外,现在也描述运行环境变量,以至于运行环境变量能够借助于实验工具和自动化测试工具直接调节。
[0017]根据本发明的方法的一个优选的实施形式,所述方法能够进一步设计为,提供观察器设备包括:提供观察器程序组件,其接口分别根据AUTOSAR标准定义。
[0018]根据本发明的方法的一个优选的实施形式,运行环境的量值通过运行环境的参数、变量或功能给定。
[0019]经由运行环境相互通信的程序组件必须调用所谓的“应用程序接口”(API)功能,所述API功能是用于应用程序的基本功能。因此,用于经由运行环境传输数据项的每个测试场景程序组件必须包含运行时间读调用以及运行时间写调用。
[0020]根据本发明的一个优选的实施形式,所述方法能够进一步设计为,运行环境的量值是状态参数,所述状态参数描述经由运行时间读调用或运行时间写调用传输的数据项的状态,其中,所述状态描述数据项的有效性或可信度或错误类型。因此,通过对参数直接进行访问,能够设定所期望的状态,并且从而注入定义的错误,并且测试控制器程序组件对所述错误的反应。
[0021]根据本发明的方法的另一优选的实施形式,所述方法能够进一步设计为,运行环境的量值此外是运行环境-事件参数。所述参数允许触发如在AUTOSAR标准中定义的运行环境-事件。因此能够通过触发“DataReceivedErrorEvent”而例如触发对发送的程序组件的错误讯息。如从AUTOSAR标准的描述中能够得知,以规律的间隔触发事件“DataWriteCompleteEvent” 或 “Background/TimingEvent”。通过对事件参数直接进行访问能够目的明确地触发所述事件中的每一个。
[0022]根据本发明的方法的另一优选的实施形式,所述访问包括操作运行环境的量值,所述运行环境由同一程序组件的一个功能或不同功能或由不同的程序组件使用。除了将数据项从一个程序组件传输到另一程序组件,同一程序组件的不同功能也能够经由运行环境更换数据项。因此,通过根据本发明的对运行环境的量值进行访问也能够对程序组件的不同功能产生影响。
[0023]为了例示,描述用于控制闪光信号器的控制器程序组件。该控制器程序组件可包括执行不同任务的三个功能,所谓的Runnable。一个功能借助于校准端口读入闪光速度的校准系数,并且将所述校准系数以InterRunnable变量作为数据项提供。第二功能经由接收端口接收报警闪光探测器的当前状态。该功能又将其值借助于InterRunnable变量提供给另一功能。该变量的两个值由定义实际闪光信号控制的第三功能读取和评估。然后,该功能经由发送端口将消息发送给开关闪光信号灯的两个执行器。
[0024]根据本发明的方法的另一优选的实施形式,对运行环境的量值的访问包括对运行环境的多个量值的同步访问。通过集成多个组件-测试服务,在生成可执行程序后提供运行环境的相应的接入接口或接入点,以至于通过相应的选择,在测试场景程序组件中也能够同步设定运行环境的多个量值。
[0025]根据本发明的方法的另一优选的实施形式,控制器程序组件和测试场景程序组件位于虚拟电子控制单元上,或者控制器程序组件位于第一虚拟电子控制单元上,并且测试场景程序组件位于第二虚拟电子控制单元上。
[0026]为了在开发的早期阶段就已经能够测试电子控制单元的稍后的行为以及不同的电子控制单元的共同作用,所述电子控制单元通过虚拟电子控制单元构成。在此,测试场景程序组件能够位于与控制器程序组件相同的虚拟控制单元上以及参与复合测试的另一虚拟电子控制单元上。
[0027]根据本发明的方法的另一优选的实施形式,测试场景程序组件确定程序流程中的这样的时间点和/或有效范围,即在该时间点和/或有效范围需要进行向通信进程中的预设的接入。
[0028]经由在测试场景程序组件中的相应的指令,既能够在时间上也能够在各个参与测试的程序组件方面确定准确的访问。因此能够例如为程序组件操作运行环境的量值,而同一量值对于另一程序组件保持不变。同样可能的是,在特定的时间点才操作所述量值,从而该操作发生在程序流程中的期望的时间。
[0029]根据本发明的方法的另一优选的实施形式,可执行程序包括通过测试场景程序组件接通和切断向通信进程中的预设的接入。
[0030]在这个优选的实施形式中,在创建可执行程序时,创建可执行程序的必要的程序功能,该程序功能既能够借助操作用于运行环境的量值来运行程序也能够借助原始量值来运行程序。在此,测试场景程序组件传递测试信号,该测试信号既包含运行环境的量值也包括确定所述量值是否应被操作的激活变量。在一个优选的实施形式中,组件-测试服务根据其配置具有开关功能,借助所述开关功能根据激活变量的值来接通或切断操作。
[0031]在一个优选的实施形式中,接口描述(也就是组件-测试服务)的规范或配置由使用者经由图形用户界面例如通过选择特定的预设的组件-测试服务来进行。
[0032]此外,开始提到的目的通过一种用于提供用于操作运行环境的量值的接入点的开发装置得以实现,其中所述运行环境用于在测试环境中测试待测试的控制器程序组件。测试环境包括用于提供输入值的测试场景程序组件和用于接收输出值以及显示测试结果的观察器设备。该开发装置具有电子计算单元,所述电子计算单元构造用于生成运行环境,其中,该运行环境提供用于在程序组件之间传输输入值和输出值的通信通道;所述电子计算单元提供组件-测试服务,所述组件-测试服务根据AUTOSAR标准向运行环境提供接口作为用于操作运行环境的量值的接入点,并且借助于相应地生成用于运行环境的代码而允许测试场景程序组件对运行环境的量值进行访问,其中,所述量值确定或描述或影响经由通信通道运行的进程。观察器设备优选示出在执行可执行程序时控制器程序组件的反应,其中,借助于运行环境的量值给出或模仿在通信进程中由测试场景程序组件预设的错误或通信进程的预设的操作,并且其中,测试控制器程序组件对在程序组件之间的通信进程中的错误或操作的反应。
[0033]在本发明的范围内,电子计算单元能够被理解为计算机系统(例如个人计算机(PO或工作站)的组件。在此,该电子计算单元能够例如执行程序,从而该计算机系统被构造为用于创建控制器程序的和/或用于实施根据本发明的方法的开发装置。
【专利附图】
【附图说明】
[0034]图1示出如在现有技术中已知的用于测试程序组件的虚拟测试环境的示意性结构。
[0035]图2示出对应于根据本发明的方法的用于测试程序组件的虚拟测试环境的示意性结构。
【具体实施方式】
[0036]图1示意性地示出如通常根据AUTOSAR标准构造的虚拟测试环境I的结构。在此可见划分为三层。在此,最上层构成集成的程序组件2、3和5,所述集成的程序组件定义控制器程序的功能。包括接近控制器的基础程序6和8的层构成该结构的基础。连接层4代表运行环境,各程序组件经由所述运行环境能够相互作用和/或与基础程序相互作用。借助如SystemDesk的开发装置可以对程序组件进行建模和测试,但是也能够对多个程序组件的复合程序组件进行建模和测试。在此,集成的程序组件的功能和共同作用通过连接到模拟单元7 (也称为模拟器母板)上来模拟,也就是,包括一个程序组件或多个程序组件的程序由模拟单元7来执行。在此,待测试的控制器程序组件3的接口 10与测试场景程序组件2的接口 9连接。借助于测试场景程序组件2在模拟时产生用于待测试的程序组件3的测试信号,然后将该测试信号作为输出信号由测试场景程序组件2经由运行环境作为用于控制器程序组件3的输入信号传输。在图1中,控制器程序组件3的接口 11与观察器程序组件5的接口 12连接,以至于在经过模拟后借助于控制器程序组件3的经由运行环境传输给观察器程序组件5的输出信号,能够检查控制器程序组件3是否如所期望地对开始时收到的测试信号做出反应。也能够使用其它观察器组件代替观察器程序组件5。因此,测试结果的读取也能够从诊断事件监视器(DEM) 8的存储器或者借助于用于运行时间的诊断显示器或类似的显示设备来进行。
[0037]在此,各程序组件相互间的通信经由运行环境4进行。作为连接层,运行环境为各程序组件提供与操作系统6无关的平台,该平台为各程序组件提供基本功能,这些基本功能对于各程序组件相互间的通信——例如读调用和写调用——是必需的。在此,运行环境的和位于底层的程序代码的创建基于集成的程序组件的定义和规范自动进行。相应地为集成的程序组件的每个新的组合重新产生运行环境。在此,通过运行环境构成的通信通道对应于经由在待实现的电子控制单元中的总线进行的信号传输。因此,在总线以及从而通信通道故障或失效时测试控制器程序组件的功能是必要的。
[0038]图2示出如对应于根据本发明的方法的虚拟测试环境101的示意性结构。在此,靠近控制器的基础程序的层包含另一组件117,该另一组件包含用于运行环境的根据AUTOSAR标准的端口或接口的描述。该描述能够作为组件-测试服务集成到虚拟测试环境101中。现在,测试场景程序组件102既经由接口 109与待测试的控制器程序组件103的接口连接,也经由接口 120与运行环境的允许经由组件-测试服务121对运行环境的量值进行访问的接口 119连接。以这种方式,关于在接口 109和待测试的控制器组件110的输入端之间的或者在控制器程序组件112和另一程序组件113的输入端之间的通信通道的错误状态能够经由测试场景程序组件102输入。在此,所述另一程序组件113能够是观察器程序组件。一如既往地,在所有必需的程序组件——包括组件-测试服务121——绑定之后自动生成运行环境104。
【权利要求】
1.一种用于提供用于操作运行环境(104)的量值的接入点的方法,所述运行环境用于在测试环境(101)中用测试场景程序组件(102)和观察器设备(105)来测试待测试的控制器程序组件(103),所述测试场景程序组件用于提供输入值,所述观察器设备用于接收输出值和显示测试结果,其中,该方法包括: 提供所述待测试的控制器程序组件(103 ),其接口( 110、111、112 )分别根据AUTOSAR标准定义; 创建所述待测试的控制器程序组件(103)的和所述测试场景程序组件(102)的可执行程序,其中所述创建包括: 生成所述运行环境(104),其中,所述运行环境(104)提供用于传输所述输入值和输出值的通信通道, 其特征在于, 提供组件-测试服务(121),所述组件-测试服务根据AUTOSAR标准为所述运行环境(104)提供接口(119)作为用于操作运行环境(104)的量值的接入点,并且所述组件-测试服务借助于相应地生成用于所述运行环境(104)的代码而允许所述测试场景程序组件(102)对所述运行环境(104)的量值进行访问,其中,所述量值确定或描述或影响经由所述通信通道运行的进程。
2.如权利要求1所述的方法,其中,所述测试还包括: 执行所述可执行程序,其中 借助于经由所述接入点操作所述运行环境(104)的量值来进行从所述测试场景组件(102)向所述通信进程中的预设的接入,并且其中,测试所述控制器程序组件(103)对操作在所述程序组件之间的通信进程的反应,其方式为由观察器设备(105)检测所述控制器程序组件(103)的反应。
3.如权利要求1或2所述的方法,其中,所述观察器设备(105)是观察器程序组件,其接口( 113、114 )分别根据AUTOSAR标准定义。
4.如权利要求1-3之一所述的方法,其中,所述运行环境(104)的量值通过所述运行环境(104)的参数、变量或功能来给定。
5.如权利要求1-3之一所述的方法,其中,所述运行环境(104)的量值是描述输入值或输出值的状态的状态参数,其中,所述状态描述输入值或输出值的有效性或可信度或错误类型。
6.如权利要求1-3之一所述的方法,其中,所述运行环境(104)的量值是运行环境-事件参数,所述运行环境-事件参数能够实现运行环境-事件的触发。
7.如权利要求1-6之一所述的方法,其中,对所述运行环境(104)的量值进行访问包括: 操作所述运行环境的量值,该量值被同一程序组件的一个功能或多个功能或者由不同的程序组件使用。
8.如权利要求1-7之一所述的方法,其中,对所述运行环境(104)的量值进行访问包括对所述运行环境(104)的多个量值进行同步访问。
9.如权利要求1-8之一所述的方法,其中,所述控制器程序组件(103)和所述测试场景程序组件(102)位于虚拟电子控制单元上;或者,所述控制器程序组件(103)位于第一虚拟电子控制单元上,并且所述测试场景程序组件(102)位于第二虚拟电子控制单元上。
10.如权利要求1-9之一所述方法,其中,所述测试场景程序组件(102)还确定程序流程中的这样的时间点和/或有效区域,即在该时间点和/或有效区域需要进行向通信进程中的预设的接入。
11.如权利要求1-10之一所述的方法,其中,所述可执行程序包括: 通过所述测试场景程序组件(102)接通或切断向通信进程中的预设的接入。
12.一种用于提供用于操作运行环境(104)的量值的接入点的开发装置,所述运行环境用于在测试环境中用测试场景程序组件(102)和观察器设备(105)来测试待测试的控制器程序组件(103 ),所述测试场景程序组件用于提供输入值,所述观察器设备用于接收输出值和显示测试结果,该开发装置包括: 电子计算单元,所述电子计算单元构造用于从所述待测试的控制器程序组件和所述测试场景程序组件(102)生成可执行程序,所述控制器程序组件的接口根据AUTOSAR标准定义, 其特征在于, 所述电子计算单元还构造用于生成运行环境(104),其中,所述运行环境(104)提供用于传输输入值和输出值的通信通道,并且 所述电子计算单元构造用于提供组件-测试服务(121),所述组件-测试服务根据AUTOSAR标准为所述运行环境(104)提供接口作为用于操作运行环境(104)的量值的接入点,并且借助于相应地生成用于所述运行环境(104)的代码而允许所述测试场景程序组件(102)对所述运行环境(104)的 量值进行访问,其中,所述量值确定或描述或影响经由所述通信通道运行的进程。
【文档编号】G06F9/44GK103543999SQ201310205015
【公开日】2014年1月29日 申请日期:2013年5月29日 优先权日:2012年7月10日
【发明者】M·聚维恩, A·格布兹 申请人:帝斯贝思数字信号处理和控制工程有限公司