随着时间的推移,MongoDB的功能变得越来越丰富和复杂,开发更复杂的方法来查找bug的需求也在增长。三年前,MongDB在其工具包中添加了一个自制的JavaScript模糊器,现在它是我们最多产的bug查找工具,负责在两个发布周期中检测近200个bug。这些错误跨越了从分片到存储引擎的一系列MongoDB组件,其症状从死锁到数据不一致。模糊器作为持续集成(CI)系统的一部分运行,它经常在新提交的代码中捕获错误。
模糊,或模糊测试,是一种生成技术随机的、意外的和无效的输入到程序以触发未测试的代码路径。Fuzzing最初是在20世纪80年代开发的,从那时起已经证明在确保从文件系统到各种系统的稳定性方面是有效的15分布式集群10浏览器。16随着人们试图使模糊更有效,两种哲学出现了:聪明的模糊和愚蠢的模糊。随着技术的发展,用于实现模糊器的技术被划分为不同的类别,其中最主要的是分代而且突变。1在许多流行的模糊工具中,智能模糊对应于代际技术,而哑模糊对应于突变技术,但这不是一个内在的关系。实际上,在我们MongoDB的案例中,情况正好相反。
没有发现记录