A product, an application, a website, the success of all these do depend on the functionalities built into them. But answer to some questions like “How easy they were to use? How easy were they to understand? Did they do the job without any errors?”, ‘quality’ becomes the most important factor of it all.
A developer may build the functionality but a tester determines the quality of the software and how well they were built.
Google defines Quality as “the standard of something as measured against other things of a similar kind; the degree of excellence of something”.
Thus, quality for obvious reasons is a very important aspect of any product or service. It, clearly, can be highly subjective. To remove the ambiguity around quality, it becomes essential to set up methods and processes to define or verify the quality of a product for the people involved in making the product and for the people who use the product.
When we talk about quality in terms of a software application, we also hear the term ‘Testing’ a lot. They seem to be used interchangeably.
But it is not just about Testing or just about Quality, is it? There are more terms like Quality Assurance and Quality Control which again are quite often confused with Testing.
In reality, these three are supposed to be different yet related to each other and form different parts of the quality management cycle. In this blog, we will take a look at these 3, their importance and how they can be used to make the product better.
What is Quality Assurance?
Yourdictionary.com defines quality assurance as “A system for evaluating performance, as in the delivery of services or the quality of products provided to consumers, customers, or patients.”
Quality Assurance(QA) is a standard process set up by an organization to meet quality standards. This process helps to avoid mistakes and defects in the end delivered product and services to customers.
QA is the foundation pillar for quality management as it focuses on the integrity of the product. It also provides confidence to stakeholders that desired and mentioned requirements are fulfilled.
What is Quality Control?
Quality Control is defined as “the process of setting standards and testing to make sure something, like a product or service, is done correctly.”
The goal of quality control is to check whether the prescribed model was followed or not. It can be achieved by performing audits and determining whether the team followed the defined model to attain quality.
Both Quality Assurance and Quality control are interrelated. They are essential parts of quality management protocols followed by an organization. Initially, Quality control started to be followed in the 1920s by the manufacturing industry.
The Quality control guidelines need to be put in place as the manufacturing industry demands the same replicas of the original product in bulk without any variations. The Quality control process helps them check if the desired requirements were met without committing any mistakes.
With passing years, more research work and Growing technology made the manufacturing process more complex. This made the Quality control process even more complex.
This made the organization define a proper quality control process and ensure it is being followed throughout the development of that particular unit.
In the 1950’s, The process of Quality Control was further extended in the manufacturing unit by performing Quality Assurance checks and Audits. The major areas of focus were the sectors related to public health and safety.
The idea behind “Assurance” was to randomly select any manufactured piece from the batch and check if it meets the desired requirement. If the piece is found to meet the requirement it is passed.
If the piece did not match the exact requirement but was within defined range it may be passed. If it is found out of defined range, it has to be rejected and can lead to immediate stopping of the manufacturing process and starting it all over again from scratch leading to loss of money and time.
Quality control focuses on auditing the project and checking if defined guidelines and protocols were followed while manufacturing or not.
Quality Control: What role quality audits and inspection play in product development?
Quality Audits are the onsite evaluation of a process to ensure their compliance with the requirements. They are performed under the supervision of an auditor who checks whether set guidelines were practised during the making of the product.
Audits are not about checking the product quality but to inspect the type of work done in making a product. It evaluates how closely the prescribed model was followed. Are there any variations? If yes, then the reason behind variations?
The objective of audits is to continuously improve the quality of the work henceforth increasing product quality. Inspection can be one of the aspects of Audit.
The inspection examines the traits of a product. It checks how well the product fits requirements, are there any variation between developed product and desired product. If yes, it will fit the requirement or not. How many load/stress products can handle? Which adverse situation can make it crash?
In short, the audit is all about examining the quality of the process used while making a product. Inspection is about examining how well the product fits the requirement provided by stakeholders.
Quality and inspection are being practised in a wide variety of industries such as software, manufacturing, automobile, retail, etc. to ensure a standard procedure and practice is being followed by all.
As in bulk manufacturing, any deviation from the standard procedure might lead to mistakes which can result in loss of a huge amount of money and time.
What is Testing?
Testing is the process to check if the designed product behaves as required when subjected to various conditions.
The requirements are documented in the form of test cases. The tester verifies and validates the product. If the product requirement under test behaves as expected, the test case is marked as pass or else fail. When this test case execution is done without human intervention, it is called automated testing.
Today, various tools are available for automated testing – some paid, while some are free and opensource. Some are very easy to use while some need good level of expertise.
Now, with all advancements in the test automation industry and special focus on ease-of-use, even test automation tools have been developed that have made test automation easy-to-learn and inclusive. One such test automation tool is Testsigma, a cloud-based test automation tool that allows test automation for web as well as mobile apps in simple English.
The main aim of testing as well as test automation is to find defects/bugs as soon as possible. A defect is raised by the tester for the failed scenarios and assigned to the developer. Once the defect is fixed by the developer again the requirement is tested to verify the fix and the corresponding case is passed. It is important to have these feedback loops at every stage of the product delivery lifecycle.
By documenting requirements and corresponding testing results, we get a clear picture of how testing is progressing, what procedures are being followed, what is pending, what is the current success rate. Some of the pointers which are defined by testing are:
1. Code and function coverage
2. The traceability matrix helps define each requirement and has at least one case mapped to it.
3. percentage of automation vs. manual testing
4. number of test case executed
5. Total number of cases passed
6. Total number of cases failed
7. The number of defects raised and fixed.
The testing process cannot be subjected to one model as they are various kinds of tests that a product undergoes. Each type of testing has different goals to fulfil. For example, Functional testing will only check for the conformance to requirement.
Whereas, non-functional testing will check other aspects of requirements such as how an application would behave when subjected to heavy load.
Hence, it is almost impossible to follow one model throughout testing and achieve the desired result. If you try following one model throughout testing scope they are high chances of missing on some essential requirements.
How testing can help make your product better?
Testing is documenting each requirement in the form of scenarios and verifying it. Good testing requires a lot of thoughtful work and experience.
Experience makes you understand the requirement better and helps design crisp and clear test cases without missing on any requirement. A good test case should include both positive and negative scenarios.
Each documented requirement is tested. The first step to good testing activity is proper communication. Communication should not be limited to documents being mailed back and forth.
It should involve an open conversation. Each member of the team can speak to anybody and clear their doubts. This helps ensure all team members are on the same page.
Healthy team environment also assures good testing. If coordination is lagging between teammates the problem needs to be addressed and fixed.
Good testing checks what impact any newly introduced or suggested way of working can bring to the existing system and how it can help the team and users in a better way.
Good testing challenges assurance. It checks for all possibilities and their outcomes. The testing activity should be incorporated from the requirement phase as it helps provide better feasibility of requirements, what assumptions to be made, how products can be tested effectively, what cannot be tested, etc.
Good testing provides an excellent end product that in turn yields high customer satisfaction. Thus, fulfilling the goal of Quality management system.
Hence, to deliver an apt end product testing plays a key role in the development of the product. Without testing, it would be difficult to say that a developed product is bug-free and right.
Early testing, often testing and performing as much as possible is the only key for a high customer satisfaction rate and application to be a success. Continuously working on customer feedback, testing and delivering the product as per their need is the only way to thrive in a competitive market.
Finally, what is the relationship between QA, QC and Testing?
To sum up, Quality assurance makes sure that correct processes are set up to get a quality product as a result. This also means setting up Quality Control Processes. Quality Control ensures that the processes set up during QA are followed and Testing is one of the processes that is followed.
Usually, for a software tester or a software quality assurance engineer – ‘QA, QC and Testing’ are the basic concepts that they should know. Once a software tester knows about these and is involved in end-to-end testing of a softare, the next set of skills to learn are of being an automation tester. Here are some resources that can help: