一句话:通过系统性执行扰动与完美判定,发现软件常在扰动下仍保持输出正确,并将此现象命名为正确性吸引。
本文探讨软件执行受到扰动时输出是否仍能保持正确。作者设计了一套实验协议,对十个目标程序的扰动空间进行系统探索,并使用完美判定器(perfect oracles)判断输出正确性。实验中观察到大量扰动并不会破坏正确性,作者将这一现象称为“正确性吸引”。该协议的特点在于同时覆盖系统化扰动探索与精确正确性判定,使其关于软件在扰动下稳定性的结论具有此前稀缺相关工作未曾达到的有效性。最后,作者通过人工定性分析,建立了首个解释正确性吸引成因的分类体系。
Can the execution of software be perturbed without breaking the correctness of the output? In this paper, we devise a protocol to answer this question from a novel perspective. In an experimental study, we observe that many perturbations do not break the correctness in ten subject programs. We call this phenomenon "correctness attraction". The uniqueness of this protocol is that it considers a systematic exploration of the perturbation space as well as perfect oracles to determine the correctness of the output. To this extent, our findings on the stability of software under execution perturbations have a level of validity that has never been reported before in the scarce related work. A qualitative manual analysis enables us to set up the first taxonomy ever of the reasons behind correctness attraction.
DOI 原文 ·
@inproceedings{paperbot4498,
title = {Correctness attraction},
author = {Benjamin Danglot and Philippe Preux and Benoit Baudry and Martin Monperrus},
booktitle = {ICSE},
year = {2018},
doi = {10.1145/3180155.3182548}
}