When we at B9lab started talking about the idea of an -focused quality assurance course back in 2017, very few projects had engineers who were test specialists.
Of course, you don’t always need a test engineer on your project, as long as you have people on your team who understand the importance of not skimping on test coverage and who all take responsibility for quality. One of the reasons for the amazing resilience of the network is the collective approach to testing and quality. This QA plan for BIP0016 gives us a valuable insight into how ’s core developers work:
But sometimes, even having some of the best and brightest in the world cannot prevent bugs. This fantastic forensic analysis by Jimmy Song of a serious defect which slipped through last year shows the complexity of the task at hand: and underlines why we should all be thinking about these things.
Small software teams who are building applications on top of public blockchains and who want to roll their product out as quickly as possible often do not have the luxury of hiring a dedicated test engineer. In this case, it is important for the entire development team to understand how modern test processes work and why particular best practices are recommended.
Sadly, many software professionals (including some testers themselves) have a very outmoded view of a test engineer’s responsibilities, imagining someone like the quality assurance managers of ten or fifteen years ago, with test plans that ran to scores of pages, and weeks of tedious processes that held up releases until every tiny bug was accounted for. While these processes may still be appropriate for certain industries and use cases, today’s trend for rapid releases aided by automated testing, monitoring in production and ‘dogfooding’ (rolling out a product to market to test it on end users and update it according to feedback) has meant that in many cases, having a test team is sometimes seen as more of a hindrance than a help.
In parallel, the growth of disciplines such as DevOps and TestOps has blurred the boundaries between operations teams and test engineers, to the extent that modern test professionals are usually expected to have experience with continuous integration and release management tools; while the heightened focus on automated tests mean that an ability to write high-quality code is also required.
Testing applications that are deployed on public blockchains such as have their own challenges: where does regulatory compliance overlap with quality? How do you fix a defect that has been deployed as part of an immutable smart contract? How do you predict transaction fees and determine the correct behaviour of your application if transaction fees and network volume increase unexpectedly?
With the direction of the network itself in a state of constant movement and development, it is more important than ever to figure out how to make your dApp futureproof. Carefully evaluating the requirements of a project is something in which your quality specialists should be involved in right from the inception of an idea: it is only by defining the requirements of a project carefully that the team can agree how to test it successfully.
The rising demand for -specialist test engineers shows that this is a sector that is likely to grow exponentially as time goes on.
While this free course contains only a small proportion of the full Quality Assurance Engineer course, we hope that it will provide some thought-provoking content and ideas on how to make the test processes on your project more resilient.
— — — —
Inspired to get learning now? Check out our 100% online, self paced It is fully mentored by Rhian and the B9lab team with an option of an industry recognised certification on the .
Or maybe you’ve already decided to broaden your developer career? Then dive straight into our and become a multi-stack developer with access to all our online courses.
Published at Wed, 15 May 2019 16:36:14 +0000