Draft your blockchain testing strategy early
Even for small-scale effort, efficient quality assurance does not happen without a game plan. In fact, it could be even more important to avoid wasting effort in a very chaotic manner. You won’t save time by rushing this stage at all.
There is a separate reason why you should be smart about your blockchain testing, one your team may have not encountered in other industries. From elections to trading, blockchain transactions are valued for being transparent and immutable. Any mistake that leads to erroneous entries into the blockchain means a dirty hack or separate functionality to work around incorrect submissions. This extra work hurts smaller projects the most.
Our QA engineer Anton Chadin reminds about another caveat of testing something irreversible:
‘Data is not deleted from the chain either. If your company follows the GDPR, testers need to be careful about which data is stored. In general, you need to be extra cautious about not using sensitive information in tests’.
Luckily, the decades of lessons learned from making testing strategies apply to blockchain as well. Things become even easier if your company already has some high-level test documentation to guide you around general goals and universal practices. If that is the case, you will actually be making a simple test plain and not a testing strategy.
The variety of testing strategies deserves a separate article. We happen to have one right here. Don’t open it unless you would like to find the 6 key types of testing strategies.
Pick your foundation wisely
As you were building testing strategy for blockchain, you certainly realised there are technology-specific user stories that require some extra work before they can be tested. Luckily, the blockchain enthusiasts’ preference for wide availability extends to development and QA solutions as well. Here are a few suggestions:
- Hyperledger Fabric is an application framework designed specifically for bringing business people into development. It provides solid support for automated testing, including unit tests that significantly reduce the actual QA effort.
- Populus is another QA-friendly solution for developing Ethereum-based projects. It enables test automation with Python and mixes smart contract testing with a universal and widespread pytest QA framework.
- Alternatively, Ethereum Tester is a dedicated QA solution that you can use for blockchain projects made elsewhere. It comes with APIs for forking out-of-the-box and even mining if your product happens to have a mineable coin.
The pros and cons here go beyond developers’ and testers’ convenience:
‘The performance of blockchain applications is tied to the performance of individual blockchain components. Your solution will run as fast as the slowest component does. The potential latency that comes from one underperforming piece should be considered for both development and QA’.
When you pick a development environment for blockchain products, remember that your testing is not limited to specialised software. Most of the automated testing can be done with general test automation tools that you may integrate into the project.
Choose the right test management tool
All the tests and the defects that you find with them should be stored somewhere. Powering QA with Excel would be at the very least inconsistent if you’re making a disruptive Web 3.0 solution. You need a separate tool with some street credibility and the flexibility to push new heights.
Generally, the choice comes down to test management tools and application lifecycle management (ALM) solutions. The latter are all-in-one hubs that help you carry out the entire project, from requirements and development to software testing. Why juggle 4 tools (including a separate requirements management tool) when you can use just one?
When picking your solution, one piece of advice would be to think long-term. The ideal candidate should have simple migration to get data in and out. More importantly, it should not be a sealed box that relies on the developer for support. You need to be able to build custom integrations with third-party software yourself.
Integrations-friendly ALM for customised blockchain testing
Incorporate specialised tests
Whether it’s an on-premise or web-based blockchain app, the strategy for testing will require some specialised tests. Both the QA lead and their colleagues will have to do some extra research unless they have done blockchain testing before.
Ultimately, hands-on blockchain testing comes down to block generation and transaction processing. You need to verify that nodes receive data correctly and in chronological order. The blockchain integrity should not be affected by individual nodes temporarily losing connection to the network. Naturally, the blockchain access permissions should be on point to avoid malicious actors ruining your solution.
Blockchain-specific tests should not tempt you to neglect the overall user experience and other functionality. The fact that Samsung has a robust blockchain backend for their NFT store does not mean much to users if the actual marketplace is too messy.
A successful blockchain testing strategy is a mix of three things. You put effort into planning, you respect the specifics of testing a blockchain solution, and you don’t neglect other aspects of your solution. Follow these rules and to the moon you go.
Most flexible ALM for all blockchain-testing needs