We could rather say that Quality Assurance is a structured process that raises the quality of a product to a higher level, all while keeping in mind the client’s requirements and the end users’ needs. This process ensures that a certain standard of quality is set on the project from the very beginning and that it is accepted by all members of the project team.
Also, having a QA process on the project can be very motivating for the whole team, especially for the developers who get to have an extra layer of security.
On the other hand, you should know that the QA process is not completely bug-proof and it doesn’t aim to eliminate 100% of the bugs in the system — that would be a Sisyphean task. There will always be a few bugs that do not overly affect the system as a whole. The QA makes sure that the system works by the criteria which are acceptable for the end users. Nevertheless, it is important that everyone on the project understands and agrees on what the acceptable level of bugs might be. For example, the team agrees that the application will be available and used only on iPads, so if you are going to try it on your iPhone, you will surely find a whole bunch of bugs — at the minimum due to resolution differences.
Ideally, you would like to have a QA professional during the whole development process and in every cycle, which is more of an agile approach — in a process like this, bugs can be discovered and fixed early, before moving to another development cycle. This can benefit your project because the time needed to launch the solution that’s being developed is shortened, and also because enables you to stay within the set timeframes and your budget.
Searching for bugs and fixing them at the end of a project can be very challenging as you can discover and fix some bugs which can lead to breaking some other features, which again leads to new bugs and so on. But even that is much better than putting your software, app or website to use without a proper QA check.
Better late than sorry
Let me give you an example that will tell you a bit more about the importance of QA.
#1 Is it worth investing QA budget in something “more” important?
Consider a situation where a product, let’s say a webshop, is launched without a proper QA check. Management wanted to invest more money in promotions because a big shopping weekend was in the near future, so they decided not to go with QA. Suddenly, a whole bunch of customers started using the web shop — but then, after some time, customer complaints about not getting their merchandise started coming, so they had to hire extra people in their customer service department.
#2 What was the cause?
It was later found that when the webshop is overloaded, the merchandise and their sizes were not synchronizing in real-time but with some delay. This delay was enough to let 2-3 customers order and pay for the same product, which led to some customers not getting their orders.
#3 How much did it affect their business?
In the best case scenario, this bug is is discovered and fixed within a couple of days. If you think that the cost of a couple of development hours can correct this mistake and get them back on track, let me give you some more context.
There are a lot more expenses than just development hours — handling a bunch of customer complaints, money refunds, failed promotions, damaged brand and the most expensive one, angry and unsatisfied customers. Because of it, company management will have to invest a lot more money in order to get the customers to trust them again when it comes to shopping on their site. And on the other side, the unsatisfied customers would now rather go and buy from the competitor’s webshop — it could be more expensive, but at least they can be sure they will receive the items they bought.
#4 What should have been done?
Competitors’ webshop was smart enough and trusted their QA professionals — they made proper performance testing which led them to discover that the system may cause some delays when a lot of customers are buying at the same time. As soon as they discovered this anomaly, the development department dealt with it and the site safely went live.
In this example, I showed you that QA is not a luxury, it is a necessity. It can save your business reputation, the morale of your teams and valuable customers.
2 main types of software testing
Let’s talk a little bit more about different types of software testing, what are they good for and how do they compare.
#1 Manual testing
Manual testing is a type of testing performed by a tester who has good attention to details. It requires the tester to be able to see the product from a user’s point of view and to search for the potential defects in it. Manual testing is very important when it comes to cognitive and behavioral testing — it focuses on exploring the product and its behavior, as well as user experience, whether all elements are visible and the overall usability of the product.
At the end of the manual testing process, the tester prepares a detailed bug report for developers which should contain the name and the description of the bug, steps needed to reproduce the bug, expected and actual behavior, screenshots, videos, severity and priority recommendations, as well as some additional comments or tips if there are any.
#2 Automated testing
Automated testing, on the other hand, is where the tester uses scripts, code or automation tools to get the testing report. It is very useful when you need to repeat the same test many times with the same or different data sets — you can run your automated tests or have them running automatically any time you want. This process helps you find out if some bugs are repetitive or if some part of the system broke down after the integration with some new features or if some modifications were made to it.
In automated testing, the lack of human interaction can be both a pro and a con. Its pro is reliability because these tests are run by a computer with given inputs and expected results, so there is not much room for human error. On the other hand, without human interaction, it is hard to check the visual parts of the system and its behavior from the user’s perspective.
Manual vs Automated testing
Manual and automated tests are completely different kinds of QA testing and there should never be a question of whether should you use only one or the other. In order to have the desired quality of the app, web or software, an important thing is to find the right balance between these two — that is the task of QA professionals.
What is a good QA team?
Really good QA professionals are enthusiastic about quality, they have a deep knowledge of testing techniques and they tend to find bugs that anyone on the project would overlook. However, it can be expensive and hard to find a good QA professional, let alone a whole team.
If you don’t have a QA on your project team, you can always outsource them and integrate them on the whole project or just to do a checkup before putting a product on the market. This is an easy and effective way to achieve high quality of your product.
Quality in a service or a product is not what you put into it. It is what the client or customer gets out of it. — Peter Drucker
Want to learn more about Quality Assurance?
I prepared a small reading list that will enable you to learn more about Quality Assurance, so give it a look if you’re interested.
- What’s the Difference Between Automated Testing and Manual Testing?
- The Cost of Quality in Software Development – Is the Quality Worth It?
- 10 myths about Quality Assurance in software development
- Misconceptions of the Automated Testing Debunked
- Manual Testing vs Automation Testing: How to optimize for testing & costs