How are Solidity smart contracts tested in open source projects? An exploratory study

被引:3
|
作者
Palechor, Luisa [1 ]
Bezemer, Cor-Paul [1 ]
机构
[1] Univ Alberta, Edmonton, AB, Canada
关键词
Smart contracts; Solidity; testing;
D O I
10.1145/3524481.3527228
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Smart contracts are self-executing programs that are stored on the blockchain. Once a smart contract is compiled and deployed on the blockchain, it cannot be modified. Therefore, having a bug-free smart contract is vital. To ensure a bug-free smart contract, it must be tested thoroughly. However, little is known about how developers test smart contracts in practice. Our study explores 139 open source smart contract projects that are written in Solidity to investigate the state of smart contract testing from three dimensions: (1) the developers working on the tests, (2) the used testing frameworks and testnets and (3) the type of tests that are conducted. We found that mostly core developers of a project are responsible for testing the contracts. Second, developers typically use only functional testing frameworks to test a smart contract, with Truffle being the most popular one. Finally, our results show that functional testing is conducted in most of the studied projects (93%), security testing is only performed in a few projects (9.4%) and traditional performance testing is conducted in none. In addition, we found 34 projects that mentioned or published external audit reports.
引用
收藏
页码:165 / 169
页数:5
相关论文
共 50 条
  • [31] How is Open Source Software Development Different in Popular IoT Projects?
    Corno, Fulvio
    De Russis, Luigi
    Saenz, Juan Pablo
    [J]. IEEE ACCESS, 2020, 8 : 28337 - 28348
  • [32] How Different is Test Case Prioritization for Open and Closed Source Projects?
    Ling, Xiao
    Agrawal, Rishabh
    Menzies, Tim
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2021, 48 (07) : 2526 - 2540
  • [33] Study of Effort Calculation and Estimation in Open Source Projects
    Sone, Hironobu
    Tamura, Yoshinobu
    Yamada, Shigeru
    [J]. INTERNATIONAL JOURNAL OF RELIABILITY QUALITY AND SAFETY ENGINEERING, 2023, 30 (03)
  • [34] How README files are structured in open source Java']Java projects
    Liu, Yuyang
    Noei, Ehsan
    Lyons, Kelly
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2022, 148
  • [35] How Developers Optimize Virtual Reality Applications: A Study of Optimization Commits in Open Source Unity Projects
    Nusrat, Fariha
    Hassan, Foyzul
    Zhong, Hao
    Wang, Xiaoyin
    [J]. 2021 IEEE/ACM 43RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2021), 2021, : 473 - 485
  • [36] A Study on the Establishment of Open Source Website for Open Smart Broadcast Platform
    Kim, Sang Kwon
    Jung, Deokkyu
    Lee, Sang-Yun
    Kim, Sun-Joong
    [J]. 2018 20TH INTERNATIONAL CONFERENCE ON ADVANCED COMMUNICATION TECHNOLOGY (ICACT), 2018, : 567 - 570
  • [37] How Do Open Source Communities Document Software Architecture: An Exploratory Survey
    Ding, Wei
    Liang, Peng
    Tang, Antony
    van Vliet, Hans
    Shahin, Mojtaba
    [J]. 2014 19TH INTERNATIONAL CONFERENCE ON ENGINEERING OF COMPLEX COMPUTER SYSTEMS (ICECCS 2014), 2014, : 136 - 145
  • [38] Release conventions of open-source software: An exploratory study
    Chakroborti, Debasish
    Nath, Sristy Sumana
    Schneider, Kevin A.
    Roy, Chanchal K.
    [J]. JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2023, 35 (01)
  • [39] Mining Handover Process in Open Source Development: An Exploratory Study
    Dong, Liming
    Liu, Bohan
    Li, Zheng
    Xue, Bingbing
    Chen, Danni
    Chen, Tiange
    [J]. 2017 24TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2017), 2017, : 378 - 387
  • [40] How is Logging Practice Implemented in Open Source Software Projects? A Preliminary Exploration
    Rong, Guoping
    Gu, Shenghui
    Zhang, He
    Shao, Dong
    Liu, Wanggen
    [J]. 2018 25TH AUSTRALASIAN SOFTWARE ENGINEERING CONFERENCE (ASWEC), 2018, : 171 - 180