经验软件工程论文,在ICSE(软件工程国际会议)这样的地方,曾经是很糟糕的。
当然,也有例外,最著名的论文是由Basili、Zelkowitz、Tichy、Berry、Humphrey、Gilb、Boehm、Lehmann、Belady和其他一些人撰写的,他们一直在恐吓社区,说我们的观点和实践需要基于证据而不是信仰。但除了这些案例之外,ICSE的典型实证论文——我看了很多——令人沮丧:我们在公司进行了这些测量,发现了这些结果,请相信我们。后面有问题吗?你能重现我们的结果吗?访问我们的代码?我们很乐意,但不幸的是,我们为一家公司工作——《征文启事》上说欢迎业界投稿,不是吗?-我们不能告诉你细节。抱歉。但相信我们,我们检查过结果了。
事实上,还有另一种实证论文,它没有受到这种保密的影响:大学研究。大家好,我是Bright教授,著名的软件开发Bright方法的作者。每个人都知道这是最好的,但我们想通过严格的实证研究进行科学评估。我把同样的编程问题交给两组三年级的本科生;一组被告知使用布莱特方法,另一组则不使用。你猜怎么着?光明组的表现好了67.94% !我看到会议主席想移到下一位发言者面前;详情见报纸。
多年来,这就是我们所拥有的大部分:无法证实的行业报告和无法令人信服的学生实验。
突然之间,情况发生了变化。经验软件工程研究正如日中天;报纸源源不断,很多都是好报纸!
引发这种根本变化的是开源存储库的可用性。Linux、Eclipse、Apache、EiffelStudio等项目的记录可以追溯到10年、15年甚至20年前。这些记录包含项目的真实历史:提交(到配置管理系统中)、bug报告、bug修复、测试运行及其结果、涉及的开发人员,以及项目数据的更多元素。突然间,实证研究有了任何实证科学所需要的东西:大量的对象来进行分析。
开源项目带来了决定性的冲击,但现在我们也可以依赖工业数据:微软和其他公司已经开始有选择地向研究人员提供他们自己的记录。在作者的作品中,比如来自萨莱布鲁克的泽勒,来自Uni的加尔。苏黎世或微软的纳加潘,系统的统计技术为我们只能推测的问题提供了答案,有时令人惊讶。新手和专家会导致更多的bug吗?测试覆盖率是否与软件质量相关?如果是这样,是积极的还是消极的?一点一点地,我们正在了解软件产品和过程的真正属性,而不是基于幻想,而是基于有意义的样本的定量分析。
这一趋势是不容置疑的,也是不可逆转的。
并非一切都是对的;在这篇文章的第二部分中,我将描述一些经验软件工程需要改进的地方,以达到完全科学的严密性。
没有发现记录