Introduction to Quality Assurance

Learn via video courses
Topics Covered

Overview

Quality assurance in software testing is one of the unsaid promises by a company before releasing the product into the market. The product goes through multiple rounds of testing at every stage of product development.

Quality Control is just one aspect of quality assurance, as assurance means that the product has been tested to match the market's standard.

What is Quality Assurance in Software Testing?

Quality Assurance is a process to ensure the product is well-tested, secured, and up to market standards. The product's quality is enhanced in the process. The assurance is a guarantee which tells the product is safe to use. In the process, the product is made efficient and effective to use.

Importance of Quality Assurance

  1. Quality Assurance provides a reputation for the company. Any product company release has been well-tested.
  2. Product defects create a bad image in the market and could put the company in legal trouble.
  3. In any phishing attack, the company can produce a document of being well-tested to keep the brand image intact.
  4. Quality assurance also improves the effectiveness of the entire development cycle. Every process gets more defined and disciplined.

What is the Quality Attribute of Software?

  1. Functionality: The basic functionalities of the software must be working fine. The entire series of actions should be smooth. The integration of one module into another should not have defects. For example, on an e-commerce site, users should be able to add and remove updated items in the cart without failure.
  2. Performance : The server should not crash on load increase. The loading speed should not be too slow. The overall experience with the application should be smooth. The maximum time limit must not exceed, and the application should also be operatable with a poor connection.
  3. Reliability: The application has to be reliable to take variable factors in extreme directions to have the trust of users. Incorrect responses, failure, power cuts, and internet connection failures must all be handled.
  4. Security: Security should be the number one priority of every company before releasing a product on the market. Customers' data must be secured. The application should thoroughly go through security testing at every stage. There should be no compromise on security.

How to Do Quality Assurance: Complete Process

  1. Planning Stage: Quality assurance entire process has to be established. Standards at every stage and structure to handle should be laid out. Every stage in the development cycle needs to have quality management.
  2. Development Stage: Quality assurance has much to do with testing the product. The product has to be tested thoroughly for both functional and non-function requirements.
  3. Maintenance Stage: Monitoring the process, validating using charts and graphs to see improvements made vs. needed. The quality assurance process also must be continuously evolving.

graphical-representation-of-process-of-quality-assurance

Difference between Quality Control and Quality Assurance

Quality ControlQuality Assurance
Quality Control signifies a testing process where a product is tested to be defect-free.Quality Assurance signifies quality control is done and has been tested for the market
Quality Control is a sub-part of Quality AssuranceQuality Assurance is a superset of Quality control.
Quality control is for product quality verificationQuality assurance is for product quality validation.
Quality control is for the STLC process.Quality Assurance is for the entire SDLC process.

Check the detailed comparison between Quality Assurance and Quality Control from here .

Types of SQA Tools

Quality Assurance is done at every stage of the development cycle. Hence, the tools used in the process are as follows :

  1. Project Management tools:
    • Release Management tools like JIRA
    • Source Control like GIT, SVN
  2. Code Reviews:
    • Code Analysis using automation tools for framework and naming conventions.
    • Code Reviews manually by experts in the industry
  3. Testing Tools:
    • Test management using TestNG, JUnit
    • Bug tracking using Bugzilla
    • Cross-browser testing using Selenium
    • Usability Testing is done manually
    • Load Testing using Apache JMeter
    • CI/CD tools using Jenkins
  4. Monitoring Tools:
    • Business Analysis using charts
    • Log Monitoring using log4j
    • Performance Monitoring tools at sever
  5. Manual Customer Support

Quality Assurance Certifications

  1. ISO 9000: ISO 9000 was set up in 1987 for quality management. ISO 9000 certification audits the company for its product, process, services, and approach. This certification enhances customer satisfaction and increases the profit of the company.
  2. CMMI(Capability Maturity Model Integrated) LEVEL: CMMI focuses on process improvement in the software development cycle. It consists of 5 levels based on their development model's maturity.
    • Initial(level 1):
      The quality management process is basic here, not structured and well-set.
    • Repeatable(level 2):
      A primary level of quality audit system is set up, which is even repeatable throughout the development cycle.
    • Defined(level 3):
      A defined and structured management system is ensured in the project.
    • Managed(level 4):
      An efficient management system with metrics and monitoring tools is applied throughout the product cycle.
    • Optimizing(level 5) :
      An advanced management system growing and enhancing daily. Quality management is given high priority in the company.
  3. TMM(Test Maturity Model): Test Maturity Model also follows five levels as CMMI, definitions of them are as follows :
    • Initial(level 1):
      TMM level 1 is the lowest level where a primary quality management system is applied.
    • Repeatable(level 2):
      TMM level 2 quality management where a basic level of quality enhancement is repeated.
    • Integration(level 3):
      V model where testing is done repeatedly at every stage is how level 3 looks like
    • Managed(level 4):
      A good management system with cautious validation of fluctuation using metrics and monitoring tools. Nowadays, very meticulous tools are provided by the server and established in the development cycle.
    • Optimizing(level 5):
      Many automation tools and strategies are used to continuously improve the system and product quality at the same phase level.

Conclusion

  1. Quality assurance is a quality management process applied at every development cycle phase.
  2. Quality control is just one aspect of quality assurance.
  3. There are many Quality certification programs for companies like ISO 9000, TMM, and CMMI.
  4. Various types of SQA(Software Quality Assurance) tools are used for instance, monitoring, testing, code reviews, etc.