测试积点老人 发表于 2023-4-17 14:45:15

浅谈可观测性是否取代了测试?

测试是验证系统正确性的最佳方案。但是,它不能预测生产中可能发生的故障情况。经验丰富的工程团队会告诉我们,生产环境并不统一,并且充满了令人激动的偏差。
  有趣的事实是,在生产环境中进行测试可帮助测试实时用户流量上的代码更改,及早发现错误,并提供可提高客户满意度的强大解决方案。但是,它不能帮助检测故障的根本原因(RootCause)。
  这就是为什么在测试中采用可观测性至关重要的原因。它提供基础架构和生产内部的全栈可见性,以更快地检测和解决问题。
  因此,使用可观测性的人检测到任何问题的可能性要高2.1倍,并报告将MTTR提高69%。
  一、缺乏可观测性的症状
  没有适当可观测性的迹象每天都出现在工程师的工作中。
  当生产出现问题(每天都在发生)时,开发人员试图找到问题原因的尝试通常会碰壁,工单会卡在Jira中。发生这种情况是因为他们没有足够的信息和细节来找出根本原因。
  为了克服这些挑战,开发人员有时会使用现有日志,这不是很有帮助,因为他们必须使用Notepad++一次访问一个服务的日志并手动搜索它们。这让开发人员感到沮丧,并使公司难以清楚地向客户展示如何以及何时解决关键问题,这可能会随着时间的推移损害公司的声誉。
  二、可观测性:它到底意味着什么?
  对于测试人员来说,拥有适当的可观测性意味着能够知道系统内发生了什么。这些信息对测试人员非常有价值。尽管可观测性通常与可靠性工程相关联,但它可以帮助测试人员更好地理解和研究复杂系统。这允许测试人员及其团队在更大程度上提高系统的质量,例如安全性、可靠性和性能。
  我通过一次具有挑战性的经历发现了这个问题。许多其他人可能也有类似的经历。在检查产品时,我很难理解产品的复杂性,这对测试人员来说很常见。
  当我试图通过阅读产品说明并与相关人员交谈来了解产品时,我注意到我收集的信息没有意义。当时,我不熟悉这个技术术语,但事后看来,很明显该系统缺乏可观测性。几乎不可能知道应用程序内部发生了什么。
  测试侧重于确定特定功能是否按预期执行,而可观测性侧重于系统的整体运行状况。因此,当作为一个整体时,它们描绘了系统的完整画面。
  传统的软件测试,即在预生产或暂存环境中进行测试,侧重于验证系统的正确性。但是,在生产环境中运行服务之前,将无法涵盖和预测可能发生的每个故障。
  生产测试可帮助发现系统的所有可能故障情况,从而提供服务的可靠性和稳定性。
  借助可观测性,可以深入了解基础架构和生产环境。此外,还可以通过遥测数据(TelemetryData)(例如日志、指标和跟踪)预测生产环境中的故障。
  生产环境中的可观测性可帮助向客户提供可靠的产品。
  三、可观测性真的取代了测试吗?
  从测试人员的角度来看,真正可观测的系统可以提供的详细程度是无可替代的。尽管在实际层面上,可观测性有三个支柱——日志(系统内发生的事件的记录)、指标(反映系统内某些特定行为的值)和跟踪(系统内某物如何移动的低级记录)——它也不仅仅是这三个元素。软件工程师CindySridharan在《分布式系统可观测性》中写道,“这不是关于日志、指标或跟踪,而是关于在调试期间数据驱动,并使用反馈来迭代和改进产品”。换句话说,要做好可观测性,不仅需要有效的指标、结构良好的日志和广泛的跟踪,你还需要一种好奇、探索和渴望学习的心态,以及可以使所有这些事情变得有意义和有影响力的过程。
  这使得测试人员和可观测性成为天然的盟友。毕竟,测试是关于询问有关系统或应用程序的问题,对某些东西如何工作感到好奇,或者通常对某些东西应该如何工作感到好奇;可观测性在很大程度上与所有这些事情有关。那么,太多的测试人员不知道可观测性,这太糟糕了——这不仅会帮助他们更有效地完成工作,而且他们也正是软件开发生命周期中那种可以宣传构建可观测系统的人。
  为了简单起见,我们应该通过两种关键方式将可观测性视为对测试人员的帮助:
  1.它可以帮助测试人员发现有关系统问题的精细化的详细信息:在探索性测试期间,可观测性可以帮助测试人员通过遥测数据(如日志、跟踪和指标)找到任何问题的根本原因,从而帮助各个团队之间更好地协作并提供更快的事件解决。
  2.它可以帮助测试人员提出问题并探索系统:测试人员很好奇,喜欢探索新事物。借助可观测性工具,他们可以深入探索系统并发现问题。它可以帮助他们发现有价值的信息,帮助他们在测试时做出明智的决定。
  四、结论
  测试和可观测性齐头并进,确保系统的稳健性和可靠性。传统测试侧重于在预生产环境中验证系统的正确性,而生产环境中的测试可以发现所有可能的故障情况。
  另一方面,可观测性提供了对基础架构和生产环境的全栈可见性,有助于更快地检测和解决问题。此外,可观测性可帮助测试人员发现有关系统问题的精细细节,并使他们能够提出问题并更深入地探索系统。
  测试人员和可观测性是天然的盟友,采用可观测性可以带来更好的事件解决、明智的测试决策和更高的客户满意度。

页: [1]
查看完整版本: 浅谈可观测性是否取代了测试?