Affiliation:
1. Kuwait University, Sabah Al-Salem University City, Kuwait
2. University of Houston, Houston, United States of America
Abstract
The ability to create decentralized applications without the authority of a single entity has attracted numerous developers to build applications using blockchain technology. However, ensuring the correctness of such applications poses significant challenges, as it can result in financial losses or, even worse, a loss of user trust. Testing smart contracts introduces a unique set of challenges due to the additional restrictions and costs imposed by blockchain platforms during test case execution. Therefore, it remains uncertain whether testing techniques developed for traditional software can effectively be adapted to smart contracts. In this study, we propose a multi-objective test selection technique for smart contracts that aims to balance three objectives: time, coverage, and gas usage. We evaluated our approach using a comprehensive selection of real-world smart contracts and compared the results with various test selection methods employed in traditional software systems. Statistical analysis of our experiments, which utilized benchmark Solidity smart contract case studies, demonstrates that our approach significantly reduces the testing cost while still maintaining acceptable fault detection capabilities. This is in comparison to random search, mono-objective search, and the traditional re-testing method that does not employ heuristic search.
Reference72 articles.
1. Software testing suite prioritization using multi-criteria fitness function;Ahmed,2012
2. SolAnalyser: a framework for analysing and testing smart contracts;Akca,2019
3. Multi-criteria test cases selection for model transformations;Alkhazi;Automated Software Engineering,2020
4. On the value of quality attributes for refactoring ATL model transformations: a multi-objective approach;Alkhazi;Information and Software Technology,2020
5. Testing smart contracts gets smarter;Andesta,2020