Analysis on Mutation Testing Tools for Smart Contracts

Analysis on Mutation Testing Tools for Smart Contracts

© 2022 by IJETT Journal
Volume-70 Issue-9
Year of Publication : 2022
Authors : R. Sujeetha, C. A. S. Deiva Preetha
DOI : 10.14445/22315381/IJETT-V70I9P228

How to Cite?

R. Sujeetha, C. A. S. Deiva Preetha, "Analysis on Mutation Testing Tools for Smart Contracts" International Journal of Engineering Trends and Technology, vol. 70, no. 9, pp. 280-289, 2022. Crossref,

Smart contracts are codes for executing transactions over the blockchain. Smart contracts play a major role in executing the transactions, which are immutable in nature, and avoid third-party involvement in transactions. Smart contracts are developed in many languages. One of the most popular languages is solidity. This paper focuses on smart contracts written using solidity. Smart contracts are vulnerable and have faced huge losses like with DAO attacks. Smart contracts require exhaustive testing to avoid such loss. Testing is to be qualified; hence mutation testing is the right choice. Mutation testing for smart contracts focuses on vulnerability detection by inserting faults in the code. Also qualifies the test suite executed against a smart contract. The pros and cons of various tools available for this purpose are discussed in this paper. Finally suggested improving the tools to perform the mutation analysis of smart contracts better.

Mutation Operators, Smart Contract, Solidity.

