The truth about the role and purpose of quality assurance, or QA testing, has been subject to generalizations, myths, and misunderstandings. The practice of QA software testing has been around for as long as code has been written. However, it has historically been performed separate from development, and occurred once all design and coding were complete. Most professional software testing was performed for large business management systems or systems in the sciences that were highly regulated by government entities.
In smaller software development organizations, developers usually tested their own code. However, because of our natural human bias, it’s difficult for any developer to find issues in their own code, and especially how it interrelates with the rest of the code base. Testing engineers come to code with a different mindset, and honestly, testing is not a good use of a developer’s time.
As consumers demand higher software quality and frequent releases, QA testing has become critical for delivering applications that satisfy consumers. Along with consumer demands, Agile methodology replaced more traditional development methods, significantly changing QA testing practices. Now QA testers and developers work collaboratively as a team with shared responsibility for quality.
Let’s review a few common misunderstandings, myths, and misconceptions around QA Testing.
1. Myth - Testing is too expensive.
Fact: The origins of this myth lie in organizations with tight, or unrealistic, software development budgets. When budgeting or considering the costs of testing, compare that cost against the potential loss of customers and brand credibility. In the past, customers were at the mercy of software application providers, but that is no longer the case. The broad market is far more competitive, and dissatisfied customers can easily switch providers for many applications .
Defects will slow releases and negatively impact consumer expectations. It comes down to risk — Does the business want to risk losing market share, customers, and reputation to save money on testing?
Testing is worth the investment to ensure a higher quality application release. Testing must occur during the entirety of the software development lifecycle. The earlier QA testers are involved, the better the test planning and execution. Read more on software testing basics and the importance of test planning to protect and promote an application and align testing with overall business goals.
“It is more important to have the right people involved than to follow the process exactly right.”
- Rex Black
2. Myth: Testing is easy, no formal training is needed.
Fact: There’s a fallacy within the software industry that anyone can test. Some believe that it’s simply a matter of playing around and pushing all the buttons in an application. In reality, providing thorough testing for mobile, web, and server side applications is complex and challenging.
A good tester must have a comprehensive understanding of methodologies, test planning, test case development, and a knack for details. Additionally, QA testers need to be creative, professional, and have excellent and flexible communications skills. In some organizations, testers must understand coding principles.
Experienced QA testers bring value to organizations as they learn and map the functionality of complex applications. Professional test engineers develop a sixth sense for finding defects on the presentation layer, but also within backend processes or integrated layers of functionality. Professional testers bring not only in-depth knowledge of the development process and testing methods to the table, but also the skills of comprehension of complex information and creating valid tests to verify the application satisfies consumer expectations.
3. Myth: A software tester’s only task is to find bugs.
Fact: Testers not only test, they understand the development process and business goals of a software project. Testers are referred to as "quality assurance engineers" because they focus on all aspects of the development process, including UI/UX design, analyzing and reviewing requirements for missing use cases, and fostering positive customer perception by shielding end users from glitches and bugs.
While developers focus only on the code level, testers look at what contributes to a reliable and high-quality application that meets customers needs and gives a positive user experience. Software testers plan testing strategies with the goal of contributing to better software that builds a loyal customer base.
4. Myth: Testing using an Agile methodology does not follow well-defined strategies.
Fact: The Agile methodology is a series of processes designed to be flexible and focused on delivering a working product that meets customer needs. It does not prioritize documentation and design over functionality. In other words, less time is wasted writing documents no one reads, and focus is on creating a reliable, consistent product that customers want to buy and use.
Agile relies on collaborative and cross functional teams working together using an iterative approach and involves planning for each iteration based on release effort, customer expectations, and available resources. QA testers, developers, design, and product managers are all involved in planning a series of iterations, or sprints, that result in delivering a working application on time.
5. Myth: Testing is too time-consuming.
Fact: Quality testing takes time, but is essential to releasing a reliable application. There are a number of ways to ensure testing is organized and efficient.
Ways to increase QA testing efficiency:
- Test strategy development and planning.
- Organize tests using test management or other techniques to keep the testing process free of waste and redundancy.
- Implement rapid testing techniques, automated testing, and a wide variety of techniques.
QA testing is crucial to ensure that an application meets sales claims and consumer expectations. Customers choose and prefer applications that meet their needs or exceed expectations.
6. Myth: Automation eliminates the need for manual testing.
Fact:
Automation testing is not a substitute for manual testing. Manual testing and automation complement each other. Organizations that practice CI/CD with continuous testing require significant test automation. However, manual tests are required because end users are human.
Test automation can extend the breadth and depth of test coverage, especially for highly repetitive testing. Most QA testing teams will include some degree of manual testing to confirm execution results and to test highly complex user scenarios.
7. Myth: Testing means bug-free code.
Fact: Testing merely helps identify the bugs in software; it is still up to the capabilities of the QA engineer to log it accurately and the developer to correctly fix.
Testing identifies defects in the software, but does not guarantee a defect free code base. QA helps ensure the application functions as expected. Occasionally bugs are found in production that do not exist in the development or testing environments.
The goal and purpose of QA testing is to reduce the shield end users from experiencing defects. If an application is released with known defects, then the development team and application take on what’s called “technical debt.” Many times, defect fixes are postponed based on the time and expense required for a fix.
8. Myth: Testing in Agile is best left to the developers.
Fact:
With Agile and DevOps blurring the boundaries of the roles of testers and developers, why not let the developers test? Why have testers at all?
Because testers provide business value by identifying defects that developers may not see. Testers also understand how an entire system functions holistically, from end to end, where developers are experts only in specific areas of the code. Besides, if the developers are testing, they won’t be coding and designing.
Testing is a unique skill not always aligned with development skills. Using both creates a better balanced product and ensures the customer’s needs are met.