一句话:提出 EPIcuRus,结合搜索测试、决策树学习与模型检测,自动为软件组件合成环境假设。
软件验证通常要求组件在所有环境下满足需求,但实际组件运行于更大系统中,只需在环境假设约束的输入下满足需求。本文提出 EPIcuRus,融合搜索测试、机器学习和模型检测来自动合成组件环境假设:用决策树从测试用例及其判定结果中推断假设,并通过模型检测验证;同时提出由机器学习反馈引导的 Important Features Boundary Test(IFBT)测试生成技术,提高假设生成效率与效果。在四个工业模型的 18 条需求上评估,EPIcuRus 均能计算出保证需求满足的假设,其中约 78% 可在一小时内完成。
Software verification approaches aim to check a software component under analysis for all possible environments. In reality, however, components are expected to operate within a larger system and are required to satisfy their requirements only when their inputs are constrained by environment assumptions. In this paper, we propose EPIcuRus, an approach to automatically synthesize environment assumptions for a component under analysis (i.e., conditions on the component inputs under which the component is guaranteed to satisfy its requirements). EPIcuRus combines search-based testing, machine learning and model checking. The core of EPIcuRus is a decision tree algorithm that infers environment assumptions from a set of test results including test cases and their verdicts. The test cases are generated using search-based testing, and the assumptions inferred by decision trees are validated through model checking. In order to improve the efficiency and effectiveness of the assumption generation process, we propose a novel test case generation technique, namely Important Features Boundary Test (IFBT), that guides the test generation based on the feedback produced by machine learning. We evaluated EPIcuRus by assessing its effectiveness in computing assumptions on a set of study subjects that include 18 requirements of four industrial models. We show that, for each of the 18 requirements, EPIcuRus was able to compute an assumption to ensure the satisfaction of that requirement, and further, ≈78% of these assumptions were computed in one hour.
@inproceedings{paperbot5774,
title = {Mining assumptions for software components using machine learning},
author = {Khouloud Gaaloul and Claudio Menghi and Shiva Nejati and Lionel C. Briand and David Wolfe},
booktitle = {FSE},
year = {2020},
doi = {10.1145/3368089.3409737}
}