当测试生产环境持续有意义时

时间:2015-07-03 12:41:14

标签: testing continuous-integration continuous-testing

让我们说我有一堆单元测试,集成测试和e2e测试,涵盖了我的应用程序。将这些连续运行与生产相关是否有意义,例如:每10分钟一次?

我想不,这就是为什么: 我的测试已在每次prod部署后运行。如果他们通过并且之后没有代码发生变化,他们应该继续通过。因此,测试它们之后没有意义。

我真正想要持续测试的是我的基础设施 - 它还在运行吗?在这种情况下,每10分钟运行一次API集成测试以检查我的API是否仍然有效。因此,我正在处理我的测试套件的一部分 - 测试我的基础架构可用性(集成+ e2e)而不是单个代码(单元测试)。那么在实践中,我是否有单独的测试套件来测试产品的正常运行时间,而不是用于测试部署前/后的套件?

1 个答案:

答案 0 :(得分:1)

这种“冗余”验证(它们可以包括构建,BTW,不仅仅是测试)提供额外的数据点,提高了实际生产过程的监控精度。

根据您的生产环境的复杂程度,即使简单的“启动/运行?”问题可能没有简单的答案,验证的子集/快捷方式版本可能不会削减它 - 您'只涵盖那些版本,而不是实际的生产版本。

例如,仅仅因为构建服务器已启动并不意味着它也能够成功构建产品,您需要检查构建本身的每个方面:每个工具的可用性,对于复杂的构建,执行构建本身可能比管理代码可靠检查构建是否可行更简单;)

有两个生产过程属性可以从更精确的监控中受益(以及哪些子集/快捷方式验证也不合适):<​​/ p>

  • 可靠性/稳定性 - 间歇性失败的类型,出现率和根本原因(是的,那些令人讨厌的惊喜,可能会在满足发布日期之间产生影响)
  • 效果 - 各种验证的平均/最小/最大持续时间;如果验证在涉及的持续时间/资源方面是昂贵的,那就特别重要;规划,预算,生产ETA等可能需要趋势

Donno如果其中任何一项适用于您的背景或具有可接受的成本/效益比,但它们对于大多数非常大/复杂的sw项目来说绝对重要。