2016年3月28日 西米奇

Simics帮助在24小时内运行60000个GNAT Pro测试

一个关键的方面AdaCore蚊的职业提供的是我们提供的产品的质量,以及我们在出现问题时积极解决问题的方法。为此,我们需要在向客户交付任何产品之前进行密集测试,并每天为我们提供的每个产品生产“波前”版本。考虑到支持的配置的数量、要运行的测试的数量以及24小时时间框架的限制,每天这样做是一个真正的挑战。在AdaCore,我们非常依赖虚拟化作为我们测试策略的一部分。在本文中,我们将描述我们对GNAT Pro on的测试范围VxWorks,以及如何风河系统公司西米奇帮助我们迎接这些挑战。

广泛支持VxWorks产品

要运行的测试数量与我们支持的配置数量成比例。我们有一个令人印象深刻的配置矩阵需要验证:

  • 版本:VxWorks, VxWorks Cert, VxWorks 653…在我们支持的所有版本(例如5.5,6.4到6.9,653 2.1到2.5…)
  • 处理器:arm, ppc, e500v2, x86…
  • 程序类型:实时进程,可下载内核模块,静态内核模块,vThreads, ARINC 653进程,带Cert子集…
  • Ada配置变体:零成本例外vs setjmp/longjmp例外,Ravenscar任务配置vs全Ada任务配置…

当然,在这个可能性矩阵中有一些组合是不被GNAT支持的,但现实是我们涵盖了大部分。所以构型的多样性是非常高的。

母体正在快速增长。从2013年到2015年,我们扩大了我们的提供,以支持新的VxWorks端口(VxWorks 7, VxWorks 653 3.0.x)在大范围的cpu (arm, e500v2, ppc..),包括GNAT Pro用户需要的新配置(x86_64)。这表示将向168个现有配置中添加32个新的支持配置。为了尽快支持新的VxWorks版本,将所有这些新版本与我们现有的testsuite版本进行比较显然是一个挑战。

Simics支持广泛的VxWorks配置,并与核心操作系统本身有很好的集成。这使得Simics成为我们的GNAT Pro测试策略的自然解决方案。在VxWorks 7和653 3.0上。x,它允许我们快速设置一个适当的测试环境,因为预定义的材料存在,使其顺利地与大多数Wind River操作系统工作;我们可以马上专注于我们自己的技术,而不是花时间从头开始开发、稳定和维护新的测试基础设施。

虚拟硬件上的代表性测试

Simics的另一个好处是它不仅支持VxWorks的所有版本,而且还模拟了各种各样的硬件平台。这允许我们在GNAT Pro用户将在生产中使用的具有代表性的硬件平台上进行测试。

一个稳定的QA框架可以提高生产率

稳定性是测试框架的一个重要特性;否则,由测试框架引起的“故障”就会开始导致虚假的故障(通常是随机的),然后QA团队每次都需要分析这些故障。再乘以我们每天运行的大量测试,以及我们测试的大量平台,缺乏稳定性会很快导致难以管理的情况。对测试框架的信任是提高效率的关键因素。

在这方面,尽管沉重的并行性需要为了完成我们所有产品的验证,西米奇被证明是一个健壮的解决方案和在压力下表现良好,从而帮助我们集中精力差异引起的我们的工具,而不是虚假的差异造成的测试框架。

测试执行速度允许进行广泛的测试

关于我们的测试有多广泛的附加信息。在VxWorks上,我们主要有三套测试套件:

  • 标准Ada验证测试套件(ACATS):约3,600次测试;
  • 蚊蚋的回归测试:约15,000次测试;
  • 特定于工具的测试套件:大约1800个测试。

总的来说,仅仅算上VxWorks平台,我们每天要进行大约35万次测试。其中60000个是在Simics上运行的,大部分是在最近的端口上(VxWorks 7和653 3.x)。

为了运行所有这些测试,需要一个高效的测试平台。使用Simics,我们能够通过以下方法优化执行:

  • 适当调整仿真目标;
  • 使用检查点,在可以立即运行测试的执行点停止并重新启动平台;
  • 开发额外的插件,以便从模拟器有效地访问主机文件系统。

我们将提供更多关于这些优化的技术细节以后的文章

作者:客人

jbrobecker

Joel Brobecker, AdaCore的高级软件工程师

jguitton

Jérôme Guitton, AdaCore高级软件工程师

jlombourg

Jérôme Lambourg, AdaCore高级软件工程师

以前的VxWorks现在支持AMD的嵌入式G和r系列cpu
下一个VxWorks的可扩展图形