运行时错误

运行时错误通常是指程序执行过程中出现的问题。运行时错误可能发生在软件或硬件中,导致它故障。检测它们很重要,因为它们可能导致严重的安全性、安全性或业务操作问题。软件运行时错误包括逻辑错误,如算术异常。它们还包括与控制和数据流相关的缺陷(如未初始化的变量或指针)、与内存相关的缺陷(如缓冲区溢出)或并发缺陷(如竞争条件)。多空间静态分析可以为运行时错误检测提供一种解决方案。

为什么要担心运行时错误?

运行时错误可能会导致高完整性应用程序的关键系统失败,从而导致灾难性的结果。在引人注目的示例中,运行时错误被认为是系统故障的根本原因。其中包括一个算术溢出运行时错误,该错误使火箭的机载计算机崩溃,以及一个竞赛条件运行时错误,该错误导致医疗设备注入致命数量的辐射。

运行时错误检测

对高完整性应用程序执行运行时错误检测至关重要。然而,这种错误检测是具有挑战性的,因为它涉及到预测软件的每一个可能的执行。如下所述,很难预测所有路径:

在理想情况下,您希望测试程序中的每一个可能的行为。这意味着至少测试一次所有可能的输入组合或所有可能的决策路径。这是一个高尚但完全不切实际的目标。例如,在《软件测试的艺术》一书中,Glen Ford Myers描述了一个只有5个决策的小程序,它有10^14个唯一的执行路径。他指出,如果您能够每5分钟编写、执行和验证一个测试用例,那么将需要10亿年的时间来全面测试这个程序。显然,理想的情况是无法达到的,所以您必须使用这种理想的近似。正如您将看到的,功能测试和覆盖率测试的组合提供了一个合理的次优选择。基本的方法是选择一些功能测试,一些覆盖率,有最高的概率暴露错误。”[1]

由于可能有数万亿种可能进行测试,因此很明显,仅通过测试的方式进行运行时错误检测是不够的,也是低效的。更好的解决办法是使用Polyspace静态分析检测运行时错误,因为您可以使用它来验证每个可能的输入组合和每个可能的决策路径。它使用一种称为抽象解释的形式化方法技术。该技术通过在编译时验证软件应用程序的动态/运行时属性,弥补了传统静态分析技术和动态测试之间的差距。

在不执行程序本身的情况下,抽象解释调查程序所有可能的运行时行为,不仅证明复杂运行时错误的存在,而且还证明它们的不存在。您可以使用Polyspace产品来识别那些只s manbetx 845在特定运行时条件下发生的特殊运行时错误。了解更多有关多空间静态分析解

结合抽象解释和静态代码分析,您可以:


1伯杰:“嵌入式软件测试基础2011年,“嵌入式。。

阿莱尼亚·马基公司

“对我们来说,基于模型的设计的一个关键优势是能够专注于设计和开发,而不是低级的编码、验证和认证任务。其结果是更高的质量,通过DO-178B认证的软件,以及更快的迭代。”