In the past, a person who tested applications did not need to know how to program because it was the role of a developer. It was always enough to test manually when the application was ready, considering the reality of a traditional process. However, in the age of agile, a QA must have programming skills.
In this article, you will understand why having coding skills will make you a better-quality professional; you will understand the advantages that these skills will provide you in your day to day, and will know how can you begin learning programming skills and test automation 👨💻
Before we start
I want to start this article by telling you two important things:
Firstly, and the most important one is that if you have any doubts about the importance of programming to your QA career, just remember that knowledge is never too much 📚 Learning to program will not be a bad thing for your career, in fact, you get many advantages and benefits by knowing how to program.
The second important thing to say is that you do not have to worry about being a professional in software development or about having the same level as a developer, you need to at least have basic programming skills and be able to create code that can help in your day-to-day work ✅
Main advantages of learning programming skills
Learning programming will give you some knowledge regarding how to build software and how software is run by a computer. You will also learn about how data is represented and stored; about flow controls, decision points, loops, branches, and stuff; and this gives us the ability to understand how errors can be inserted into a system. As we learn about how systems work, we will gain insights into how they may not work ❌
One of the main activities that a QA does is to write test scenarios, and then automate and execute them, but where do the ideas for writing the test scenarios come from? Part of it comes from a systematic way, through testing techniques, part comes from an empirical way, through the knowledge and experience of the QA. Programming knowledge expands our technical experience, allowing you to have more insights and ideas for identifying what to test.
In addition to understanding how systems work, having programming skills lets us understand how difficult programming can be and what obstacles can be found in the development of functionality. This makes us humbler, generating more empathy and respect for developers. Empathy and respect are essential characteristics for a good QA.
Benefits for your daily activities 💪
There are uncounted benefits to a QA who knows to program. In this section, I want to highlight some day-to-day activities of a QA, which are better and more easily performed when the QA knows how to program.
- It will be easier to understand the complexities of software development, making you identify risks, find bugs, point out problems in the code, speak the developer’s language and contribute significantly to technical discussions.
- You will no longer have a superficial view of an application and will deepen your technical knowledge even more. Being able to better understand what is going wrong in the application, it will be easier for you to describe bugs and reproduce them.
- You will be able to automate the data creation that you need to execute test cases every day.
- You will be able to automate test case execution, reducing the response time needed to verify if the system is with the expected level of quality. Improving process performance is one of the most desired benefits when a company is looking for QAs who know how to code.
- You will be able to make queries in the databases to check your test execution results.
- You can collaborate with the development team to fix minor bugs and to review application code.
How to begin
There are several learning paths related to learning how to program. Over the years I have noticed that QAs who perform better in development activities have followed at least five stages of learning. These five steps are listed and explained below:
Learn programming logic
Logical thinking is one of the most necessary skills for success in programming 🧠 The first thing you should do is to take a course in programming logic. People who learned programming logic start to learn a programming language more easily.
Practice doing programming logic exercises
Practice leads to perfection! 👌 It does not make sense to take a course, just learn the theory, and not practice what you have learned. Look for exercise lists about programming logic and practice a lot.
Choose a programming language to learn
Learn programming language
Now it is time to learn! Choose an online course for beginners about your chosen language and start studying. Watch all the classes, do all the proposed exercises ✍
Practice doing programming exercises
Finally, it’s time for you to practice using the language you have learned. In addition to doing the course exercises, you must do some challenges and create some small projects. There are online platforms that propose challenges for you to develop algorithms, such as HackerRank, and you can find ideas of small projects on the internet that you can implement as an exercise. Do not jump this step, it is one of the most important ❗❗
What to do next…
Now that you have already learned a programming language and practiced using it, it’s time to move on. You must direct this knowledge to automate the testing of certain software. Once again, I indicate a structured learning path that will make you automate tests in a short time. The four recommended steps are listed and explained below.
Choose which software layer do you want to learn first
Tests can be performed in several layers of an application, therefore, test automation as well. In this step you must choose which layer you want to learn how to automate first, frontend (testing a system using the user interface), or backend (testing a system using REST APIs). My suggestion is that you start with the one that will bring you the most results for the work you are currently doing, and if it does not make a difference for you, start with the frontend, many people learn faster because it is something they can see and, therefore, is more intuitive.
Choose the most used framework according to the programming language learned
Based on the programming language you have learned and the software layer you have chosen 🎯 Choose the most used framework for software automation.
Learn how to automate tests using the chosen framework
It is time to take another course, which teaches you how to automate using the chosen framework. It is a very important step because you will learn how to configure, create your first automated test, and how to do more complete things using this framework. This is the step that will boost your career 🚀
Practice automating tests to a specific software
Finally, choose an application available online to learn test automation, create a project using everything you have learned, and automate some test scenarios for this system. Creating a project will demonstrate your professionalism and that you can build something from scratch, which will put you on another level among software quality professionals. This is the icing on the cake! 🍰
In this article, you could understand the benefits of learning how to program and how programming can help in your daily activities. We discovered which steps to take to learn a programming language and learned together how to automate tests. Planning is very important before starting your automation journey, however, it is really necessary to do it and be consistent. Share your goals with people you trust and commit to them, this will help you not give up. And if you want to achieve these goals more quickly, get support from a mentor to guide you, someone, who has already followed this same path. Make it happen! 🏆 You will no longer be on the same level after you take the first step!