Publication Type

Conference Proceeding Article

Version

publishedVersion

Publication Date

6-2020

Abstract

It is crucial that smart contracts are tested thoroughly due to their immutable nature. Even small bugs in smart contracts can lead to huge monetary losses. However, testing is not enough; it is also important to ensure the quality and completeness of the tests. There are already several approaches that tackle this challenge with mutation testing, but their effectiveness is questionable since they only considered small contract samples. Hence, we evaluate the quality of smart contract mutation testing at scale. We choose the most promising of the existing (smart contract specific) mutation operators, analyse their effectiveness in terms of killability and highlight severe vulnerabilities that can be injected with the mutations. Moreover, we improve the existing mutation methods by introducing a novel killing condition that is able to detect a deviation in the gas consumption, i.e., in the monetary value that is required to perform transactions.

Keywords

Mutation testing, Ethereum, Smart contracts, Solidity, Gas limit as a killing criterion, Vulnerability injection, Modifier issues

Discipline

Software Engineering

Publication

Proceedings of the 14th International Conference, TAP 2020, Bergen, Norway, June 22-23

Volume

12165 LNCS

First Page

23

Last Page

42

ISBN

9783030509941

Identifier

10.1007/978-3-030-50995-8_2

Publisher

Springer

City or Country

Cham

Additional URL

https://doi.org/10.1007/978-3-030-50995-8_2

Share

COinS