通过标签过滤:测试

重复性能测试:CPU的选择是最好禁用

||性能测试EC2CPU的选择性能分析

为了改善可重复性的工作,MongoDB的性能团队着手噪音减少对多项性能测试套件对EC2188金宝搏手机客户端安卓下载实例中运行。想着我们的假设,实验设置后,我们开始通过记录我们目前的设置数据,发现没有什么特别好的或坏的EC2实例的证据。在接下来的步骤中,我们研究IO,发现EBS情况下,对我们稳定的选项。已经找到了一个非常稳定的表现就盘而言,这第三个也是最后的实验轮流调整CPU与旋钮噪声系统的这部分减少。

重复性能测试:EC2实例是既不好也不坏

||性能分析性能EC2测试

为了改善可重复性的工作,MongoDB的性能团队着手噪音减少对多项性能测试套件对EC2188金宝搏手机客户端安卓下载实例中运行。在项目的开始,现在还不清楚我们在公共云中运行的可重复的性能测试的目标是否是可以实现的。相反辩论基于假设和信念的问题,我们决定噪声测量本身,看看我们是否可以进行配置更改,以尽量减少它。

想着我们的假设,实验设置后,我们开始通过记录我们目前的设置数据。

减少对EC2性能测试中的变化:设置和主要成果

||性能分析性能EC2测试

在MongoD188金宝搏手机客户端安卓下载B的性能团队,我们使用EC2运行日常的系统性能测试。建立一个持续集成系统进行性能测试后,我们意识到有随机变化在我们的平台和系统配置的来源产生很多我们的研究结果的不可再现。从平台的运行变化的运行比变化MongoDB中的表现,我们想捕捉更大。188金宝搏手机客户端安卓下载为了减少这样的变化 - 环境噪音 - 从我们的测试配置中,我们设置了一个项目,测量和控制上,我们运行我们的测试的EC2环境。

测试线性化与杰普森和常青:“打电话给我连续”

||测试CIbuildtogether开源

你怎么用第三方工具来证明你的应用程序缺少一个功能呢?该工具添加到您的持续集成系统(当然增加的功能,后)!在我们的例子中,我们已经添加线性化的读取到的MongoDB 3.4188金宝搏手机客户端安卓下载和使用杰普森对它进行测试。

什么是线性化?

线性化是首先由赫利希&翼在他们的1990年7月本文介绍了分布式系统的属性“线性化:并发对象的正确性条件“(ACM交易的编程语言和系统日志)。彼得Bailis可能提供最方便的解释线性化的:“写入应显示是瞬时的不精确,一旦一个写完成时,所有以后读取(其中,‘后’由挂钟开始时间定义)应该返回写入的值或更高的写入的值。一旦读返回一个特定的值,其随后所有的阅读应该返回值或更高的写入的价值。”

188金宝搏手机客户端安卓下载MongoDB的JavaScript的模糊测试工具:利用浩劫(2/2)

||JavaScript的测试

模糊测试是用于对代码库敌对输入的潮流,以补充测试用例工程师对自己创建的方法。在第一部分这对,我们看了我们的fuzzer的混合性质 - 它是如何结合“智能”和“哑巴”模糊化,以产生输入随机足以挑起的错误,但结构足以通过输入验证和测试有意义codepaths。包裹起来,我将讨论如何从本质上模糊器产生的噪音,而且增强了根本原因分析,我们做的时候发现的fuzzer问题的工具隔离信号。

188金宝搏手机客户端安卓下载MongoDB的JavaScript的模糊测试工具:乱军(1/2)

||JavaScript的测试

由于M188金宝搏手机客户端安卓下载ongoDB中变得功能更加丰富和复杂有时间,我们对更复杂的错误调查方法需要成长为好。我们最近增加了一个自产自销的JavaScript模糊器到我们的工具包,它现在是我们最丰富的bug的发现工具,负责在两个释放周期的过程中发现,几乎200错误。这些错误跨越一个范围的MongoDB部件从分片和存储引188金宝搏手机客户端安卓下载擎,有症状范围从死锁到数据不一致的情况。我们运行的fuzzer的一部分我们的持续集成系统,长青,它经常在捕捉新提交的代码中的错误。

在两个部分中,我们审视我们的fuzzer如何杂交模糊化,以实现更大的覆盖范围比单独方法可以完成的两种主要类型。第二部分将集中在运行在生产设置中的模糊器和蒸馏来自复数输出起毛测试根本原因常常产生的语用。

什么是模糊器?

起毛,或模糊测试,是生成的技术随机的,意外的和无效的输入,以一个程序来触发未经测试的代码路径。模糊测试最初是在20世纪80年代,此后被证明是确保广泛的系统的稳定性是有效的,从文件系统分布式集群浏览器。当人们试图使模糊化更有效,这两种哲学出现了:聪明的,愚蠢的模糊。而作为艺术演变的状态,即用于实现模糊器的技术被划分为类别,其中最主要的是“代”和“突变”。在许多流行的模糊测试工具,智能模糊对应于代技术,又哑模糊到突变技术,但正如我们所看到的,这是不是一种内在的关系。事实上,在我们的情况下,情况恰恰颠倒。

猫 - 追风的克鲁克:如何YAML测试规格提高驾驶员的一致性

||YAML司机测试规格

在Mo188金宝搏手机客户端安卓下载ngoDB中,我们写在十年编程语言的开源数据库驱动程序。我们在我们的社区可帮助开发人员在复制更(以及更奇特的)语言我们的司机的行为。理想的情况是,所有的司机都表现;或者,它们的不同,这些差异都写下来和合理的。我们怎样才能放牧沿着相同的路径所有这些猫?

多年来,我们失败了。在标准化每个错误的开始给我们留下更多的器重。但我们最近获得了在规范我们的司机势头。人类可读的,机器可测试功能,在YAML编码,证明其编码符合并没有。这些YAML测试是猫 - 追风的克鲁克:一种工具来指导我们都在同一个方向。