InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

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

  • 2015-09-27
  • 本文字数:621 字

    阅读完需:约 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 读者交流群)。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2015-09-27 19:002253

评论

发布
暂无评论
发现更多内容

2021技术展望|开源十年,WebRTC 的现状与未来

声网

开源 WebRTC 2021年展望 RTE 2021技术

inotifywait+rsync实现目录监听及同步

慢慢de

Docker rsync inotify 目录监听同步

NA公链NAC公链真正的100%史诗级匿名去中心化应用

区块链第一资讯

EGG NETWORK公链阿凡提以“完全开放式自治”的唯一标准搭建New-DeFi链上生态EFTalk

币圈那点事

智汇华云 | 看“新基建”如何将机房里的“老家伙”物尽其用

华云数据

谁说没学历就进不了大厂?(双非渣硕四年crud经验已拿下阿里P6)面经分享

Java 编程 程序员 架构 面试

mPaaS 月度小报 | CodeHub#4 在线教育应用的开发实践;香港站正式开服上线

蚂蚁集团移动开发平台 mPaaS

移动开发 mPaaS

ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?

阿里云基础软件团队

火爆全网!万字精华总结“银四Java复习笔记”(共计22个技术专题)

比伯

Java 架构 面试 程序人生 计算机

如何实现屏幕共享时的多人实时标注?

拍乐云Pano

windows Electron RTC

云智一体 AI开发模式打造电力行业的智慧化范本

百度大脑

云计算 智能云

源中瑞区块链BaaS平台--一键部署区块链应用

13530558032

集客业务支撑领域标准化产品套件“火麒麟”的配置化能力提升之路

鲸品堂

产品 解决方案 运营商

爱好历史的程序员,不容错过!

不脱发的程序猿

程序员 程序人生 4月日更 全历史

Javascript执行机制-事件循环

Sakura

4月日更

想快速重构智慧园区5A系统,这份方案推荐给你

华为云开发者联盟

系统 智慧园区 HDC.Cloud 2021 端边云协同架构 南向系统

事务隔离级别实战学习

U2647

事务隔离级别 事务 4月日更

在多人音视频聊天中插入现场直播

anyRTC开发者

android 大前端 音视频 WebRTC RTC

2021 技术展望 | 实时互动场景下,音频的技术变迁与机遇

声网

音视频 RTC 2021年展望 RTE 2021技术

知乎转载超30W次!金三Java面经汇总:拼多多(三面)/蚂蚁金服(四面)/字节跳动(二面)

Java架构追梦

Java 面试 拼多多面经 蚂蚁金服面经 字节跳动面经

国人开源的运维监控系统——WGCLOUD

王逅逅

开源 运维 Grafana Prometheus zabbix

2021 技术展望 | AV1 在 RTC 应用实践中的现状与展望

声网

RTC 2021年展望 RTE 2021技术

读《小岛经济学》

箭上有毒

4月日更

2021 技术展望 | 2021,5G 将会倒逼传输协议、算法做出更多改进

声网

5G RTC 2021年展望 RTE 2021技术

hashmap遍历,关于网络优化你必须要知道的重点,Android岗

欢喜学安卓

android 程序员 面试 移动开发

信息爆炸时代,如何更好地处理工作信息

LigaAI

程序员 产品经理 研发管理 信息处理

Python OpenCV 图片模糊操作 blur 与 medianBlur

梦想橡皮擦

Python OpenCV 4月日更

2021 技术展望 | 走向未来的实时生成技术

声网

RTC 2021年展望 RTE 2021技术

2021 技术展望 | 弱网下的极限实时视频通信

声网

RTC 2021年展望 RTE 2021技术

c 语言思维地基搭建(总概论)

-jf.

4月日更

android适配方案,Kafka是如何实现高性能的?全套教学资料

欢喜学安卓

android 程序员 面试 移动开发

  • 扫码添加小助手
    领取最新资料包
Twitter Diffy通过比较响应结果来判断服务Bug_软件工程_Abel Avram_InfoQ精选文章