BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Twitter Diffy通过比较响应结果来判断服务Bug

| 作者 Abel Avram 关注 7 他的粉丝 ,译者 李志 关注 0 他的粉丝 发布于 2015年9月28日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

近日,Twitter开源了Diffy,这是一个自动化测试工具,可用在生产环境中,旨在探测运行在Apache Thrift与其他HTTP服务器上的新代码所产生的潜在Bug

Diffy不像预定义了每个部分代码有着独立的测试集合的单元测试工具,Diffy更像一个函数式测试工具,它针对整体web服务。Diffy充当代理接收HTTP请求,再把请求分发给两套服务,一个良好运行的,另一个是有潜在问题的。然后Diffy收集两者的响应作对比,给出代码的回归测试集。

很显然,有很多可能导致两套服务一定会有微小的差异,包括不同的时间戳、调用随机值生成器或者其他原因。为了避免这些差异引出的误报,Diffy运行了三套服务:两套运行着完全相同的正常版本的代码,另一套运行着全新的代码。除了不确定的噪音(时间戳、随机值等),两台相同实例的响应应该也是完全相同的。当和备用机比较响应的时候,这些不确定的噪音是要忽略的。经过对比找到噪音为何并排除其影响是避免误报的关键。

安全起见,Diffy默认忽略POST、PUT和DELETE操作,但是他们也可以被启用。

Diffy 用Scala编写而成,基于Apache 2.0协议开源,托管在GitHub

查看英文原文:Twitter Diffy Spots Bugs in Services by Comparing the Responses


感谢张龙对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群InfoQ好读者)。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT