智能合约的有效针对性测试
软件工程
2024-07-08 v1
摘要
智能合约是部署在区块链网络上运行的自主且不可变的代码。它们最初由以太坊于 2014 年引入,此后被用于各种应用,如安全通证、投票、赌博、非货币化代币、自主身份、库存管理、去中心化金融、去中心化交易所和原子交换。由于智能合约不可变,其 bug 无法被修复,这可能导致重大经济损失。尽管许多研究人员致力于测试智能合约,但我们最近的工作突显了测试充分性与测试数据生成之间的差距,尽管在两个领域都有众多努力。我们的框架 Griffin 通过生成测试数据的有针对性符号执行来解决这一不足。该工具可用于各种应用,如在突变测试中消灭存活的突变体、验证静态分析警报、为安全条件创建反例、以及到达手动选择的代码行。本文讨论了智能合约在有针对性的符号执行方面的不同之处,以及这些差异如何影响工具结构,导致我们提出一种用于 Solidity 智能合约的增强型控制流图(CFG+)。我们还讨论了 Griffin 如何利用自定义启发式方法在合理的执行时间内寻找能够到达目标代码行且考虑安全条件的测试数据。我们对大量智能合约、目标代码行和基于真实故障和相关工具测试套件的安全条件进行了实验。我们的评估结果表明,Griffin 能够在合理的时间范围内有效地识别所需的测试数据。
引用
@article{arxiv.2407.04250,
title = {Effective Targeted Testing of Smart Contracts},
author = {Mahdi Fooladgar and Fathiyeh Faghih},
journal= {arXiv preprint arXiv:2407.04250},
year = {2024}
}