“The blockchain is the most important technology since the Internet itself.”
- Marc Andreessen
(1) Introduction to Blockchain
Since the advent of the internet, security has been a concern for both organizations and individuals. Most organizations, and especially financial organizations, fear storing their documents and monetary information on the internet. Individuals hesitate to complete online transaction due to hacking and other security threats. Enter blockchain technology, whose evolution has led to solving these problems. Blockchain is a data structure in which information can be stored, along with some additional information for validations. This technology records every transaction like a ledger and checks its authenticity or relevancy by comparing it to previous transactions. These “blocks” or pieces of information are copied on every node or system in the network. This is called a distributed ledger.
We can define Blockchain as "a distributed cryptographic ledger that enables transactions via digital validation.” The whole process can be understood in three simple steps.
1. Request for Transaction
3. Addition of Blocks
The blockchain process starts with a request from user who wants to complete a transaction. This transaction can be cryptocurrency, records, or other information. The information is then broadcasted over a multi-computer network. These computers are called nodes. These nodes contain information about the existing blockchain of information. Using algorithms, this node checks new information against existing information and provides a go or no-go signal. After the transaction is verified, a new block is added in the existing block of transactions, and its information is copied to all the nodes on the network. As all the nodes now contain their own separate copy of information, there is no need for a centralized governing body, hence the name “distributed ledger.”
(2) Examples of Blockchains
The following terms represent a few popular Blockchains:
- Bitcoin: It’s a decentralized digital currency or cryptocurrency that can be mathematically generated by executing complex number-crunching tasks. The transfer of money is known as a “transaction” and the process of generation is known as “Bitcoin mining.” The transfer of currency is made with the help of a Bitcoin wallet and the appropriate software. The whole process is monitored over the network through Blockchain technology.
- Ethereum: A programmable blockchain, Ethereum is a platform that, unlike Bitcoin, can be programmed by users as they wish. This gives freedom to developers and users alike in regards to different application environments, be they financial transaction, voting counts or any other industry where security is of key importance.
- Keyless Signature Infrastructure (KSI): Guardtime, a cryptographic applications company, has developed a blockchain KSI that uses the concept of digital signatures (unique representation of a transaction) and digital fingerprints (unique representation for group of transactions at a specific time) for validation and verification.
(3) Implications for Testing
The validation of both functional and non-functional requirements should be done for blockchains as with any other application. Functional testing should focus on units, integration, and system testing, while non-functional testing focus should center on security and performance testing. Continuous integration and continuous delivery approaches should be adopted where testing is done several times a day, and a version control system should be used to keep tabs on the updates. Finally, service virtualization should be used to access virtual forms of the required testing stages.
Traditional testing processes are very slow and depend on manual testing scenarios. For blockchain testing, there is a dire need for testing teams to be very innovative and agile. Though organizations have started adopting agile, DevOps, and automation in their test approaches, the effective implementation of these processes and insights is always a challenge.
Blockchain ecosystems update themselves very frequently and require continuous testing so as to amass continuous feedback of business risk within the application. Continuous testing puts emphasis on extreme automation. The following are a few benefits from taking a continuous testing approach:
- Continuous feedback about build or release
- Early testing leads to less time and effort spent finding and fixing defects
- Teams can focus on other tasks, increasing the quality of deliverables.
- Frequent measurements help teams gather data related to metrics that can be used for continuous improvement in the future
The World Quality Report 2016-2017 states that Blockchain and FinTech are accepted across multiple industries. In the hopes of achieving digital transformation and reduced time to market, Quality Assurance (QA) teams have to deliver results within a shorter timeframe and in a more complex technology environment. For accomplishing business objectives, QA and testing teams need to adopt agile, DevOps, and continuous delivery approaches with a special emphasis on mindset about new delivery paradigms. The adoption of these technologies and frameworks is expected to spike in 2017 as a lot of banks, financial institutions, and supply chain giants have started testing Blockchain for their business processes.
- Capgemini Sogeti HP World Quality Report - http://www.worldqualityreport.com
Main Author: Renu Rajani, email@example.com, Vice President, Capgemini Technology Services I P Ltd
Contributing Author: Pulkit Mathur, firstname.lastname@example.org, Solutioning Consultant, Capgemini Technology Services I P Ltd