用于测试航空器上的系统的操作软件的有效性的自动脚本生成方法及用于实现该方法的设备的制作方法

文档序号:6478305阅读:138来源:国知局
专利名称:用于测试航空器上的系统的操作软件的有效性的自动脚本生成方法及用于实现该方法的设备的制作方法
技术领域
本发明涉及在这些系统的操作依赖于计算机中的一系列逻辑指令的执行时的系 统操作安全的领域。具体地说,本发明涉及用于生成程序的方法,该程序用于测试必须执行一系列逻 辑指令的系统、特别是具有提高的安全要求的系统(诸如旨在安装于航空器上的电子系 统)的操作软件。该方法使得开发者能够自动生成如下的程序,该程序测试用于旨在安装于航空器 上的系统的操作软件的一系列逻辑指令。本发明在(但不限于)航空领域是特别有利的, 且更具体地在对机载系统的操作软件执行测试的领域特别有利。
背景技术
由于安全原因,对旨在被安装在航空器上的系统进行关于其正确操作的检查,在 此期间,必须在授权装配有此类系统的航空器飞行、乃至投入商业使用之前证明所述系统 满足认证要求。目前,在安装之前,对这些系统进行许多测试以便检查其是否满足尤其是由认证 机构发布的完整性和安全要求。这些机载系统尤其可以是旨在对航空器执行例如领航操作 的可能重要的操作的专用计算机。在下文中这些系统将被称为计算机。在当前的系统体系结构中常见的是,每台计算机专用于一种应用或同一性质的若 干应用,例如飞行控制应用。每台计算机包括硬件部分和软件部分。硬件部分包括至少一 个中央处理单元(CPU)和至少一个输入/输出单元,借助于该输入/输出单元,计算机连接 到计算机网络、外部外围设备等等。常常在航空领域中实现的机载系统的一个基本特性是关于体系结构的,硬件与软 件同样多,其尽可能地避免引入对于专用于要执行的所述系统的函数(function)而言不 必要的任何装置。因此,与通常在航空学中的广泛应用中发现的系统相反,该计算机未装配复杂的 操作系统。另外,软件以与中央处理单元所理解的语言尽可能接近的语言来执行,且可用的 输入/输出仅仅是系统操作所需的那些,例如来源于传感器或其它航空器元件的信息或被 发送到执行机构或其它元件的信息。此类体系结构的优点来自于这样的事实,即此类系统的操作受到更好的控制。其 不依赖于复杂的操作系统,该复杂操作系统的某些操作方面视不受控制的参数而定且另外 应对该复杂操作系统进行与应用软件相同的安全验证。系统更简单且较不易受到影响,因 为其仅包括要执行的所述系统的函数所确实需要的装置。另一方面,要检测此类系统的操作条件困难得多。例如,该系统不包括使得能够检 查一系列指令的正确操作且使得操作员能够与此操作相交互的任何传统人机接口(诸如 键盘和屏幕),这使得难以执行软件的开发、验证和鉴定期间所需的实质性检查。
计算机的软件部分包括专用于相关应用且保证计算机的操作的软件程序,其逻辑 指令对应于确定系统操作的算法。为了获得系统认证,在其使用和航空器使用之前执行计算机确认(validation) 阶段。以已知的方式,确认阶段通常在于在计算机执行过程的每个步骤处检查它是否符 合规范集以使得所述计算机实行系统的预期操作。通过从检查最简单软件组件到集成了将在目标计算机中使用的所有组件的完整 软件程序的连续步骤,特别地对软件程序执行与规范的符合性的此验证。在第一验证步骤中,对能够被测试的最简单软件元件进行测试,称为单元测试。在 这些测试期间,检查是否已依照设计要求执行了单独采用的所述软件元件的逻辑指令(即 代码)。在称为集成步骤的第二步骤中,将已单独地经受隔离检查的不同软件组件集成以 便构成一个单元,其中软件组件相交互。对这些不同的软件组件进行集成测试,该集成测试 旨在检查软件组件是否兼容,特别是在所述组件之间的操作接口处是否兼容。在第三步骤中,将所有软件组件集成到计算机中,所述 软件组件是为此计算机而 设计的。然后执行确认测试以证明由集成到计算机中的一组组件形成的软件符合规范,即, 其执行预期的函数,且其操作是可靠且安全的。为了保证软件是安全的且为了满足认证要求,已对软件执行的所有测试还必须在 此确认阶段且以充分的确定性水平证明该软件符合对其中结合该软件的系统的安全要求。在确认阶段期间对软件执行的不同测试使得能够保证所述软件不会发生故障 (该故障会对计算机的正确操作产生影响,并因此对航空器及其安全产生影响),或者如果 确实发生了故障,该软件能够控制这种情况。在任何情况下,在此确认阶段期间,且首先对于观察到异常时的调查操作而言,常 常需要保证不仅上面安装有软件的计算机的输入和输出参数与预期的参数一致,而且某些 内部软件动作是正确的。在这种情况下,由于用于机载应用的专用计算机的特定体系结构,常常非常难以 在没有实现特定设备和方法的情况下检测软件操作条件。第一种已知的方法在于通过使用仿真器在安装软件的被测试计算机与相关平台 之间建立文件分发系统。仿真器指的是使得能够在相关平台上模拟计算机处理器的计算单 元的逻辑运算的设备。在具有仿真器的此类操作模式下,计算机处理器被探测器取代,该探测器产生与 支持处理器仿真的相关平台的接口。因此,可以执行将在计算机(除处理器部分之外)上测试的软件,并且通过由相关 平台执行的函数,除检测所述输入/输出单元的输出之外,例如响应于到输入/输出单元的 输入刺激,可以检测软件的操作条件或某些内部故障。第二种方法在于在主机平台上模拟用来执行被测试的程序的计算机的操作。在这 种情况下,被测试的软件必须能够访问主机平台上的文件,以便读取测试矢量或记录测试结果。由于被测试的软件不一定包括用于对主机平台文件的此类访问的函数,必须修改被测试的软件以便集成这些访问函数。为了传输信息,通常使用由模拟测试环境发送的系统调用指令。所述系统调用指 令可以是例如文件打开、文件写入、乃至文件读取。所述系统调用指令被主机平台操作系统 截取,该主机平台操作系统将其转换成主机平台系统调用。在计算机确认阶段期间,且首先对于已观察到异常时的调查操作而言,常常必须 保证不仅上面安装有软件的计算机的输入和输出参数与预期的参数一致,而且某些内部软 件动作是正确的。为了达到此目的,用于计算机的操作软件的测试执行环境生成若干测试程序,即 使该测试程序常常表示大量的指令代码,常常比来自被测试的软件的指令代码的量更大。目前,逐个测试用例地执行测试程序的开发。测试用例指的是将实现以便达到测 试目的的操作路径。换言之,测试用例由要实现的一组测试、要执行的测试方案和预期的结 果来定义。因此,旨在被加载到计算机上的操作软件的每个测试用例与将模拟该测试用例 的程序相关。这些测试程序由开发者创建,开发者完美地理解被测试的软件的函数、其上下 文及其运行条件。测试程序的开发经过两个基本步骤涉及测试数据的设计的第一步骤和 涉及用于测试程序的指令链的写入的第二步骤。测试程序的开发经历由开发者执行的一系列重复手动任务。此一系列重复手动任 务是错误引入的显著来源。为了解决此问题,已经开发了自动测试生成器以便使得能够生成测试用例数据。 用生成测试用例数据的此类方法,开发者必须用形式语言来表达每个测试目标,然后将这 些目标翻译成编程语言。这样建模的每个目标构成测试用例。然而,该表达每个测试目标的方式只能被应用于用于简单函数的简单目标,且难 以在工业规模上实现表达每个目标的这种方式的自动化。

