有一个更好的方法来测试我的软件吗?

测试是验证过程的一个主要部分在大多数嵌入式软件开发组织。研究估计,大约25 - 30%的开发时间是花在测试,在某些情况下,这可以高达50% [1]。

有两个关键目标的验证:

  • 确保功能的正确性和验证软件是否满足要求
  • 确保运行时的正确性和验证实现的正确性和健壮

这些验证目标相互正交,历来通过测试,包括功能测试、性能测试、边界值测试、健壮性测试、随机测试,测试的语句覆盖和决定覆盖。所有这些策略可以分为两个等级:

  • 基础测试策略功能的正确性
  • Coverage-based测试运行时策略的正确性

然而,用这种方法测试嵌入式软件是最好的嵌入式软件验证方法?这是一篇文章的解释在嵌入式软件测试[2]:

“在理想的情况下,你想要测试所有可能的行为。这意味着测试所有可能的组合输入或所有可能的决策路径至少一次。

这是一个高尚的,但完全不切实际,目标。例如,在软件测试的艺术,格兰福特梅尔斯描述了一个小程序,只有五个决策有10 ^ 14独特的执行路径。他指出,如果您可以编写,执行,并验证每五分钟一个测试用例,它需要十亿年的时间来测试详尽的这个项目。

显然,理想的情况是无法企及的,因此您必须使用近似理想。您将看到,功能测试和覆盖测试提供了一个合理的次优选择。基本的方法是选择测试一些功能,一些报道,揭露错误的概率最高。”

最明显的例子,只使用功能和固有的弱点coverage-based测试是软件问题最近报道的一个主要的航空制造商。尽管178年做指导,执行严格的验证和安全要求,需要大量的测试和手动审查,它未能阻止一个溢出错误之前交付的产品是[3]。

显然,验证,仅仅依赖测试是不完整的。幸运的是,工具像Polyspace产品的出现可以缓解这个问题,验证所有可能的组合输入每一个可能决下载188bet金宝搏定路径。

Polyspace静态分析解决方案使用一个正式的方法被称为抽象解释技术。这种技术的桥梁之间的差距传统的静态分析技术和动态测试通过验证软件应用程序在编译时的动态属性。

没有执行程序本身,抽象解释调查的所有可能的行为程序,所有可能的组合输入和执行所有可能的序列单通道来确定如何以及在什么情况下程序可以失败。在这里你可以找到更多的细节白皮书Polyspace静态分析的解决方案

不仅可以分析每个可能的行为程序完全验证你的软件,你也可以显著降低工作和开发时间测试您的软件。您可以利用所提供的动态运行时行为Polyspace工具:

  • 取代或减少健壮性测试
  • 执行死代码覆盖率
  • 减少测试周期
  • 识别相关的测试向量

在未来的文章中,我们将讨论Polyspace如何帮助这些任务。结合使用的好处Polyspace静态分析和测试的工作量可以保存并减少整个开发时间。一个主要的汽车供应商可以减少高达50%的测试周期,主要由取代健壮性测试和减少测试周期的数量。工件产生Polyspace演示如何实现所需的质量水平。您可以利用Polyspace工具在您的测试过程的不同阶段,如:

  • 单元测试
  • 集成测试
  • 验收测试

如果你有兴趣学习Polyspace工具可以扮演一个角色在你的开发过程来减少你的测试工作,把这个网络研讨会(24:27)

引用