一句话:提出 MoFuzz,用图语法与覆盖引导变异为模型驱动工程工具生成良构模型进行模糊测试。
模糊测试可发现程序异常,但用于模型驱动软件工程(MDSE)工具时,难以生成符合元模型及建模框架类型与一致性约束的结构化良型模型。本文结合模糊测试与自动模型生成,提出三种面向 MDSE 工具的模糊测试方法:一个基于图语法的 fuzzer,以及两个采用不同模型变异算子的覆盖引导变异 fuzzer。作者在真实 MDSE 工具上评估,表明它们在模糊测试能力上优于标准 fuzzer 和模型生成器;不同方法在故障发现与覆盖系统不同方面各有优劣,因而互补,可组成 MDSE 工具测试的 fuzzer 套件。
Fuzzing or fuzz testing is an established technique that aims to discover unexpected program behavior (e.g., bugs, security vulnerabilities, or crashes) by feeding automatically generated data into a program under test. However, the application of fuzzing to test Model-Driven Software Engineering (MDSE) tools is still limited because of the difficulty of existing fuzzers to provide structured, well-typed inputs, namely models that conform to typing and consistency constraints induced by a given meta-model and underlying modeling framework. By drawing from recent advances on both fuzz testing and automated model generation, we present three different approaches for fuzzing MDSE tools: A graph grammar-based fuzzer and two variants of a coverage-guided mutation-based fuzzer working with different sets of model mutation operators. Our evaluation on a set of real-world MDSE tools shows that our approaches can outperform both standard fuzzers and model generators w.r.t. their fuzzing capabilities. Moreover, we found that each of our approaches comes with its own strengths and weaknesses in terms of fault finding capabilities and the ability to cover different aspects of the system under test. Thus the approaches complement each other, forming a fuzzer suite for testing MDSE tools.
DOI 原文 ·
@inproceedings{paperbot5982,
title = {MoFuzz},
author = {Hoang Lam Nguyen and Nebras Nassar and Timo Kehrer and Lars Grunske},
booktitle = {ASE},
year = {2020},
doi = {10.1145/3324884.3416668}
}