Why This Matters

Blockchain-based IoT applications face unique testing challenges: inability to repeat tests identically, reliance on public mining with delays, and difficulty testing network failure scenarios. Existing approaches lack systematic methodologies for testing these systems. The chapter addresses these gaps through domain-specific languages and testing frameworks that enable reproducible testing of blockchain IoT applications.

What We Did

This book chapter discusses best practices for testing blockchain-based IoT applications at scale. The work covers PlatTIBART, a platform for transactive IoT blockchain applications, and describes design patterns, domain-specific languages, and tools for developing, deploying, and testing blockchain systems with fault tolerance.

Key Results

The paper presents PlatTIBART platform with a DSL for defining blockchain network deployments and an Observer pattern-based framework for fault tolerance. The work demonstrates practical testing methodologies for blockchain systems and IoT applications, enabling developers to validate applications before production deployment.

Full Abstract

Cite This Paper

@inbook{Walker2019,
  author = {Walker, Michael A. and Schmidt, Douglas C. and Dubey, Abhishek},
  pages = {155--179},
  publisher = {Oreilly},
  title = {Chapter Six - Testing at scale of IoT blockchain applications},
  year = {2019},
  volume = {115},
  abstract = {Abstract Due to the ever-increasing adaptation of Blockchain technologies in the private, public, and business domains, both the use of Distributed Systems and the increased demand for their reliability has exploded recently, especially with their desired integration with Internet-of-Things devices. This has resulted in a lot of work being done in the fields of distributed system analysis and design, specifically in the areas of blockchain smart contract design and formal verification. However, the focus on formal verification methodologies has meant that less attention has been given toward more traditional testing methodologies, such as unit testing and integration testing. This includes a lack of full support by most, if not all, the major blockchain implementations for testing at scale, except on fully public test networks. This has several drawbacks, such as: (1) The inability to do repeatable testing under identical scenarios, (2) reliance upon public mining of blocks, which introduces unreasonable amounts of delay for a test driven development scenario that a private network could reduce or eliminate, and (3) the inability to design scenarios where parts of the network go down. In this chapter we discuss design, testing methodologies, and tools to allow Testing at Scale of IoT Blockchain Applications.},
  bibsource = {dblp computer science bibliography, https://dblp.org},
  biburl = {https://dblp.org/rec/bib/journals/ac/WalkerSD19},
  booktitle = {Advances in Computers},
  contribution = {colab},
  doi = {10.1016/bs.adcom.2019.07.008},
  file = {:Walker2019-Chapter_Six_Testing_at_Scale_of_IoT_Blockchain_Applications.pdf:PDF},
  keywords = {blockchain testing, IoT applications, fault tolerance, testing at scale, domain-specific languages},
  project = {cps-blockchains},
  tag = {decentralization},
  timestamp = {Tue, 12 Nov 2019 00:00:00 +0100},
  url = {https://doi.org/10.1016/bs.adcom.2019.07.008}
}
Quick Info
Year 2019
Keywords
blockchain testing IoT applications fault tolerance testing at scale domain-specific languages
Research Areas
energy scalable AI
Search Tags

Chapter, Testing, scale, blockchain, applications, blockchain testing, IoT applications, fault tolerance, testing at scale, domain-specific languages, energy, scalable AI, 2019, Walker, Schmidt, Dubey