Blockchain technology testing
Blockchain technology became more mainstream a couple of years ago. However, not a lot of testers have the experience of working on a crypto wallet project. This morning we had a chat with one of our manual testers in order to get a closer look at the software application testing process on a cryptocurrency project.
What is a crypto wallet?
Like any other project, blockchain technology has its own testing specifications that we can’t leave aside when discussing the development process. Here is a short intro on the basic terms that’ll help you have a better understanding of our discussion.
● A block is a piece of code that contains the transactions. Every time a transaction is made, a different block or cryptocurrency (i.e., bitcoin) address is generated.
● A blockchain is a continuously growing chain of such addresses stored in a number of nodes that form a network.
● These transactions are made using cryptocurrencies – digital money, with no existing physical equivalent.
● Bitcoin is such a payment method and is currently the most popular currency.
How does a crypto wallet work?
Simply put, it works like an account or a portfolio of bitcoin addresses that grant transaction anonymity while allowing businesses to manage their transactions easily. The main purpose is to simplify the use of cryptocurrencies.
With this in mind, the web application was developed with similar functionality to internet banking.
Being an app for business transactions, each business will own an account where multiple groups can be created (with different permissions and attributes), going from administrators to lower categories.
How does software application testing go on a blockchain project?
In a nutshell, a software tester is in charge of running tests for the transaction process, testing payments components, security testing, etc. There are four environments: development, load testing, staging, and production, our manual QA has access to the first two.
Working with the development team authorizes our QA’s access to the project’s blockchain, which is internal, and for now, using a fake currency.
Load testing determines the capacity of the systems that interact with the blockchain.
Since the execution of bitcoin transactions can increase the QA costs, a test currency is employed for the testers to experiment without any charging fees.
What is the testing environment?
The working teams are composed of two manual testers each, who organize their work mainly around releases, instead of sprints, the time periods for each release not being so exact. They write test cases, adapt them to the testing plan, and document the process.
Writing test cases happens mostly before the implementation of the new features. After a call with the business analysts and product managers, the product story needs to be reviewed, and, finally, the test cases are written. Now, the product manager can see the reviewed version of the story and oversee the QA process from the beginning, with all the issues being addressed on time.
Therefore, test cases are based on the specifics that need to be implemented. For example, our QA tester mentioned the implementation of different currency exchanges in the app, where the test plan created was constructed around this particular feature.
In case of bugs found outside of the written cases, the procedure can vary, and consulting the team is necessary.
What about new releases?
In the case of new releases, the features stay the same. If something seems to be malfunctioning, the process goes this way: new bugs are created and fixed, a release candidate is made, and the final release happens only when the production is impeccable.