Do you know the real functions of a QA? Do you know the main difference between QA and Tester? Are they heroes or villains? Let’s see the most common myths of the process of testing and try to resolve the doubts.
1. Tester and QA are the same
If you still think that Tester and a QA are the same then you have a serious cause for worrying. Testing is an activity. Anybody can test. Sometimes testing is just using a product, while QA uses testing strategically, after planning how and what to test. A tester is in charge of testing software during its development phase in order to detect bugs and report them, while a QA performs a set of activities in order to ensure the quality of software during all its phases.
2. Testers and QAs can find all the bugs
This is a common mistake among clients. It’s not possible to have a quality software free of bugs since testing is an endless cycle. Even if a QA with excellent test skills has tested the application, and even if you have an endless budget and unlimited time nobody can say with absolute certainty that a software application is 100% free of bugs.
3. Testing can be automated
This myth is very powerful because is almost, but not fully, true. Every test case can be automated, but testing can't. The automation of tests streamlines the testing process by using specific tools, but this doesn’t stop being that: an automatic process so it will not be able to replace all manual tests. Automatic tests should start when the software has been manually tested by the tester or the QA and is stable to some extent. On the other hand, we must have in mind that automation can’t be used if there are changes in the requirements.
Automation can’t resolve everything. It never did and never will!
4. They are enemies of the developers
Absolutely not. The delivery of quality products for the end users is a team effort. Many people think that testers and developers are destined to hate each other, but this doesn’t have to be that way. After all, the overall objective of both in the project is common.
5. Testing and Quality assurance happens when the product is fully developed
The test depends on the code, and if it is not complete, what can’t be done is a definitive test. If we perform some type of test in this phase, it would be an "exploratory" type test with which we could see how the development goes and detect certain defects in an "embryonic" phase of development (one of the objectives of the SCRUM methodology)
The review of the requirements and the development of test cases are independent of the developed code. However in the case that the life cycle of development is greater than estimated, this dependence will affect the QA, reducing the estimated time to be able to test the fully developed software.
6. With the Unit Test, anybody can test
People who think unit tests are enough, tend to deliver software with issues in the user interface or problems where different components don't work together.
Unit tests test units. With this type of testing, you can’t test end-to-end flow through an application process, and it’s impossible to test if the user interface is usable or intuitive.
The biggest benefit of dedicated, skilled QA or tester is the ability to find gaps in the assumptions other people may have made. It's part of the tester-mindset to ask, "What will happen if I press the big red button that says 'Don't Push This Button'?" People who don't have tester-mindset aren't as likely to think to test for usability, or for an intuitive flow through the system.
7. They are programmers that aren’t good enough in coding
This is one of the most common misconceptions about QA. Ok, maybe they are software engineers that don’t like to code, but most probably they were found by someone who noticed that they have a different mindset. Let’s say that QAs are very smart engineers.
Normally, companies require software quality assurance engineers to have a bachelor ’s degree in software engineering or computer science.
To be a QA you need to understand the software you are working with, the programming languages, and some tools and techniques, as well as using source code repositories, code automated test, understand the agile development process, create test plans, understand QA testing environment, etc. The list of technicals skills the QA must have is very long. Apart of the technical skills, QAs must have strong skills in engineering and technology, math, verbal and written communication, problem-solving, reasoning and logic, and practical skills like exceptional documentation and time management capabilities. They have to be creative, insightful, and rational thinkers.
You should never underestimate the importance of the QA!
8. QA and testers are responsible for the quality of a product
The responsibility of the QA and tester is to detect bugs, report them or to ensure the quality of the software, in a clear way and with the greatest possible argumentation, of this incidence to the other working groups involved in the project. At this point and, once all the groups have been properly informed, a decision will be made as to whether the errors in the release will be corrected or the software will be released with the detected bugs.
9. Anybody that finds bugs in games can become a QA
There are a lot of people who think that by finding bugs in the games can work as a QA. This is absolutely wrong. The role of the QA in the development process is much more than only finding bugs.
The function of a QA (and the tester as well) begins with the review of quality specifications and technical design documents (architectural documents, documents with requirements, help documents, functional documents, etc.) in order to help developers and to provide timely and meaningful feedback). Only in this way, will be able to understand the global functioning of the software that is going to be developed, its dependencies, as well as the impacts of one module on another. This prevents the identification of bugs and helps to save possible costs of both time and money. After this, the QA creates detailed, comprehensive and well-structured test plans and test cases that will be implemented in the testing process, as well as debugging and defining corrective actions. Ultimately, the QA should monitor all stages of software development to identify and resolve system malfunctions in order to meet quality standards.