@lsmn
2018-03-13T07:02:18.000000Z
字数 1933
阅读 1793
测试
持续交付
可观测性
可观测性让你完整地看到系统当前的健康状况,可以取代某些类型的测试。对于低风险的应用程序,如果具备持续交付流程,能够提供快速反馈,可以快速发布变更,则可以依赖可观测性,而不是测试。
可观测性让你完整地看到系统当前的健康状况,可以取代某些类型的测试。对于低风险的应用程序,如果具备持续交付流程,能够提供快速反馈,可以快速发布变更,则可以依赖可观测性,而不是测试。
在QCon 2018伦敦大会上,Moo工程部经理Amy Phillips谈了测试可观测性。InfoQ正以Q&A、演讲、综述、文章的形式对此次大会进行跟踪报道。
InfoQ采访了Phillips,内容涉及测试自愈系统、可观测性以及测试未来将怎么发展。
InfoQ:持续交付(CD)对测试有什么影响?
Amy Phillips:持续交付重在快速反馈,这使得自动化测试在发布通道中得到了更广泛的应用。虽然这不是推动变革的唯一途径,但事实已经证明,它在鼓励团队设计有效的发布流程方面发挥了极大的作用,而这个流程就涉及执行什么测试、什么时候执行有效。
通常,使用持续交付的团队做的测试并不少,但他们会更有意识地进行本地测试和生产测试。特性切换的使用可以帮助他们把测试从自动化发布通道转移到生产环境。
关于持续交付,其中一个最引人注意的方面是其在开发人员中的受欢迎程度。测试是成功的持续交付不可或缺的组成部分,它使得真正的跨职能团队能够一起构建、测试和发布软件。
InfoQ:自愈系统的测试面临什么挑战?
Phillips:测试自愈系统面临的挑战并不比测试其他系统多很多。我们仍然需要测试应用程序是否可以“正常运行”,但是,我们还需要小心,不要假定基础设施在测试过程中一直保持不变。
在测试或调试时,其中一个困难是间歇性问题,我们知道这些问题会出现,但是无法识别或跟踪。自愈系统会加重这个问题,因为它会处理导致这个缺陷的底层问题,而不需要任何人的干涉。
测试人员应该对应用程序平台有一个很好的了解,平台团队应该对正在执行的测试有一个很好的了解。通过协作以及使用可观测性技术,可以减少或消除这方面的挑战。
InfoQ:可观测性如何帮助我们确保系统可以正常运行?
Phillips:测试会设法收集系统信息,但是,鉴于可观测性可以让你完整地看到系统当前的健康状况,所以,它经常会变成“它运行正常吗”的复选框任务。它们一起提供了一个内容丰富许多的视图,告诉你系统究竟正在做什么。
有一次,我测试一个Web系统,这个系统里保存着供应商的详细信息以及他们特有的受多个因素影响的购买率。这个系统是增量构建的,测试贯穿整个过程。
一天,有个人注意到,其中有个供应商的购买率严重错误。在检查日志及重新测试计算过程后,我们得出结论,有人无意间修改了值,以防万一,我们添加了更多的日志。
几周之后,同样的事情发生了,但是另一个供应商。这次,我们有足够的日志证明,那不是一次错误的编辑。事实上,那个供应商几个月都没编辑过了。同上次一样,值是错的,但我们不知道为什么。我们添加了更多的日志。
最终,在我们添加了足够多的日志之后,这个问题出现了。结果证明,这是由MySQL“反常”导致从数据库检索出了错误的数值。
我们的构建和测试全都在关注“这是正确的东西吗?”当我们得到的返回是“否”的时候,我们需要很长的时间来调试。在这种情况下,除测试之外,把注意力放在可观测性上可以为我们提供帮助。
InfoQ:可观测性会取代测试吗?
Phillips:我认为,可观测性已经取代了某些类型的测试。很长一段时间以来,监控已经被视为取代测试一切的合适方案。如果你知道出了什么问题,并且具备很好的发布通道,让你可以快速地发布变更,那么对于低风险的应用程序,非常适合依赖于可观测性,而不是测试。
在构建系统时,考虑“我们的构建正确吗?”以及“在它不正常时我们如何知道?”这样的问题,可以提供不同的系统健康状况视角,减少问题的出现,降低问题的影响。
InfoQ:您预计测试未来会怎样发展?
Phillips:不同的系统有不同的需求,但通常,我认为,测试正在进入一个有着更多合作的空间。过去,我们习惯于测试人员和开发人员一起工作,但是现在,我们也开始看到测试人员加入Ops工程的价值。
现在,任何时候,创造性地设想风险并设计有用的场景仍然是每个测试人员的关键技能。我希望我们可以看到更多的团队不再把测试看成一项系统构建完成后只发生一次的复选框活动。
感兴趣的读者可以在大会网站上查看有关Amy Phillips QCon伦敦演讲“测试可观测性”的其他信息。