Introduction to Desired Functionality of Testing IoT Blockchain Systems

In this section we list desired functionality of Testing IoT Blockchain Systems. Specifically, what we believe is the simplest way to delineate progressive levels of increased testing of IoT blockchain systems. These stages, starting at the most easily achievable and becoming progressively more difficult, are: Unit Testing, Simple IoT Device Integration, Multiple IoT Device Integration, Test Driven Development, and Fully Automated Test-Driven Development.

Unit testing of software has become a standard requirement in well developed code. However, contract languages do not always include default unit-testing capability in the language or default build environment. However, the largest implementations for different categories of Blockchain solutions: Ethereum, Bitcoin, and Hyperledger Fabric all provide unit testing functionality, so any solution that does not do so should not be considered production level ready.

Beyond unit testing, the next level of desired testing of ITBAs is integration testing. Integration testing of purely software-based distributed systems provides a unique challenge due to coordination of multiple instances, networking and runtime configuration, etc. ITBAs compound this by requiring not only multiple software instances to be run for integration testing, but also require integration with the IoT component(s) of the system to verify runtime characteristics, hardware and software compatibility, etc. Therefore, we’ve decided to split the stage of testing with IoT devices into two sub-stages: one where integration testing is only done with one device, and then into a second stage where multiple devices are integrated into testing. This division provides a cleaner progression of desirability for analysis of testing progress.

The next level of desired testing ITBA systems is continuous integration. Continuous integration, like unit testing and integration testing, are commonplace in software development now. However, the adoption of these practices is less dependent upon the core blockchain, or even IoT, system being used and more about the support software designed to assist in development of that specific system. Therefore, like unit testing, we suggest considering any system that doesn’t yet provide continuous integration support via support libraries, tools, etc. to be nonproduction level ready.

[ad_2]

This article has been published from the source link without modifications to the text. Only the headline has been changed.

Source link