SIR是目前软件研究领域非常著名的数据集,大量研究在使用SIR中的标准数据集。例如:
P. A. Nainar and B. Liblit, "Adaptive bug isolation," in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1, Cape Town, South Africa, 2010, pp. 255-264.
R. Santelices and M. J. Harrold, "Exploiting program dependencies for scalable multiple-path symbolic execution," in Proceedings of the 19th international symposium on Software testing and analysis, Trento, Italy, 2010, pp. 195-206.
这两篇论文。这篇博客里就想总结一下怎么样使用SIR中的Java类数据进行实验。
首先,到SIR的官方网站:http://sir.unl.edu/portal/index.php ,需要指出的是,该网站只实行申请注册,并且只对研究人员开放,申请者在申请时需要说明自己的学校、科研项目及后续主要研究计划等。但是申请还是比较简单的,只要稍微认真填写申请表就可以。
申请成功之后在左边导航栏选择:“Download Objects”——在右侧页面选择Java——点击“Display”,在刷新后的页面中可以看到xml-security,点击“all platforms”就可以进行下载。下载后进行解压,可以得到一个非常复杂的文件夹,如下图所示:
这个文件夹常常让人不知所措,不就是一个xml-security吗?怎么会出来这么多文件夹。但是为了伟大的科学研究事业,我们还得耐心慢慢分析。需要指出的是,虽然SIR中提到Java数据集可以适用于任何安装合适版本JVM的系统,但实际上他们提供了很多仅适用于Linux类系统的bash脚本。所以必须在Linux类系统中才能进行实验。
下面我们来具体学习一下怎么在这么多文件夹中怎么进行实验,按照Java Object Directory Specification中的介绍,scripts这个文件夹是“The directory from which experiments are run.” 所以我们就从这个文件夹开始学习。进入到scripts文件夹后,可以看到如图所示的几个文件和文件夹。
其中的README文件详细列出了怎么安装(实际上就是Build)xml-security,以及怎么样驱动实验。我这里简单翻译和总结一下(本文在ubuntu系统上测试,并且已经有JDK,关于怎么在ubuntu系统上安装JDK,可以参考我之前的一篇博文):