实验的重现(Replication)是指在相似条件下重复实验过程,例如只改变实验主体。该方法有助于研究人员确定实验结果的置信度。如果随机性假设是正确的,也就是说实验主体是总体的典型性代表,那么在该总体内重复实验应该得到与之前实验相同的结果。如果无法得到相同的结果,说明在实验设计中没能考虑所有会影响结果的因素。即便能度量某个变量或重复实验,19也可能很困难或成本很高。
重现有多种类型[89, 155]:
准确重现(Close Replication):尽可能准确地遵循原实验规程,该类型有时也称为精确重现(Exact Replication)[155]。
差异重现(Differentiated Replication):指使用不同的实验规程来研究相同的研究问题,在实验中研究人员会有意地改变一个或多个主要条件。
Basili等人[20]提出了一个更细粒度的分类:
严格重现(Strict Replications)(与准确和精确重现同义);
变更研究中变量的实验重现;
变更研究关注点中变量的实验重现;
变更实验环境中的上下文变量的实验重现;
变更实验运行方式的实验重现;
扩展理论的实验重现。
其他研究领域也使用了许多不同的分类标准[64],且这些研究领域间不存在标准化术语。同样,在软件工程领域也没形成标准术语。上文中给出准确和差异重现划分是对软件工程领域中实验重现的首次分类。
准确重现的优点是已知因素保持受控状态,从而可以保证输出结果的置信度。然而,有些准确重现需要相同的研究人员来进行,因为实验规程中的一些隐性知识很难被记录并文档化[153, 154]。另一方面,准确重现中实验者的主观偏见也是一个潜在风险[95]。此外,有人质疑在软件工程研究领域是否存在真正的准确重现,因为在软件工程复杂的实验配置中,很多因素都可能发生变化[89]。
另一方面,差异重现更多地在探索型研究中使用。如果能很好地记录和分析各因素和实现设置的差异,那么就可以通过重复研究获取更多的知识。在差异重现中要考虑和记录的因素包括:
执行实验的地点;
执行实验的实验者;
实验的设计方案;
实验工具,即表或其他材料;
被度量的变量;
执行实验的主体。
第8章将详细讨论这些因素。
争议的出现是针对重现最初的假设,而不是针对特定的实验设计[123],也就是说相对于准确重现,更支持差异重现。