Articles & E-Books


Why You Need System Testing and Model Validation for Blockchain-Based Smart Contracts

Apr 10, 2019

Blockchain has many interesting applications beyond cryptocurrency. One of the most exciting is how the technology is making smart contracts possible.

Smart contracts are contracts that have the terms of an agreement between two parties written into lines of code, allowing the contract to self-execute. Because it uses blockchain to do so, and blockchain is an immutable ledger, the contracts enable trustworthy, transparent and irreversible transactions between parties. Essentially, the smart contract facilitates and enforces a contract and its performance.

For example, in the construction industry, smart contracts could include all the information about a construction project, with agreements between each contractor about what work they’re going to perform and when they’re going to perform it written into the smart contract. By tracking the project with its terms in place, the smart contract can do things like distribute payment for work completed and flag uncompleted work or delays.

System Testing and Model Validation

In order to make smart contracts a reality, there must be a level of system testing and model validation. System testing and model validation has been around for as long as software has existed. However, since blockchain is more than just software, it still is even more important and prudent for these systems to go through this process. 

System testing involves gathering all the details available on things like how the software and business processes were designed, what the system’s requirements were to begin with, what the problem being addressed is and what the low-level design of the system is, etc. You should consider as many business scenarios as possible, test the output and verify that the system is producing results like it should be. 

There are four components to system testing and model validation:

1. Conceptual Design Testing and Validation

As we said, blockchain is more than just software. It’s also business process design that pieces together how different parties should interact with each other. One has to test how the blockchain is hosted and operated, what transactions will be included on it and who should have access to the ledger, and those users must agree that the information included is the right information.

During the software development phase, it is recommended that a third party should come in to verify what is the right data to capture and what is the right way to capture it. 

2. System Validation

Blockchain is supposed to be a system that lends itself to automation — that’s how the smart contract can self-execute. However, the system needs to be tested by a third party before it goes into production. If you want to run a system that multiple parties are using as a ledger, or as one source of truth, you need the system to be certified — meaning that someone authorized should say, yes, this system works well and does what you want it to.

3. Data Validation and Quality Assessment

Blockchain can’t exist in isolation, so you need systems to capture the data and ensure that the right data goes into the blockchain. This means how you capture data needs to be tested, too. Are your models taking the right data in? Are they constructed to consider all aspects of a business scenario? Do they take the right positions the way they’re supposed to?

Professionals in data validation and quality assessment consider a number of scenarios and input different data into the system to ensure it’s recorded and processed in the model. 

4. Process Validation

When multiple parties come together to design the blockchain, you have to run the system in parallel production before it actually goes into production. Essentially, it’s a pilot phase that runs the system with the right kind of data to make sure it’s working properly. You wouldn’t want to board an airplane that hadn’t been tested — and it’s the same idea with using blockchain for your contracts. 

Mitigating Blockchain Risks

Blockchain is such a new and evolving technology that many businesses are striving to learn how it is applicable in their overall ecosystem. But you really have to consider the risks and test against those risks. Traditional contracts rely on systems that have been developed over centuries, where many people have tested the laws and systems around them. But blockchain is so new that you cannot simply replace contracts with an automated computer program from the get go. You have to start with conceptual design.

The chances of missing something when implementing a smart contract are high, and that’s what makes utilizing a third party — especially one with experience with system testing and model validation — so valuable. 

As more and more companies invest in blockchain, we likely can expect governments to impose certain regulations. For example, the government of Malta passed a bill in 2018 setting up a regulatory framework to encourage foreign tech companies to come to the country and invest in blockchain innovation. If your business was in Malta, you would need to utilize a firm certified by Malta to perform system testing and model validation for you. The U.S. and other countries may follow suit as blockchain becomes more and more developed. 

As a credible auditor and CPA firm with an experienced technology consulting arm, Wipfli has performed system testing and model validation for many clients. If you have questions about what this process entails or would like to learn more about blockchain and smart contracts, contact Wipfli.