SuMo: A Mutation Testing Strategy for Solidity Smart Contracts

by   Morena Barboni, et al.

Smart Contracts are software programs that are deployed and executed within a blockchain infrastructure. Due to their immutable nature, directly resulting from the specific characteristics of the deploying infrastructure, smart contracts must be thoroughly tested before their release. Testing is one of the main activities that can help to improve the reliability of a smart contract, so as to possibly prevent considerable loss of valuable assets. It is therefore important to provide the testers with tools that permit them to assess the activity they performed. Mutation testing is a powerful approach for assessing the fault-detection capability of a test suite. In this paper, we propose SuMo, a novel mutation testing tool for Ethereum Smart Contracts. SuMo implements a set of 44 mutation operators that were designed starting from the latest Solidity documentation, and from well-known mutation testing tools. These allow to simulate a wide variety of faults that can be made by smart contract developers. The set of operators was designed to limit the generation of stillborn mutants, which slow down the mutation testing process and limit the usability of the tool. We report a first evaluation of SuMo on open-source projects for which test suites were available. The results we got are encouraging, and they suggest that SuMo can effectively help developers to deliver more reliable smart contracts.


Testing Smart Contracts Gets Smarter

Smart contracts are immutable, verifiable, and autonomous pieces of code...

Mutation Testing for Ethereum Smart Contract

Smart contract is a special program that manages digital assets on block...

Gas limit aware mutation testing of smart contracts at scale

The blockchain is a key technology that has been adopted in many applica...

Smart Contract Upgradeability on the Ethereum Blockchain Platform: An Exploratory Study

Context: Smart contracts are computerized self-executing contracts that ...

Descartes: A PITest Engine to Detect Pseudo-Tested Methods - Tool Demonstration

Descartes is a tool that implements extreme mutation operators and aims ...

Keeping Mutation Test Suites Consistent and Relevant with Long-Standing Mutants

Mutation testing has been demonstrated to be one of the most powerful fa...

Contract-based Methodology for Developing Resilient Cyber-Infrastructure in the Industry 4.0 Era

As the industrial cyber-infrastructure become increasingly important to ...

Please sign up or login with your details

Forgot password? Click here to reset