2015-07-03 24 views
0

假设我有一堆单元测试,集成测试和覆盖我的应用程序的e2e测试。对这些产品持续运行是否有意义,例如每10分钟?当测试生产环境持续有意义

我在想,不,原因是这样的: 我的测试已经在每次产品部署之后运行。如果他们通过并且之后没有代码改变,他们应该继续通过。所以之后测试它们是没有意义的。

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

+0

在代码更改与监视基础结构完全不同的情况下,我会保存测试。即使你的代码几周没有变化,你也应该在一定的时间间隔内监控基础设施的正常运行时间 – Marged

+0

我已经设置了类似的东西。对于监控速度快且有用的测试用标签“BVT” - 构建验证测试进行标记。在部署期间首先运行BVT(如果出现问题,请更快地进行反馈),然后执行其余测试。 BVT也可以定期完成以监控应用程序。 – Brendan

回答

0

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

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

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

有2个生产过程属性可以从更多精确的监测(以及哪个子集/快捷方式验证将不适合):

  • 可靠性/稳定性 - 类型,occurence率和间歇性故障的根本原因(是的,那些讨厌的惊喜这可能使会议的发布日期或不之间的差异)
  • 性能 - 的平均/各种验证的最小/最大持续时间;尤其重要的是,如果验证在所涉及的持续时间/资源方面昂贵;趋势可能希望用于规划,预算,生产的ETA等

唐诺如果上述任何适用于或有你的情况下可接受的成本/效益比,但他们绝对是最非常大/复杂的SW项目重要。

相关问题