A Collaborative Perspective for Blockchain & Testing
Blockchain technology is employed in missioncritical systems with high reliability requirements. Therefore, rigorous testing is essential for the adoption of this technology. Testing techniques that have been used for ensuring the reliability and security of blockchain-based systems include fuzz testing, model-based testing, mutation testing, search-based testing and concolic testing. On the other hand, blockchain technology can be utilized for improving the software and systems testing processes in general. We present a survey on this interplay between blockchain and testing. We categorize studies that apply testing techniques on blockchain-based systems and those studies that benefit from the blockchain technology for improving the testing process. We also propose a reference architecture for utilizing blockchain technology in the context of certification testing.