Guiding Automated Test Case Generation for Transaction-Reverting Statements in Smart Contracts

Research output: Chapter in Book/Conference proceedings/Edited volumeConference contributionScientificpeer-review

64 Downloads (Pure)

Abstract

Transaction-reverting statements are key constructs within Solidity that are extensively used for authority and validity checks. Current state-of-the-art search-based testing and fuzzing approaches do not explicitly handle these statements and therefore can not effectively detect security vulnerabilities. In this paper, we argue that it is critical to directly handle and test these statements to assess that they correctly protect the contracts against invalid requests. To this aim, we propose a new approach that improves the search guidance for these transaction-reverting statements based on interprocedural control dependency analysis, in addition to the traditional coverage criteria. We assess the benefits of our approach by performing an empirical study on 100 smart contracts w.r.t. transaction-reverting statement coverage and vulnerability detection capability. Our results show that the proposed approach can improve the performance of DynaMOSA, the state-of-the-art algorithm for test case generation. On average, we improve transaction-reverting statement coverage by 14 % (up to 35 %), line coverage by 8 % (up to 32 %), and vulnerability-detection capability by 17 % (up to 50 %).
Original languageEnglish
Title of host publicationThe 38th IEEE International Conference on Software Maintenance and Evolution (ICSME 2022)
PublisherIEEE
Publication statusAccepted/In press - 11 Jun 2022
Event38th IEEE International Conference on Software Maintenance and Evolution - Limassol, Cyprus
Duration: 3 Oct 20227 Oct 2022
Conference number: 38

Conference

Conference38th IEEE International Conference on Software Maintenance and Evolution
Abbreviated titleICSME 2022
Country/TerritoryCyprus
CityLimassol
Period3/10/227/10/22

Keywords

  • test case generation
  • smart contracts
  • search-based software engineering
  • fuzzing

Fingerprint

Dive into the research topics of 'Guiding Automated Test Case Generation for Transaction-Reverting Statements in Smart Contracts'. Together they form a unique fingerprint.

Cite this