SEFeb 17, 2021

Automated Test-Case Generation for Solidity Smart Contracts: the AGSolT Approach and its Evaluation

arXiv:2102.08864v41 citations
Originality Incremental advance
AI Analysis

This addresses testing challenges for smart contract developers, but it is incremental as it builds on existing methods like random search and genetic algorithms.

The paper tackles the problem of generating test suites for Solidity smart contracts by presenting AGSolT, which uses random search and genetic algorithms to achieve high branch coverage and discover errors in real-world contracts.

Blockchain and smart contract technology are novel approaches to data and code management that facilitate trusted computing by allowing for development in a distributed and decentralized manner. Testing smart contracts comes with its own set of challenges which have not yet been fully identified and explored. Although existing tools can identify and discover known vulnerabilities and their interactions on the Ethereum blockchain through random search or symbolic execution, these tools generally do not produce test suites suitable for human oracles. In this paper, we present AGSOLT (Automated Generator of Solidity Test Suites). We demonstrate its efficiency by implementing two search algorithms to automatically generate test suites for stand-alone Solidity smart contracts, taking into account some of the blockchain-specific challenges. To test AGSOLT, we compared a random search algorithm and a genetic algorithm on a set of 36 real-world smart contracts. We found that AGSOLT is capable of achieving high branch coverage with both approaches and even discovered some errors in some of the most popular Solidity smart contracts on Github.

Code Implementations1 repo
Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes