Case Studies

ModuleWorks

MODULEWORKS 通过 INCREDIBUILD 实现了快 15 倍的精密 CAM 测试周期

ModuleWorks概述

ModuleWorks 是一家面向 CAD/CAM 行业的软件组件提供商。ModuleWorks 在五轴机械加工和模拟方面的专长,得到了整个 CAM 行业的认可,大多数领先的 CAM 厂商都是其软件组件和开发服务客户。ModuleWorks 五轴和模拟软件已在复杂零件制造中应用了十多年,在全球 CAD/CAM 行业中拥有广泛的用户基础。

难点

ModuleWorks 为机械控制工程提供了软件组件。多个团队使用 C++ 开发了几何算法。

ModuleWorks 拥有自己的持续集成系统,当更改被集成至其代码库时,该系统会构建并运行所有模块。

持续集成服务器必须非常快速地处理每个周期。所有开发人员都需要按顺序集成他们的代码。这造成了很大的问题和重大的延误。开发人员必须等待几天才能集成他们的代码。团队不能继续进行开发和测试,直到整个代码库集成至他们的连续集成系统。

ModuleWorks 采用谷歌的测试框架 GTest 来编写 C++ 测试。Gtest 可运行数百个测试,包括单元测试和集成测试,如此累加,会耗费很长的时间。这些耗时很长的测试会进一步拖慢其持续集成生命周期。

ModuleWorks 为其客户提供 32 种不同的二进制配置。每个配置均需在每次发布之前单独进行构建,每年进行 3 次。如果没有 Incredibuild,构建他们所需的全部配置需要耗时几天时间。发布时间令他们着实陷入了困境。

使用 CAD/CAM 时,精确度必不可少。Incredibuild 盘活了我们的开发,节省了我们许多个月的工作量。采用 Incredibuild ,我们能够支持持续集成和测试,这原本是不可能的。

Jan Theegarten

开发人员

解决方案

自从 ModuleWorks 在测试运行中引入 Incredibuild 以来,每次任务时间从 60 分钟缩短至了 30 分钟。因此,开发人员每天可以处理多个任务,并在一天以内将其代码进行集成。实施 Incredibuild 后,持续集成服务器每天可服务的开发人员数量实现了翻倍。

在实施 Incredibuild 之后,构建时间骤降。借助 Incredibuild,ModuleWorks 可在大约 3 分钟内运行一次完整的构建。如果没有 Incredibuild,该过程至少需要半个小时。

在实施 Incredibuild 之后,他们的测试周期也大幅缩短。他们采用 Incredibuild 的测试时间要快 15 倍以上。如果没有 Incredibuild,每次测试需要超过 150 秒。采用 Incredibuild 后,该过程只需 20 秒——时间缩短了 86%。

每位开发人员每天运行大约两次构建。每位开发人员每天的构建时间耗时 3 小时,每天进行两次完整重构。在实施 Incredibuild 之后,这些时间缩短至每天 30 分钟——时间缩短了 83%。

益处

通过采用 Incredibuild 加速他们的 GTest 测试,ModuleWorks 可以更有效地开展工作。由于大部分代码会在不同开发人员之间分享,进而导致频繁的回归。采用 Incredibuild 缩短 GTest 运行时,可激励开发人员更频繁地运行测试,尤其是在进行重构时。这样可改善他们的代码质量,因为开发人员耗费的调试时间更少,从而释放了更多时间来编写良好的代码。

此外,由于到达客户时的回归较少,他们的代码覆盖率要好得多,也高得多,这都得益于 GTest 和系统测试加速。综上所述,采用 Incredibuild 所带来的益处包括:

  • 支持持续集成
  • 加速测试周期
  • 到达客户的回归更少
  • 代码覆盖率提高
  • 自动化测试增加,增加更多测试并改善代码质量
  • 发布更快

结果概要

Unit 测试
2.5分钟
0.33分钟
完整重建
3小时
30分钟