10 years ago
10 years ago when if you asked “What kind of job does a person in Software Engineering do?” They said ” you do coding and build softwares of course! ” Based on that general idea on Software Engineering, I completed my degree in Computer Science. Here’s the twist, im working in a job called Quality Assurance Engineer where I test softwares and i’m also coding! ” What is this job?” Why am I not a developer? Why does a QA need to code? ”
(Software_Engineering != Coding_Only)
Here’s the truth. Not all Software Engineers code and coding does not automatically translate to developer. Here’s why.
Types of Software Engineers
As you can see above, there are many popular role under software engineering. Each role specializes in certain aspect of the engineering process but they are all under the same discipline. Front-end, back-end and full stack engineers are software engineers that focuses on app development where they dive deep into the codes to build the visual, logic and sometimes both components. DevOps engineers focuses on providing necessary infrastructures and environments required to support the application. They too get their hands dirty on coding for configuration and integration.
Then we have QA engineers where they focus on quality aspects of the application. Apart from functional testing, they too dive into codes but not to write them, instead they test the quality of it. There are also QA that write codes but not to build product application, instead they build automated test framework. I will explain deeper on this later.
(Coding != Developer_Only)
Another common perception is coding can be wielded and practiced by developers only. It is true that developers primary skills are coding to build application but that does not mean coding cannot be applied elsewhere. It can be learned practically by any common person of any age that doesn’t necessarily need to have a Computer Science degree. In many countries like Singapore and USA, coding is being taught just like a another subject in schools.
Coding in other areas
In data science, Python programming language is very popular to construct models and analysis. Do note that data scientist don’t develop software applications. Similarly, QA Engineers also perform coding to build test automation framework. I will elaborate more on this in the next paragraph. Therefore, coding is not a unique skill to developer. It can be picked up by anyone and implemented for any solution. The only limit is your imagination and commitment.
Everybody in this country should learn to program a computer because it teaches you how to thinkSteve Jobs 1995
What is QA Automation Engineer?
QA Automation Engineers are Quality Assurance Engineers that are specialised in designing and developing automated testing frameworks. These QAs are more focused on exploring tools and building automated test framework thus giving them a more specific title under QA. Similarly, QA test managers are also QA but they are more focused on organising and coordinating the QA team itself thus given a more specific job title.
Some experts argue that there is no need to add the word Automation in QA Engineer but I beg to differ. Adding the word automation in the job title communicates effectively that the area of focus of that QA is in exploring and building of test automation framework rather than generalising the title which gives a perception that one is a Full Stack QA.
Full Stack QA ~ rich mix of domain knowledge, technical skills and testing expertise, all from a user-oriented perspective
Junying (Elaine) Zhang, QA Manager, Hewlett Packard Enterprise ~ TechBeacon Oct 4, 2016
What do you explore in QA automation?
Exploring QA automation, it will challenge your knowledge on concepts of software architectures, break down of each components, and how they interact with each other. Let’s put aside automation tools and principles behind it. If you think that is easy, just imagine in 1 company there could be few products. Each product will be supported with their internal tool and their own database structure. Once you map it all out, you will come up with testing framework and continue with maintenance of new features. At this point you might think you have it all figured out. The problem is, there are millions of companies and products out there which are are unique. How could you possibly say that your understanding of software is 100%? Therefore, learning and challenge of being QA Automation Engineer is evolving everyday and that can give one hell of a personal satisfaction when each milestone conquered!
What are the prerequisite to become a QA Automation Engineer?
I’m a strong believer of the following statement. If you have the right learning attitude, your background, profession or age will not hinder you from achieving anything. In order to start your journey, there are few key knowledge and skills needed to become a QA Automation Engineer.
Disclaimer : This is just one of many path one can take to become a QA Automation Engineer
The most fundamental knowledge that one must acquire is the science behind computers which is why the first checkpoint is getting a Computer Science degree. Computer Science will expose you the ideas behind theories, principles, designs, development and implementations of software applications. It will lay a foundation to upgrade your knowledge as you explore along the technology journey.
After acquiring Computer Science degree, you will need to land yourself into Software Quality Assurance Engineering job. This is extremely crucial as this will train you with all the necessary skills and mindset to become a good QA. You should be able to understand and deliver the vision and mission of software engineering quality.
Once you have attained enough experience in QA, you will understand all the pain points of the task and how automation can help to reduce the manual effort. That’s when you wield the power of automation! You can start exploring and implementing test automation framework for web based application. You can practice with common tools like Selenium and pair it with any programming language of your choice like Ruby and Python. This will develop all the necessary elements and senses needed to build and deliver automation framework.
Followed by that, you can transition into automating mobile application. Mobile application is more complicated than web application as there can be many different types of technology mashed together in native platform such as webview pages in native which posses its own set of challenges to automate. As your experience grows deeper in mobile and web, another level unlocks which is the backend.
API & CI/CD
Backend automation typically refers to automation of integration test. This usually involves the testing of services via interactions with APIs. Another level lower down the test pyramid, you will be dealing with unit test. QA Engineers do not write unit test however they collaborate with developers to ensure the coverage is maximised and spread as high as possible. Apart from that, you will be looking into integrating automated framework into CI/CD pipeline.
The final level of QA Automation is going beyond all those specified scope. The reason why i specify it as beyond because there is no boundary how far technology will evolve. To be a good QA Automation Engineer, you must constantly break your limits and explore the unknown skills and knowledge which can be incorporated into building automated test framework.
Software Engineering is a wide scope where not everyone is a developer. It requires a range of specialization such as DevOps and QA to ensure the success of product engineering.
Secondly, coding is merely a skill that has many possibilities of application not being limited to product development only.
Third, as per the quote below:
Don’t limit your tools based on your job. Break that tool barrier and your solutions shall multiply
This message here is very important because I was once confined by the circle drawn by my title. I would not pick any tools that were not in my domain of expertise. Thanks to few mentors I came across in my life, they proved to me that tools can be wielded by anyone not being limited to certain domains only. That broke my limits in automation which opened up more possibilities of solutions.
I will leave some list of tools for you to explore which will benefit you when stepping into QA Automation. Thank you.
SUPER READS @ 12.12
On separate note, I would like to take this opportunity to introduce Synapse QA event called Super Reads @ 12.12.
With SUPER READS @ 12.12 we are aiming to create a unique reading experience for our readers. It is a truly global event open for anyone from tech industry.
If you have a thought, short idea, experience to share with the community then it is TIME. We are opening the world of writing for newbies to pros by celebrating the 12.12 moment. We aim to provide an amazing learning experience by making sure that 12.12 Super Reads are worth spending your time.
What you can expect?
- 12 Authors sharing their experiences & thoughts as articles
- 12 Different Topics
- Publishing Date : 12.12.2020 @ 12.12 AM
- Guiding newbie writers to improve their writing skills
- Expert Review Panel to ensure unique reading experience and handpick 12 articles
- Opportunity to be part of SYNAPSE QA Family
- Feel free to support us, We know without you it is not possible
Click here if the form does not open on clicking the above button.