Wells 在她的主题演讲中,探讨了系统在复杂化和分布式后所发生的变化。对于单体系统而言,虽然可能很难定位实现特定功能的代码位置,但是很容易判别请求在系统中的流转,并且大多数通信是在进程之间的。Wells 认为,分布式系统的复杂性已从系统内部转移到系统之间。
使用微服务可简化代码,但会使基于 http 或队列实现的路由复杂化。Wells 支持在路由上可能会出现更多的问题。用户常常会收到一些表示请求失败的瞬态错误,这些错误会在重复数秒后变为成功。她认为明智的做法建立一种补偿和重试机制,但采用这种做法意味着用户更难以完全掌控发生在响应请求中的情况。
Wells 建议用户使用基于风险的方法,让测试工作聚焦于那些真正重要的事情上。她提出,用户需要能够快速确定发生错误的时间,尽快修复错误,并且必须要建立具备观测出错位置能力的系统。
Wells 提到,对于复杂分布式系统的测试,用户需在尽早发现问题和尽早交付价值间取得平衡。其实,一些问题直到系统投入生产后才能被发现,进而做出优化以快速识别和修复这些问题,她认为用户最好能接受这一点。
InfoQ 报道全程覆盖2019欧洲测试大会。在Sarah Wells主题演讲后,InfoQ 就复杂分布式系统的测试问题对她做了一次专访。
InfoQ:您对于复杂分布式系统的测试有哪些建议?
InfoQ:监控和日志如何支持测试?甚至它们将如何替代测试?
InfoQ:在出现错误时,测试人员的作用是什么?他们的价值何在?
查看英文原文: Testing Complex Distributed Systems