Do QA Engineers Need to Learn to Code?
If you follow my blog, you may have noticed that I have been posting about Web Development. You may ask, why are there development posts on a QA blog? But that questions leads to a bigger question, do QA engineers need to learn to code? The short answer to that question is, absolutely yes!
But why? The answer to why falls under the following categories:
- Everyone is a Developer
- Better Tests
Note this post contains affiliate links. It doesn’t cost you anything extra to use these links, but it helps to support this blog.
Everyone is a Developer
Think of the typical makeup of skilled people on your development team. Typically you will have at minimum developers, QA engineers, and business analysts. In the days of waterfall development, the work was all role based. The developers wrote code. The QA engineer did the testing. The business analysts did the requirements and documentation. This is no longer the case with agile development.
In agile everyone is a developer. Or at the very minimum, everyone on the team is a cross-functional member who can do multiple jobs. This doesn’t mean that a QA engineer is going to pick up a task where they have to code an API. But the QA engineer could pick up a unit testing task that typically would fall on the developer’s plate.
How does knowing how to code give you the ability to have better tests? Let’s say for example you are supposed to test the engine of a car. If you have no idea how an engine works you might have two tests.
- Test if the engine starts when you turn on the car.
- Test if the engine stops when you turn off the car.
However, if you knew how an engine worked internally then you may have these additional tests… some of which are very bad ideas, so don’t try it at home.
- Test what happens when a spark plug gap is set to big
- Test what happens when there is no oil
- Test what happens when you put water in the gas tank
The QA engineer testing this car knew how things worked internally in that engine, so they tested for the worst case scenario. The engine wouldn’t survive these tests, but the QA knew that already. On the other hand, software shouldn’t grind to a halt if I throw something bad at it. Being able to understand how the code works underneath will allow you to push the application further.
The final reason why a QA engineer needs to learn to code is automation. There are tools out there that allow you to “record and playback” a test, but those are going to be very limited. To do test automation right you need to know how to code. You need to be able to understand a programming language or two so that you can write, debug, and maintain your tests.
So where do you go from here? Where do you start? In future posts, I will help you to answer these questions so that you can say “I’m a QA engineer and I can code”. Also, see the resources below if you want to start learning to code today.
Want to learn to code today?