[1] Munawar, H, “Mutation Testing Tool For Java,” 2004.
[2] Jefferson Offutt, Jie Pan, Kanupriya Tewary, Tong Zhang, “An Experimental Evaluation of Data Flowand MutationTesting,” Software—Practice& Experience, vol. 26, no.2, pp.165-176,1996.
[3] Patrick Joseph Walsh, “A Measure of Test Case Completeness (Software, Engineering),” Ph.D. Dissertation. State University of New York at Binghamton,Binghamton,NY,USA, 1985.
[4] J.H.Andrews,L.C.Briand,Y.Labiche andA.S.Namin, “UsingMutationAnalysisforAssessingandComparing Testing Coverage Criteria,” In IEEE Transactions on Software Engineering, vol. 32, no. 8, pp. 608-624, 2006, doi: 10.1109/TSE.2006.83.
[5] Zhu Q, Panichella A, Zaidman A, “A systematic literature review of how mutation testing supports test activities,” PEERJ Preprints 4:e2483v1, 2016.
[6] R.A.DeMillo,R.J.Lipton,andF.G.Sayward, “Hintsontestdataselection:Helpforthepracticingprogrammer,” Computer,no.4,pp. 34–41,1978.
[7] P. Mathur and W. E. Wong, “An empirical comparison of data flow and mutation-based test adequacy criteria,” Software Testing, Verification and Reliability, vol. 4, no. 1, pp. 9–31, 1994.
[8] P. G. Frankl, S. N. Weiss, and C. Hu, “All-uses VS mutation testing: an experimental comparison of effectiveness,” Journal of Systems and Software, vol. 38, no. 3, pp. 235–253, 1997.
[9] N. Li, U. Praphamontripong, and J. Offutt, “An experimental comparison of four unit test criteria: Mutation, edge-pair, all-uses and prime path coverage,” in Software Testing, Verification and Validation Workshops, 2009. ICSTW’09. International Conference on, pp. 220–229, IEEE, 2009.
[10] Siami Namin, J. Andrews and D. Murdoch, "Sufficient mutation operators for measuring test effectiveness," 2008 ACM/IEEE 30th International Conference on Software Engineering, 2008, pp. 351- 360. doi: 10.1145/1368088.1368136.
[11] R. Just, G. M. Kapfhammer and F. Schweiggert, "Using Non-redundant Mutation Operators and Test Suite Prioritization to Achieve Efficient and Scalable Mutation Analysis," 2012 IEEE 23rd International Symposium on Software Reliability Engineering, 2012, pp. 11-20. doi: 10.1109/ISSRE.2012.31.
[12] Falah, B., Akour, M., & Bouriat, S, “RSM: Reducing Mutation Testing Cost Using Random Selective Mutation Technique,” Malaysian Journal of Computer Science, vol.28, no.4, pp.338–347, 2015. Retrieved from
[13] Maryam Umar, “An Evaluation of Mutation Operators for Equivalent Mutants,” Master Thesis. King’s Colledge, London, United Kingdom. Advisor Mark Harman, 2006.
[14] Hong Zhu, Patrick A. V. Hall, and John H. R. May, “Software unit test coverage and adequacy,” ACM Computer Survey, vol. 29, no.4, pp. 366-427, 1997.
[15] Moohebat, M., Raj, R.G., Kareem, S.B.A., Thorleuchter, D., “Identifying ISI-indexed articles by theirlexical usage: A text analysis approach,” Journal of the Association for Information Science and Technology, vol. 66, no. 3, pp. 501–511. doi: 10.1002/asi.23194.
[16] M. Sahinoglu and E. H. Spafford, “A Bayes Sequential Statistical Procedure for Approving SoftwareProducts,” In Proceedings of the IFIP Conference on Approving Software Products (ASP’90). Garmisch Partenkirchen, Germany: Elsevier Science, pp. 43–56, 1990.
[17] A.J. Offutt, and R.H. Untch, “Mutation 2000: Uniting the Orthogonal‖, Mutation Testing for the New Century,” W.E. Wong (Ed.) Kluwer, 2001.
[18] Z. Li, H. Wu, J. Xu, X. Wang, L. Zhang and Z. Chen, “MuSC: A Tool for Mutation Testing of EthereumSmart Contract,” 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), pp. 1198-1201, 2019. doi: 10.1109/ASE.2019.00136.
[19] Y.Ivanova A.Khritankov, “Regular Mutator: A Mutation Testing Tool for Solidity Smart Contracts”, Science Direct, Procedia Computer Science, vol.178, pp.75-83, 2020.
[20] M. Barboni, A. Morichetta and A. Polini, "SuMo: A Mutation Testing Strategy for Solidity Smart Contracts," 2021 IEEE/ACM International Conference on Automation of Software Test (AST), pp. 50-59, doi: 10.1109/AST52587.2021.00014.
[21] P. Chapman, D. Xu, L. Deng and Y. Xiong, "Deviant: A Mutation Testing Tool for Solidity Smart Contracts," 2019 IEEE International Conference on Blockchain (Blockchain), pp. 319-324, 2019. doi: 10.1109/Blockchain.2019.00050.
[22] Honig J.J., Everts M.H., Huisman M, “Practical Mutation Testing for Smart Contracts,” In: Pérez-Solà C., Navarro-Arribas G., Biryukov A., Garcia-Alfaro J. (eds) Data Privacy Management, Cryptocurrencies and Blockchain Technology. DPM 2019, CBT 2019. Lecture Notes in Computer Science,vol.11737, 2019. Springer, Cham.
[23] M. Barboni, A. Morichetta and A. Polini, "Smart Contract Testing: Challenges and Opportunities," 2022 IEEE/ACM 5th International Workshop on Emerging Trends in Software Engineering for Blockchain (WETSEB), pp. 21-24, 2022. doi: 10.1145/3528226.3528370.
[24] Qinghua Lu, Xiwei Xu, Yue Liu, and Weishan Zhang, “Design pattern as a service for blockchain applications,” In IEEE International Conference on Data Mining Workshops (ICDMW). IEEE, 128–135.
[25] Vijay Rajasekar, Shiv Sondhi, Sherif Saad, and Shady Mohammed, “Emerging Design Patterns for Blockchain Applications,” In ICSOFT. ScitePress, 242–249.
[26] Xiwei Xu, Cesare Pautasso, Liming Zhu, Qinghua Lu, and Ingo Weber, “A pattern collection for blockchain-based applications,” In Proceedings of the 23rd European Conference on Pattern Languages of Programs, pp. 1–20.
[27] Lodovica Marchesi, Michele Marchesi, Livio Pompianu, and Roberto Tonelli, “Security checklists for ethereum smart contract development: patterns and best practices,” arXiv preprint arXiv:2008.04761.
[28] Weiqin Zou, David Lo, Pavneet Singh Kochhar, Xuan-Bach D Le, Xin Xia, Yang Feng, Zhenyu Chen, and Baowen Xu, “ Smart contract development: Challenges and opportunities,” IEEE Transactions on Software Engineering.
[29] G. Petrović, M. Ivanković, G. Fraser and R. Just, "Does Mutation Testing Improve Testing Practices?," 2021 IEEE/ACM 43rd International Conference on Software Engineering (ICSE), pp. 910-921, 2021. doi: 10.1109/ICSE43902.2021.00087.