This article debunks common myths and clarifies truths about software testing and quality assurance. It explains that software testing does not directly improve the quality of the software, but rather provides important information for stakeholders to make decisions. It also highlights the complexities and considerations of automated testing, the skills required to be a good tester, and the limitations of achieving zero bugs in software. The article emphasizes the need for testers on projects, the importance of testing after upgrades, and the role of software testing within the broader scope of quality assurance.
Myths about QA
Quality Assurance (QA) testing is a critical component of the software development lifecycle, but there are several myths that persist about the practice. Here are some common misconceptions:
QA Is Just Testing: Many people believe that QA is synonymous with testing, but QA is much broader. Testing is one aspect of QA, which encompasses all activities designed to ensure that a product meets the specified requirements and is free of defects. While testing focuses on identifying bugs in the software, QA aims to improve the processes to prevent defects from occurring in the first place [1].
QA Is Expensive: There's a myth that QA is always expensive because it's thought to delay business processes or involve unnecessary roles and tools. In reality, QA should be seen as an investment; it can save money in the long run by catching defects early, which are much more costly to fix after deployment [2].
Testing Can Be Done by Anyone: Some believe that testing doesn't require special skills and can be done by anyone. However, professional testers have a deep understanding of software development, testing methodologies, and tools. They are skilled at designing test cases that effectively find bugs and are critical thinkers who can anticipate where and how a software might fail.
...
Warning |
---|
IMPORTANT: While it's not necessary to test the entire software from scratch, it's ESSENTIAL to retest selected business-critical use cases to ensure everything works correctly after the upgrade. Test automation can greatly assist with testing after upgrades, particularly for stable business cases that don't change much over time. |
Developers can do unit enough testing: This concept often arises when there is significant pressure to reduce the project cost. At first glance, it may seem reasonable, right? In some cases, it can indeed be effective—especially when the customer is experienced with testing on IT projects and is willing to conduct thorough testing independently. However, in most cases, it does not work well. In case you are thinking about using just developers for testing, please keep in mind that developers typically do just Unit testing (to verify that part of code they just developed), but they are not doing other types of testing - like E2E testing, regression, overall functionality testing, and others and you definitely can’t expect developers will document testing in test management tool.
Note |
---|
WARNING: There are several differences between developers and testers:
|
...
These myths highlight a misunderstanding of the comprehensive nature of QA and its importance in producing high-quality software. Dispelling these myths helps organizations better understand the value of QA and integrate it effectively into their development processes.
Truth#1: Software testing will make the project more expensive
Well, to be honest, it can be true. Especially when we are looking just at project team costs. When there are QA guys or software testers in the project team, somebody must pay for them, right? But this way of thinking can lead to questioning other roles in the project team (like PM and SA). Isn’t the best solution to have a super experienced developer who will lead the project, communicate with the customer, propose the solution, develop the solution, test the solution and make a demo for the customer. Kind of superman, right? Of course not. Every role in the project team has its own purpose and requires different skills. If we remove any role from the project team, we increase the risk our customer will find bugs during UAT, and not finishing the project in time. Is this risk really what we want and are we ready for consequences?
Truth#2: Software testing is part of QA
Here we have the terminology issue, so you will be probably able to find a lot of definitions. In general, the difference between software testing and QA (quality assurance) is that software testing is focussed just on testing the particular software. So, software testers often work like - here is the software specification, so I’ll do test analysis, prepare test cases, then test it and report bugs. QA on the other hand cover not just Software testing, but also the whole process regarding the testing on the project - from clarifying requirements, defining test strategy to testing, creating reports to the customer, often even making software demonstrations for the customer and helping him with UAT testing. It can differ from company to company, so it’s definitely a good idea to clarify expectations. Usually, expectations from QA team are higher than from software testers, especially when it comes to the difference between software testing and quality assurance (QA). It highlights that software testing focuses solely on testing the software, while QA covers the entire testing process, including requirements clarification, test strategy definition, reporting to the customer, and UAT support. It emphasizes the higher expectations from the QA team, particularly in terms of communication skills and responsibility.
Truths about QA
Here are some common truths about QA testing are:
Software testing doesn't guarantee improved software quality, but it provides crucial information for stakeholders to make informed decisions.
Automated tests cannot completely replace manual testers, as technical skills, stable applications, and appropriate resources are still necessary.
QA encompasses the entire testing process, including requirements clarification, test strategy definition, testing, creating reports for the customer, and even assisting with user acceptance testing.
Dedicated testers are essential for a project, as they bring different skills and perspectives compared to developers and can conduct more comprehensive testing.
Expectations from the QA team are generally higher than from software testers, particularly in terms of communication skills and responsibility.
Software testing is part of QA, software testing focuses solely on testing the software, while QA covers the entire testing process, including requirements clarification, test strategy definition, reporting to the customer, and UAT support.
Info |
---|
NOTE: There is a difference between software testing and quality assurance (QA). It highlights that software testing focuses solely on testing the software, while QA covers the entire testing process, including requirements clarification, test strategy definition, reporting to the customer, and UAT support. It emphasizes the higher expectations from the QA team, particularly in terms of communication skills and responsibility. |