云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港服务器_无极数据库_最新活动

小七 141 0

数据库sql_国内_云数据库怎么用

任何开发人员都面临的一个挑战是找到一个小的测试用例来重现用户报告的缺陷。这往往说起来容易做起来难:当缺陷最初在解析由20000行嵌套调用$(eval)组成的makefile时出现时,淘客放单,将感兴趣的行与无关的行分开似乎是徒劳的练习。谢天谢地,你不必一个人去做。加州大学伯克利分校的一些聪明人编写了一个叫做delta的工具来帮助解决这个问题。在这篇文章中,我将向您展示如何使用delta从其他棘手的输入中提取有用的测试用例。这个例子当然涉及makefile,但是这个工具和技术对于开发人员和QA工程师来说都很有用菲尔德。什么德尔塔有吗?Delta通过迭代地对输入进行分区,然后测试每个分区是否产生所需的行为,从而隔离输入文件的感兴趣部分。如果有任何分区这样做,其他分区可以被丢弃。经过无数次这样的循环,微信返利机器人安全吗,无趣的废话就被消除了,只剩下一个输入文件,其中只包含原稿中真正需要的部分。从概念上讲,它类似于对输入进行二进制搜索,尽管它比这更聪明,因为它处理的是在输入。使用减少测试用例的增量——开始作业(3.80)编译美食酒吧使用标志-fbase-ffoo---FINISH job将其与使用gmake时的输出进行比较3.81:---开始作业(3.81)编译美食酒吧对于flags-fbase-ffoo-fbar---FINISH-job,我强调了不同之处,以便更容易看到:用于构建目标的标志有改变了。那个下一步是编写一个shell脚本,它将告诉delta makefile的给定排列是否产生我们想要的行为。从技术上讲,淘客cms,您可以使用任何类型的程序,只要它符合delta的惯例,即如果输入是"有趣的"则返回零,否则返回非零;shell脚本只是一种简单的方法。这是我为这个例子写的脚本:#!/bin/sh如果gmake-3.80 | fgrep"flags-fbase-ffoo">/dev/null;那么如果gmake-3.81 | fgrep"flags-fbase-ffoo-fbar">/dev/null;那么exit 0 fi-exit 1脚本运行gmake 3.80和gmake 3.81,检查每个标志的输出,以验证是否打印了这些标志以及它们是否具有预期值。我给剧本起了名字支票.sh并使用chmod使其可执行,然后运行它一次,以确保它确实按预期返回零:$/支票.sh$echo$?0如果尚未下载,请下载delta(。焦油gz)把它打开。Delta本身是一个Perl脚本,行业云,所以请确保安装了Perl。现在我们准备好了去吧,三角洲将在适当的位置修改输入文件,因此请确保先保存一个备份副本,然后运行delta,告诉它检查脚本的名称和要最小化的输入文件:$cp Makefile生成文件.orig$delta-in_place-test=/支票.shMakefileThis将产生大量输出,如下所示:成功,行数:1851*************gmake-3.80:**`美食酒吧'. 停下来。在0 1之后增加0之前的粒度生成文件:3:***命令在第一个目标之前开始。停。。。一般来说,您可以忽略此输出,但为了更好地了解delta正在做什么,值得一看。输出日志告诉您delta尝试的分区,表示为原始输入的行范围。第一个测试是对完整输入进行的;下一个delta将文件分成两个部分,并尝试每一半,然后。您可以看到,有时这些分区会导致一个完全损坏的makefile——语法错误、缺少规则等等。Delta并不关心——它只需要知道分区是否"有趣",根据我们的支票.sh脚本。进一步查看输出,您可以看到随着delta发现相关的原始输入的范围,测试生成文件是如何变得越来越小的。最终,它以这样的试验结束,表明它已经从原始输入的第3-7行、第93-96行、第198-202行等构建了一个makefile。最后,买云服务器,delta到达了一个不能进一步减少输入的点——如果它删除更多的内容,生成的makefile就不再有趣了:无法增加粒度;我们已经完成了。在我的笔记本电脑上的日志delta done中有一个成功运行的日志,delta花了大约2秒钟的时间将原始makefile(由近2000行文本组成)裁剪成一个15行的makefile。也不是破旧的。取决于根据你的情况,你可能会发现三角洲停滞不前。它的优点也是它的弱点:它根本不知道域。它不理解makefile的语法或者其他任何你可能会用到的东西,所以有时候它会遇到死胡同。你也许可以通过将你自己的领域知识应用到这个问题上来帮助它。也就是说,一旦delta对输入进行了第一次破解,您就可以自己查看一下,看看是否有方法可以手动简化输入。在处理makefile时,这可能意味着要执行诸如内联makefile includes或展平嵌套变量定义之类的操作。手动调整输入之后,您可以再次将其反馈到delta中圆形三角形delta delta,它可以帮助你帮助你帮助你帮助yaI已经用delta自己好几次帮助从看似棘手的makefile中提取简单的测试用例。它并不完美,但它在我的工具箱里赢得了一席之地。希望你能给它找个地方放进去你的。更新:已更改示例生成文件的URL。