中文

ADF-GA:基于数据流准则的以太坊智能合约测试用例生成

软件工程 2020-03-03 v1

摘要

测试是提升以太坊智能合约程序质量的重要技术。然而,当前关于智能合约测试的工作仅关注其静态问题,面向智能合约程序动态测试的数据流导向测试用例生成方法仍然缺失。为解决该问题,本文提出一种新颖的测试用例生成方法 ADF-GA(基于全使用数据流准则并利用遗传算法的测试用例生成),面向基于 Solidity 的以太坊智能合约程序。ADF-GA 旨在通过三个阶段高效生成一组有效测试用例。首先,由源代码构建相应的程序控制流图。其次,分析所生成的控制流图以获取 Solidity 程序中的变量信息、定位 require 语句,并得到待测试的定义-使用对。最后,使用遗传算法生成测试用例,其中提出了一种改进的适应度函数,借助程序插桩计算每个测试用例的定义-使用对覆盖率。在多个代表性 Solidity 程序上进行了实验研究。结果表明,ADF-GA 能有效生成测试用例,取得更好的覆盖率,并减少遗传算法中的迭代次数。

关键词

引用

@article{arxiv.2003.00257,
  title  = {ADF-GA: Data Flow Criterion Based Test Case Generation for Ethereum Smart Contracts},
  author = {Pengcheng Zhang and Jianan Yu and Shunhui Ji},
  journal= {arXiv preprint arXiv:2003.00257},
  year   = {2020}
}