Software testing for peer-to-peer systems: Challenges and the state-of-the-art
Open Access
- 11 February 2025
- journal article
- Published by Sociedade Brasileira de Computação in Journal of Software Engineering Research and Development
- Vol. 13 (1) , 13:73-13:88
Abstract
Peer-to-peer (P2P) systems, characterized by their decentralized architecture, have become crucial to various applications such as file sharing, content distribution, and blockchain technologies. Due to their dynamic and heterogeneous nature, ensuring their reliability and robustness presents challenges. Such an issue has motivated researchers to develop testing techniques for these systems. Despite advances in research about software testing for distributed systems, there is a lack of data about their applicability and which features from P2P systems are highlighted by the proposed testing approaches. This paper provides a comprehensive overview of the state-of-the-art software testing for P2P systems. We systematically examine the inherent challenges and situations. Our findings show that some aspects of P2P systems can make the software testing activity difficult, such as validation of global properties and consensus, peer churn, a large volume of data, malformed data, reproducibility, and non-determinism. Several testing techniques have been used in this context, such as model-based testing, fault injection, fuzzing, stress testing, differential testing, conformance testing, and concurrency testing. We highlight fuzzing for testing malformed data, global properties, parallel events, and model-based testing as a powerful technique to abstract the complexities and varieties of P2P applications during the testing activities. Moreover, blockchain applications are the most addressed P2P application explored by the studies, where most papers were published in 2023, highlighting the theme’s relevance.Keywords
This publication has 54 references indexed in Scilit:
- BFTDiagnosis: An automated security testing framework with malicious behavior injection for BFT protocolsComputer Networks, 2024
- A Testing Framework for Blockchain-Based Energy Trade Microgrids ApplicationsIEEE Access, 2024
- BFT Testing Framework for Flow Blockchain2023
- Dfuntest: A Testing Framework for Distributed Applications2018
- A Map of Threats to Validity of Systematic Literature Reviews in Software Engineering2016
- Model-based testing of global properties on large-scale distributed systemsInformation and Software Technology, 2014
- Peer-to-Peer Systems and Applications2005
- Security Considerations for Peer-to-Peer Distributed Hash Tables2002
- Peer-to-peer networksComputing in Science & Engineering, 2001
- Fault injection techniques and toolsComputer, 1997