发明内容
本发明的目的是克服前述技术的缺点。为了达到此目的,本发明涉及使得能够自 动地生成测试程序并检查所执行的测试的有效性的方法。根据本发明的方法的实现通过避免采取手动开发测试程序的必要性来降低测试 阶段的成本。本发明因此能够实现一定水平的关于测试程序开发方面的灵活性,因为操作 软件的开发是根据来自所执行的测试的开发以递增的方式执行的。实际上,与操作软件测 试并行地开发测试程序,这意味着每当存在来自至少一个测试的开发时,测试程序与被测 试的操作软件同时发展。本发明还使得能够改善测试程序的可靠性,因为根据由开发者以交互方式揭示 (unroll)且确认的脚本来自动地执行这些测试程序的合成。更确切地说,本发明涉及一种用于测试航空器上的系统的操作软件的有效性的脚 本生成方法,其特征在于其包括以下步骤-由开发者以交互方式通过分别在被测试的操作软件的函数的起点和终点处设置 进入点和停止点来识别有效测试用例。_经由所述停止点和所述进入点的位置来观察并记录所述函数的变量的状态。-首先通过分析在测试用例的识别期间观察到的变量的状态且其次通过以源代码的形式生成测试脚本来自动地生成测试脚本。-在执行环境下自动地执行所生成的测试脚本的测试。本发明还可以包括以下特性中的一个或多个-在观察并记录变量状态的步骤与自动地生成测试脚本的步骤之间,执行检查测 试用例的有效性的验证步骤,使得开发者能够判定被测试的函数的执行关于所观察的变量 状态是否有效。-逐个测试用例地执行测试脚本的生成。-在自动地生成脚本的步骤与自动地执行脚本的步骤之间,创建源代码编译以便 将测试脚本的所述源代码自动翻译成机器语言的等效源代码。-编译后面是提供能够在开发者所选的测试执行环境中执行和使用的二进制代码 的测试脚本行编辑操作。-以与所选的测试执行环境的类型直接兼容的形式生成测试结果。本发明还涉及模拟航空器上的计算机的操作的设备,其特征在于其实现如前文所 限定的方法。本发明还可以包括以下特性在测试和调试主机平台上虚拟地模拟所述设备。本发明还涉及测试程序,该测试程序可以被加载到控制单元上,其包括指令序列, 以便当程序被加载到所述单元上且被执行时实现如前文所限定的方法。在阅读以下说明之后并且在研究附图之后,将更好地理解本发明。这些是作为大 致的指导而提出的而绝不是作为本发明的限制性指导。


