软件测试策略:从端到端测试到生产后验证
1. 端到端测试的困境与解决思路
端到端测试在涉及一两个服务时,对许多用户来说仍具有可管理性且有一定价值。然而,当服务数量增加到 3 个、4 个甚至更多时,测试套件会迅速变得臃肿,测试场景可能呈笛卡尔式爆炸增长。若为每个新增功能都添加新的端到端测试,会导致测试套件膨胀、反馈周期变差以及测试覆盖范围大量重叠。
解决这一问题的最佳方法是聚焦于少量核心流程进行系统测试。对于核心流程未覆盖的功能,可通过独立分析服务的测试来覆盖。例如在音乐商店场景中,可聚焦于订购 CD、退货或创建新客户等少量高价值交互。
2. 消费者驱动测试(CDC)的崛起
使用集成测试时,我们的关键目标之一是确保新服务部署到生产环境时不会破坏消费者。消费者驱动合同(CDC)为此提供了一种无需针对真实消费者进行测试的解决方案。
CDC 定义了消费者对服务(或生产者)的期望,并以代码形式编写为测试,在生产者的持续集成(CI)构建中运行。若违反合同,服务将无法部署。与端到端测试相比,CDC 只需针对单个生产者进行测试,速度更快、更可靠。
以客户服务场景为例,客户服务有两个消费者:帮助台和网店。为每个消费者创建一套测试,由生产者和消费者团队协作完成。CDC 可在模拟下游依赖的情况下对客户服务进行测试,其在测试金字塔中的层级与服务测试相同,但侧重点不同。若 CDC 在构建过程中失败,能明确受影响的消费者,此时可修复问题或讨论引入重大变更。
3. Pact 工具介绍
Pact 是一个消费者驱动的测试工具,最初由 RealEstate.com.au 内部开发,现已开源。它最初仅支持 Ru
超级会员免费看
订阅专栏 解锁全文
4168

被折叠的 条评论
为什么被折叠?



