Mythbusters, QA Edition
An insiders look at Cognizant Softvision’s QA responsibilities
As a software engineer at Cognizant Softvision for over two years, Cristina Potop has heard many misconceptions that are widespread about what exactly specializing in QA means. In the article below, she shares her experience as a QA specialist for a greater awareness about the role.
In the beginning there was this myth…
QA Testing is easy, anyone can do it
People often don’t understand the complexity of the product quality assurance process, and because of that misconception they underestimate the effort required for the process. In reality though, being a QA specialist can be extremely challenging and demanding.
Many people believe that testing simply involves randomly clicking different places on the user interface, recording the results and then writing a report.
In reality, a QA specialist has to solve a variety of interesting tasks everyday. As the name suggests, QA which stands for Quality Assurance with the tester’s objective is to ensure that users will get a quality product. In order for this to happen, testers set up the test environment, constantly communicate with the development team, analyze app requirements, and offer their own input in order to deliver the best product possible.
Testing is a time-consuming process which requires attention, responsibility, deep knowledge of the product and an understanding of user experience. In my opinion, this task is sometimes harder than writing code. Why? Well, the answer is simple: the tester needs to be on different tracks and tasks simultaneously and have overall knowledge of the whole app, not only parts of it, in order to have a better overview when changes to the product occur. Besides that the tester has to put himself in the users shoes when testing and have an outside the box mindset.
A software QA tester must possess several skills such as: attention to details, analytical and problem-solving thinking, creativity, good communication skills, etc.
QAs can find all the bugs
Let’s start with one of the basic principles of testing: “Exhaustive testing is impossible.”
We all know that the testing done by the QAs will reveal bugs in the software, but it can’t guarantee the absence of bugs even though they will perform rigorous testing procedures to catch as many system errors as possible, simply because testing is an endless process.
Even if we would have unlimited time, resources and knowledge of the app no one will be able to say with absolute certainty that everything was tested and that the app is 100% bug free.
What we can do as testers is to ensure that the software meets the user’s expectations as well as determine that the software is functional by performing different types of testing: accessibility, usability, performance, reliability etc. Another key task is to ensure that the product meets the requirements.
QAs are enemies of the developers
You may have heard people say that developers and testers are like oil and water. This is not true! You have to keep in mind that the delivery of quality products and services to the end users is a team effort.
Developers and testers are two different occupations, involving people with different mindsets and views of things. However, we have to keep in mind that developers and testers complement each other: each of them possessing valuable qualities and playing key roles in a project.
To be a good QA you need to understand the software you are working with, have knowledge of programming languages, certain tools and techniques. Most QAs have a bachelor’s degree in software engineering or computer science, have a different mindset than developers and are not only passionate about writing code, but they certainly have the ability to read code.
This is very helpful when writing bug tickets because we can help the developers to fix the issue easier if we are able to identify the root cause.
Remember that we are a team and it is important to help each other out!
Testing can be 100% automated
Testing can be 100% automated is a pretty common belief. To be fair, it is partially true. Every test case can be automated, but not testing.
Manual testing is an essential part of QA. A human tester must be able to assess the errors within a product, something which an automated test can often catch. However, a human tester will also take into consideration the usability, look, feel, and overall quality of the software, which is an important part of testing. By putting yourself in the user’s shoes to see what kind of experience he will have when using the product, you are doing something a machine simply can’t do.
Automated tools are most useful when repeating tests that have already been performed manually. This certainly helps human testers during the QA process by reducing the repetitive workload, but they can never replace us.
QA’s opinion does not matter
A popular assumption is that nobody listens to the QA. Well, that is not true! Since the tester has been testing it on all sides and putting himself in the users shoes when doing it, no one knows the app better than the QA.
So… your opinion does matter! If you think that the UX (user experience) is not right in certain situations, you should flag it and discuss it with the project manager. Believe me when I say that they will appreciate your involvement and even apply some of your suggestions if they fit the feature’s needs.
It’s important to understand and dispel the myths surrounding QA because testers are mandatory in the development life cycle of the products. If a company values the quality of the software they produce, they will employ skilled testers because their reputation depends on delivering functional and usable products, and that my friends, begins with quality assurance.