Martin Thwaites在QCon London的演讲总结
Martin Thwaites,honeycomb.io的可观测性布道者、开发者和开发者倡导者,在QCon London的“连接系统:API、协议、可观测性”专题中发表了题为“生产优先——构建微服务的外向内方法”的演讲。
测试的广泛概念
Thwaites探讨了测试的广泛概念,涵盖了从即时反馈的linter到全面的端到端(E2E)测试,再到生产遥测和客户反馈的所有内容。他首先讨论了“从内到外”的测试方法。
测试的不同层次
- Linters:作为第一道防线,实时确保开发者在编写代码时遵循正确的规范。
- 编译器:提供更深入的代码反馈,虽然相对较快,但比linters提供更深入的分析。
- 开发者测试:包括单元测试和集成测试,可能需要几秒钟到几分钟的时间,允许开发者快速评估代码变更的影响。
- E2E测试:涉及多个服务,可能需要几分钟到几小时的时间,评估不同系统组件的协作情况。
- 生产遥测和客户反馈:提供软件在真实环境中的运行情况,反馈机制具有较长的延迟。
测试哲学
Thwaites强调,测试不仅应关注系统的内部组件(如方法、类或单元),还应关注系统不同部分之间的连接点(如API、消息和事件)。他认为,尽管单元测试很重要,但系统的整体功能——不同部分如何连接和协作——更为重要。
测试驱动开发(TDD)
Thwaites的演讲更多是关于测试驱动开发(TDD),即先写测试再写代码。这种方法确保开发与业务或架构需求紧密对齐。TDD强调“外向内”的方法,从需求出发,然后编写测试,最后编写通过这些测试的代码,确保没有冗余代码,保持代码库的简洁高效。
基于生产行为的测试
Thwaites建议测试应尽可能模拟生产环境中的行为,以确保代码和预期行为在真实环境中得到验证,确保软件在部署时能够提供正确的结果。
可观测性
可观测性在理解
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。