Specific testing solutions targeting blockchain-based software are gaining huge attention as blockchain technologies are being increasingly incorporated into enterprise systems. As blockchain-based software enters production systems, it is paramount to follow proper engineering practices, ensure the required level of testing, and assess the readiness of the developed system. The existing research aims at addressing the testing-related issues and challenges of engineering blockchain-based software by providing suitable techniques and tools. However, like any emerging discipline, the best practices and tools for testing blockchain-based systems are not yet sufficiently developed. In this paper, we provide a comprehensive survey on the testing of Blockchain-based Applications (BC-Apps). First, we provide a discussion on identified challenges that are associated with BCApp testing. Second, we use a layered approach to discuss the state-of-the-art testing efforts in the area of BC technologies. In particular, we present an overview of the existing testing tools and techniques that provide testing solutions either for different components at various layers of the BC-App stack or across the whole stack. Third, we provide a set of future research directions based on the identified BC testing challenges and gaps in the literature review of existing testing solutions for BC-Apps. Moreover, we reflect on the specificity of BC-based software development procedure, which makes some of the existing tools or techniques inadequate, and call for the definition of standardised testing procedures and techniques for BC-Apps. The aim of our study is to highlight the importance of BC-based software testing and to pave the way for disciplined, testable, and verifiable BC software development.
翻译:以供应链为基础的软件的具体测试解决方案正在引起人们的极大关注,因为以供应链为基础的软件正在越来越多地纳入企业系统。随着以供应链为基础的软件进入生产系统,至关重要的是要遵循适当的工程做法,确保所需的测试水平,并评估发达系统的准备状态。现有研究的目的是通过提供适当的技术和工具,解决与测试有关的问题和基于供应链的工程软件的挑战。然而,与任何新出现的纪律一样,测试以供应链为基础的系统的最佳做法和工具尚未得到充分开发。在本文件中,我们提供了关于基于链的应用程序(BC-Apps)测试的全面调查。首先,我们讨论了与BCApp测试相关的已确定的挑战。第二,我们采用分层方法,讨论与BC技术领域最先进的测试努力和挑战。我们概述了现有的测试工具和技术,为BC-App堆的不同层次或整个堆中的不同组成部分提供测试解决方案。我们根据已查明的BC测试挑战和差距提供了一套未来研究方向。在BCA测试中,为我们现有标准测试标准测试标准测试程序,为BC软件测试现有标准测试程序,为BC标准测试我们现有标准测试程序提供现有标准测试方法。