What does Quality Assurance Specialist’s job really consist in? Who can become a QA Specialist? What does one need to do to obtain extensive knowledge and experience in this job?
In order to get an understanding of the issue of QA in IT projects, one should first find out what the job of specialists responsible for the quality of the software delivered actually looks like. Here are our own QA Line Managers - Wiola i Tomasz - telling us about the role of QA Specialists.
What does QA Specialists’ job consist in?
First of all, they take care of the quality of the delivered software by testing the functioning of the entire application or its particular fragments. However, QA is not only about writing tests. It also requires the knowledge of the sector to which a solution is dedicated, as well as focuses on perfecting the sole process of application development. Bugs or deficiencies may appear at every stage of project implementation, both during setting the requirements, and the actual testing. In practice it implies identifying bugs in the app’s functioning, at the same time simply being on the lookout for any room for the app’s improvement.
QA Specialist is the first to get their hands on the app and it is their job to make sure it is the best possible response to users’ needs and expectations. Hence, QA Specialist must understand and know clients’ assumptions and expectations regarding the product inside out, and strive to make those expectations meet those of the users. In order to achieve that goal, one must possess comprehensive, analytical approach, innate inquisitiveness, and the ability to ask the right questions.
Which means it is not a job for everyone. Who will prove themselves right for the job of QA Specialist?
Quality Assurance is primarily a job for people with analytical skills, inquisitive and precise. This is a departure point which is followed by the understanding of programming process, as well as the code itself. The ability to program, though not obligatory, makes things a great deal easier by simply facilitating testers’ job. We could compare it to the knowledge of a foreign language, or any other skill for that matter – even basic knowledge allows to identify particular bugs quicker, and constitutes a foundation for further development and improvements. Just like a developer, a QA usually specializes in one particular technology, but it is advisable to have some understanding, even very basic, of at least a few languages, which provides freedom and flexibility of working in various projects. What is also very helpful, is the so-called useful pessimism. Assuming not everything works the way it should, we are more focused on finding irregularities or the elements which could be improved.
What knowledge and skills should one have to be good at this job?
For the automated tests developer, it is the basics of programming that matter the most, as well as the knowledge of software development methodologies, such as Agile. Being acquainted with version control systems (e.g. Git), bug reporting tools (e.g. JIRA), and the tools for project build automation (e.g. Maven) are all of considerable help. In other words, good programming knowledge is definitely an asset. Of additional importance are the frameworks related to test automation, such as Selenium WebDriver. Naturally, lack of knowledge in this respect is not a huge big problem, as upgrading your skills shouldn’t take too long.
The so-called soft skills are of great importance – being able to communicate and work in a team. Our job is all about the contact and relationship with other project team members. To make our actions as effective as possible, we need to stay in constant touch and seek understanding with analysts, developers, Project Managers and all other participants of software development process. Exchange of information and communication are key.
Are automated tests better than manual ones?
They are definitely faster, allow for more repetitiveness, and save time. Automation lets us avoid repetitiveness and monotony of tester’s work. When it comes to manual tests, multiple checking of the same functionalities takes much more time, although their advantage lies in the human behind the steer – his or her intellect and the ability to swiftly adapt to changes.
What are professional development opportunities for automated testers?
Thanks to the fact that we are ”in the middle” – between programming and analysis – we have a great view of the whole app development process, as well as the final product itself. In other words, we are at the same time close to business analysis and to the application’s code. Like in any profession – if the job gives you satisfaction, you stay where you are, gain more experience, and ultimately reach the rank of a senior specialist. If you need to change something – you always have a choice. You extend your software development knowledge, your codes get better and better, and you either develop your skills in the field of test automation, or you pick a different career path. As we have mentioned before, QA specialists work hand in hand with Business Analysts, so if they only wish to develop in business analysis area, they stand a great chance of one day becoming BAs themselves. The third possibility is moving towards software development, namely switching to a backend or frontend developer’s career path. This clearly shows how many professional development opportunities QA’s job presents. It all depends on one’s individual approach, predispositions and interests.
So a QA can become a developer. What about, say, Junior Java Developers? Could they become automated testers?
Most definitely. Writing automated tests actually falls into the category of programming. What makes us different, though, is the fact that we don’t create the app’s code, but the code itself – the code which checks whether the app works according to the functional requirements. Ultimately, we have influence on the look and functionality of the delivered solution. As it was said before, the knowledge of software development is crucial to write a high-quality test codes. High-quality tests are, in turn, a guarantee of the whole app’s quality. Being already acquainted with programming in, say, Java, plus about 3 weeks for learning Selenium WebDriver opens a variety of possibilities outlined above. It lets one see the code and app creation from a different perspective.
What does your daily work look like? What do you like about it the most?
A QA’s day may vary, depending on the sprint. It is mostly composed of writing automated tests, reviewing the code and the stories, and at the end of the sprint – checking out, regressing and stabilizing the tests. All of it in continuous cooperation with the rest of the project team – once again: communication is key.
The best thing about our job is the lack of monotony – everyday there is something else happening – and the possibility to directly cooperate with numerous people having various skills and competences.
What needs to be done to become a QA Specialist?
One needs to objectively assess whether they possess the qualities and skills required for this role. That’s the foundation. If we are not constrained by anything, and we have the right predispositions, it would be smart to obtain some basic programming knowledge. There are also post-graduate studies preparing for the job of QA. To all those already having some knowledge of programming languages, we would recommend trainings and workshops on Tests Automation, reading related blogs and participating in conferences. If such candidates find their place in a good QA team, they will surely receive the support they need, and will have the opportunity to make use of their colleagues’ knowledge and experience.