Become an Ethereum QA Engineer
in four months or less
Start your Ethereum QA journey today with expert support and guidance
This course guides you towards becoming an accomplished Ethereum QA Engineer
This comprehensive, online course has been developed to meet the growing need for blockchain-focused QA Engineers. The course provides hands-on examples of this type of rigorous exploratory testing and explains how to set up different test environments in order to do it.
A project built on the Ethereum blockchain may look identical to a normal, centralised application or API. But the differences are so great that the whole quality assurance process needs to be approached in a completely different way, requiring the QA engineer to dig deep into the code and conceptualise ways of pushing the underlying smart contracts to their limits with different data inputs and variations in network conditions and transaction fees.
You will learn to specify acceptance criteria that can later be used as the basis for automating your acceptance tests, with quizzes, screencasts and exercises to test your understanding of the requirements. Test automation is a critical part of the QA process. You will learn about the most common test libraries and how to run your suite in a continuous integration environment.
What you will get
A comprehensive course packed with real world examples, videos, animations, quizzes, projects and practice exercises
Support from expert instructors for 4 months to help you succeed through all stages of the training
Code review to help you progress from novice to expert with a sound understanding of best practices
Timely feedback to keep you moving forward
Access to the community of learners and experts - exchanging experiences, asking questions & getting answers, discussing technical questions
A blockchain based certificate when you pass the final exam
How it works
Is this course for me?
- This course is designed for test automation engineers or developers with over one year's experience working in the field.
- Recommended experience:It is a prerequsisit of the course that you have either compantelted the B9lab Ethereum Developer course, or an equivalent programme. You need to know how to write a simple smart contract and run a local Ethereum node.
- Requirements: A computer with at least 8 GB RAM and 50GB free hard-disk space.
- Workload:You can take this course at your own pace or in a cohort with other participants. There is roughly 50-60 hours of materials, quizzes and projects (plus extra reading suggestions for areas that really grip you).
- If you take the course as part of a cohort, expect to spend 6-8 hours a week for 6 weeks. The examination project should also take you a minimum of 24 hours.
Get started today
Take your career to the next level
Everything you need to know to become an accumplished Ethereum QA Engineer in 4 months or less.
The role of the tester. Testing ethics. Test environments
Why we need dedicated testers on blockchain projects. Role of the modern tester and how it applies to blockchain.
For applications where data is immutable and millions of dollars (and potentially lives) are at stake, a strong ethical stance is important, and this should be part of quality assurance for the product. How far can we replicate the live network with local nodes and testnets? Evaluating how and when to test.
- Examples of smart contract bugs
- How might these have been mitigated?
- The modern test engineer - an evolving career
- Shifting left in software development
- When would you use a mock (JSONRPC), a local node, the testnet, the live network?
- Recap of smart contract deployment, with a look at boundary testing inputs
- Testing to minimise gas fees
Acceptance criteria and requirements
In a ‘shift left’ development environment, the QA engineer should be an integral part of the team who develops the user stories and requirements. How do these differ from the requirements in a non-blockchain project? And how can we write even the most Agile test plans in a world that is rapidly evolving?
We take a deep dive into writing BDD scenarios that can be later used for acceptance tests, and take a qualitative overview of how the user interface reflects what is happening in the blockchain. Manually testing smart contracts using exploratory and session-based techniques is covered here.
- Behaviour-driven development
- Deriving scenarios from user stories
- Working with non-technical product owners
- Is blockchain tech the right solution?
- Consequences of immutability
- UI and messaging - highlighting immutability to end user
- Handling latency - how much is acceptable
- User-generated data - testing at the boundary
- Testing combinations of data, caller and value
- Test planning
Automation testing, static analysis and tooling
Many of the tools we use for automated testing in a blockchain context are familiar, others less so. Automated tests are critical to the success of a project.
Here we cover the most popular options and write our own test contracts and functional tests, both with and without using a framework. This is important because while Truffle provides a clean room each time the tests are run (so the tests do not share state with each other), we need to ensure we do this ourselves if we are not using a framework.
- Testing using Remix
- Compiler warnings
- Overview of static analysis tools
- How state works in Ethereum
- Continuous integration
- Solidity test contracts
- Automated tests for Truffle
- Automated tests for contract without framework
- Automated checks for gas costs
Test techniques, monitoring in Production, nonfunctional requirements
How do some of the more popular test techniques relate to developing blockchain applications? We look at effectively running sessions and conducting risk-based testing. Nonfunctional requirements are often ignored, but this is dangerous.
With public blockchains, gas costs add a new dimension to NFRs that need to be taken into account. How can we test our business model against fluctuating gas costs? When using a public blockchain, events such as forks can force a need for monitoring in production to ensure the resilience of our app. We cover tools and techniques that can be used to do this, and finish with a roundup of some of the most popular bug bounty programs that are around at the moment.
- Session-based testing
- Risk-based testing
- Security audits
- Performance testing
- Monitoring gas cost
- Forks and replay attacks
- Regulatory requirements
- Bug bounty programs
Projects & Exercises
Your final project will be to find and report all the bugs in a fictional application, and to provide automated acceptance tests for it. And at the end of the course, we'll be sure to suggest links to some of the best bug bounty programs around, so you can hone your newly developed blockchain QA engineer skills.
You have full-time access to our team of instructors. When you hit a snag or have a question, you can just message them. You also join a wide community of students, who exchange experiences and learn from each other.
Guidance throughout courses
Learn by doing
Our courses feature coding projects. Our mentors will go through your projects and provide feedback and code review.
Final graded project
Meet Your Instructors
What sets B9lab blockchain courses apart from your typical online MOOC or YouTube channel is that you get one-on-one support and mentoring from expert instructors, who will actually review your code and help you refine it. These are veterans of the decentralized tech community, and some pretty cool people who want to help you become a blockchain professional!
Rhian Lewis is a freelance software engineer specialising in test automation who has worked on projects for some of the world's best-known brands since 2009. She has been deeply involved in the cryptocurrency and blockchain community since 2013, as the co-developer of altcoin portfolio tracker CountMyCrypto and the co-host of London Women in Bitcoin.
Xavier is a software and infrastructure engineer. In the past 17 years, he has coded, deployed, customised, troubleshot, and supported various software systems. He has also guided, educated, taught, and coached customers across Asia. He has been a keen member of the blockchain community since early 2013.
Ibo is a software engineer and entrepreneur with extensive experience in native desktop, web and mobile application development. He has worked on 3D Virtual and Augmented Reality projects and has a knack for embedded systems. He has been delivering software projects since 2006, and has been instrumental in building and maintaining all of our courses.