图1示出本发明的方法的操作图。图2是使得能够生成用于操作软件的测试程序的测试执行环境的控制单元的示 意图。
具体实施例方式本发明涉及一种使得能够自动生成在整个开发阶段中测试操作软件的脚本的方 法。这种方法使得能够将在此开发期间对操作软件进行的每次修改考虑在内。操作软件的概念被定义为包括一组程序。包括一组所写的一系列指令的程序在下 文中称为指令链。脚本是执行特定任务的一组所写指令。本发明的方法还使得能够经由连续的步骤来控制随着操作软件的开发逐渐地对 操作软件执行的每项测试的有效性。图1表示本发明的方法的操作图。此操作图对应于本发明的实施例的方式。此操 作图包括步骤20,其中由开发者以交互方式来识别测试用例。测试用例的概念在这里是由 开发者定义以便检查已被正确调试的操作软件的指令链是否满足其规范、而且机载系统的 计算机对其进行的执行将不会导致所述系统的任何故障的方案。在本发明的范围内,开发 者可以定义多个测试用例以便尽可能多地运用操作软件。此开发者有机会使用可用的调试 程序,这使得他/她特别地能够研究指令链中可能的错误。此调试程序还使得能够通过分别在被测试的操作软件的函数的起点和终点处设置进入点和退出点或停止点来控制测试的执行。测试执行控制特别地包括观察由开发者选择的称为有效变量的变量的状态的步 骤。这些有效变量是使得开发者能够检查所获得的值是否是预期的那些值的变量。在步骤21中执行测试的有效性的验证,使得能够进行测试的执行相对于所观察 的变量状态而言是否有效的判定。在测试有效的情况下,步骤22向开发者提供确认界面以 便通过保存所观察的所有变量状态来记录有效测试。在测试无效的情况下,从步骤20开始 重复该方法。当应用用于记录有效测试的步骤22时,在开发者的动作和判定下在步骤23中执 行新测试用例的验证。如果检测到新测试用例,则从步骤20开始重复该方法。如果未检测 到新测试用例,则应用用于生成测试脚本的步骤26。此步骤26前面是两个中间步骤24和 25。步骤24的目的是检测开发者是否设置了测试执行环境的参数。这些参数使得能够选 择测试执行环境的类型,必须针对该类型来生成测试脚本。如果已检测到参数,则步骤25 在于将这些参数考虑在内来生成测试脚本。用于生成测试脚本的步骤26由脚本生成器自动执行。此脚本生成器首先分析已 在识别有效测试用例的步骤20之后记录的受控变量状态,其次生成用于测试脚本的源代 码(步骤27)。逐个测试用例地执行生成源代码的此操作。源代码以标准编程语言的形式直接呈 现,这使得其容易被大多数软件开发者理解。在步骤28中,创建源代码编译,使得用于测试脚本的源代码能够被自动翻译成机 器语言的等效脚本。此编译后面是在步骤29中提供能够在步骤24中所选的测试执行环境 或预配置的测试执行环境中被执行和使用的二进制代码的测试脚本行编辑操作。在步骤30中,在测试执行环境中自动地执行测试脚本的二进制代码。在步骤31 中,以直接与开发者所选的测试执行环境类型兼容的形式生成来自对操作软件执行的测试 的执行的结果。本方法表现出能够适合于用于操作软件的任何类型测试执行环境的优点。因此, 其能够适合于任何类型的虚拟或真实环境。用本发明的方法,所生成的测试脚本直接有效且没有错误。事实上,在测试脚本确 认阶段期间,所述脚本之一的未确认对应于错误的发现,这隐含地引起操作软件的测试函 数的修正。图2是使得能够生成旨在被加载到机载系统(未示出)上的操作软件的测试脚本 的测试执行环境的控制单元1的示意图。图2示出测试执行环境的控制单元1的示例。根 据实施例的不同模式,测试执行环境可以在诸如工作站的主机平台上虚拟地模拟,或者基 于仿真器式的硬件设备。测试执行环境指的是使得能够检查、修正并执行试运行以及测试 机载系统的操作软件的环境。测试环境的控制单元1包括但不限于,处理器2、程序存储器 3、数据存储器4和输入/输出接口 5。处理器2、程序存储器3、数据存储器4和输入/输出 接口 5经由双向通信总线6相互连接。由记录在控制单元1的程序存储器3中的指令代码来控制处理器2。在区域7中,程序存储器3包括用于识别有效测试用例的指令。此识别使得能够 经由可以在经典调试程序中发现的多功能界面来与开发者交互。在这些功能之中,特别地
7存在在被测试的操作软件的函数的起点处设置执行控制点的可能性。另一功能使得能够在 函数的终点处设置停止点。此开发者交互使得开发者能够控制变量的状态以便确定函数的 执行是否被正确地执行。在区域8中,程序存储器3包括用于执行确认操作的指令。此确认在于自动地记 录所有受控变量状态。这些状态构成有效测试用例的记录12。此确认还使得能够编辑所有 受控状态。这些受控状态变成被确认的测试用例的参考值。在区域9中,程序存储器3包括用于生成测试脚本的指令。测试脚本的此生成得 自于记录12的变量状态的分析。测试脚本的此生成以源代码13的形式呈现。其被逐个测 试用例地呈现。在区域10中,程序存储器3包括用于创建源代码13的编译以便将此代码翻译成 机器语言的指令。在此编译之后,执行行编辑操作以便将源代码13(以机器语言的方式存 在)转换成可执行二进制代码14。在区域11中,程序存储器3包括用于执行测试脚本以便在输出端处生成测试结果 15的指令。
权利要求
一种用于测试航空器机载系统的操作软件的有效性的脚本生成方法,其特征在于包括以下步骤a)由开发者以交互方式通过分别在被测试的操作软件的函数的起点和终点处设置进入点和停止点来识别有效测试用例(20);b)经由所述停止点和所述进入点的位置来观察并记录(22)所述函数的变量的状态;v)首先通过分析在测试用例的识别期间观察到的变量的状态且其次通过生成源代码(13)形式的测试脚本来自动地生成(26)测试脚本;d)在测试执行环境下自动地执行(30)所生成的测试脚本的测试。
2.根据权利要求1所述的方法,其特征在于,在观察并记录变量状态的步骤和自动生 成测试脚本的步骤之间,执行检查测试用例的有效性的验证步骤,使得开发者能够判定被 测试的函数的执行关于被观察的变量状态是否有效。
3.根据权利要求1或2所述的方法,其特征在于,逐个测试用例地执行测试脚本的生成。
4.根据权利要求1至3中任一项所述的方法,其特征在于,在自动生成脚本的步骤和自 动执行脚本的步骤之间,创建源代码编译以便将测试脚本的所述源代码自动翻译成机器语 言的等效源代码。
5.根据权利要求4所述的方法,其特征在于,所述编译之后是提供能够在开发者所选 的测试执行环境中执行和使用的二进制代码的测试脚本行编辑操作。
6.根据权利要求1至5中任一项所述的方法,其特征在于,以与所选的测试执行环境的 类型直接兼容的形式生成测试结果。
7.一种模拟航空器机载计算机的操作的设备,其特征在于实现根据权利要求1至6中 任一项所述的方法。
8.根据权利要求7所述的设备,其特征在于在测试和调试主机平台上虚拟地模拟所述 设备。
9.一种可以被加载到控制单元(1)上的测试程序,包括指令序列,用于当该程序被加 载到所述单元上且被执行时实现根据权利要求1至6中任一项所述的方法。
全文摘要
本发明涉及用于测试航空器机载系统的操作软件的有效性的脚本生成方法,其特征在于其包括以下步骤a)由开发者以交互方式通过分别在被测试的操作软件的函数的起点和终点处设置进入点和停止点来识别(20)有效测试用例;b)经由所述停止点和所述进入点的位置来观察并记录(22)所述函数的变量的状态;c)首先通过分析在测试用例的识别期间观察到的变量的状态且其次通过生成源代码(13)形式的测试脚本来自动地生成(26)测试脚本;d)在测试执行环境下自动地执行(30)所生成的测试脚本的测试。
文档编号G06F11/36GK101802792SQ200880106557
公开日2010年8月11日 申请日期2008年9月12日 优先权日2007年9月14日
发明者F·兰蒂姆比沃罗罗纳 申请人:空中客车运营简易股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1