Quality Assurance Tutorial
Before we proceed to quality assurance, here are some terms that should be acknowledged.
What is Quality?
Quality is defined as the product or services that should be “fit for use and purpose.”
Quality is all about meeting the needs and expectations of customers concerning functionality, design, reliability, durability, and price of the product.
What is Assurance?
Assurance is a positive declaration on a product or service. It is all about the product which should work well. It provides a guarantee which would work without any problem according to expectations and requirements.
What is Quality Assurance?
Quality Assurance is also known as QA Testing. QA is defined as an activity to ensure that an organization is providing the best product or service to the customers.
Software Quality Assurance seems it is all about evaluation of software based on functionality, performance, and adaptability; however software quality assurance goes beyond the quality of the software, it also includes the quality of the process used to develop, test and release the software.
Software Quality assurance is all about the Software Development lifecycle that includes requirements management, software design, coding, testing, and release management.
Quality Assurance is the set of activities that defines the procedures and standards to develop the product.
Quality Assurance is a systematic way of creating an environment to ensure that the software product being developed meets the quality requirements. This process is controlled and determined at the managerial level. It is a preventive process whose aim is to establish the correct methodology and standard to provide a quality environment to the product being developed. Quality Assurance focuses on process standard, projects audit, and procedures for development. QA is also known as a set of activities designed to evaluate the process by which products are manufactured.
QA focused on improving the processes to deliver Quality Products.
What is the Quality Attribute of a software?
The following six characteristics can define the quality of the software:
Quality of software is defined as how effectively the software interacts with other components of the system. The software must provide appropriate functions as per requirement, and these functions must be implemented correctly.
It is defined as the capability of the software to perform under specific conditions for a specified duration.
Usability of software is defined as its ease of use. Quality of the software is also identified as how easily a user can understand the functions of the software and how much efforts are required to follow the features.
The efficiency of the software is dependent on the architecture and coding practice followed during development.
Maintainability is also one of the significant factors to define the quality of the software. It refers to identify the fault and fix in the software. It should be stable when the changes are made.
Portability of the software, defined as how easily a system adapts to changes in the specifications. Quality of the software is also determined by the portability of the system how easy it is to install the software and how easy it is to replace a component of the order in a given environment.
To ensure about a software score well on these quality attribute, we need the following software Quality Assurance.
What are Software Quality Assurance components?
Software Quality Assurance has six classes of components.
1. Pre-project Plan
Pre-project Plan ensures that the resources required for project, schedule, and budget should be clearly defined. Plan for development and ensuring quality has been determined.
Components are as:
- Required Resources (Hardware and Human resources)
- Development plan
- Risk evaluation
- Quality plan
- Project methodology
2. Project lifecycle component
A project lifecycle usually comprised of two stages:
1. Development Stage
In the Development Stage Component, Software Quality Assurance help to identify the design and programming errors. Its Components are divided into the following sub-classes: Reviews, Expert Opinions, and Software Testing.
2. Operation Maintenance Stage
In Operation Maintenance Stage, the Software Quality Assurance components include the Development lifecycle component along with specialized components whose aim is to improve the maintenance tasks.
3. Infrastructure error prevention and improvement components
The aim of this component is to the prevention of software faults and minimizes the rate of errors.
These components are as:
- Procedure and work instructions
- Templates and Checklists
- Staff Training, Retainingand Certification
- Preventive and Corrective Actions
- Configuration Management
- Documentation Control
4. Software Quality Management Components
This class of component consists of controlling development and maintenance activities. These components establish the managerial control of software development projects. The management component aims to prevent the project from going over budget and behind schedule.
The management components include:
- Project Progress Control
- Software Quality Metrics
- Software Quality Costs
5. Standardization, Certification, and SQA assessment components
Aim of these components is to implement international managerial and professional standards within the organization. These components help to improve the coordination among the Organizational Quality Systems and establish standards for the project process. The component includes:
- Quality management standards
- Project process standard
6. Organizing for Software Quality Assurance ? the human elements
The main aim of this class of components is to initiate and support the implementation of Software Quality Assurance components, identify any deviations from the predefined Software Quality Assurance procedures, methods, and recommended improvements. The Software Quality Assurance organizational team includes test managers, testers, SQA unit SQA committee, and SQA forum members.
How many types of Software Quality Assurance Tools?
Various QA tools help with quality assurance. There are different QA tools required for different purposes. For comprehensive software quality assurance, we will need a different kind of tool which is also known as QA software.
- Release Management
- Source Control
- Code Reviews
- Automates Code Analysis
- Peer Code Reviews
- Test management
- Bug and Issue Tracking
- Browser, Device and OS Testing
- Usability Testing
- Load Testing
- Automates Testing and Continuous Integration
- Monitoring and Analytics
- Availability Monitoring
- Business Analytics
- Exception Handling
- Log Monitoring
- Performance Monitoring
- Security Testing and Monitoring
- Customer Support
How to do Quality Assurance?
The whole process of quality assurance has to define the cycle called the PDCA cycle.
Phases of this cycle are as:
Plan: The organization should plan and establish the process related objectives and determine the process that is required to deliver a high-quality end product.
Do: Development and testing of processes and also change in the methods.
Check: Monitoring of processes, modify the methods, and check whether it meets the predetermined objectives.
Act: Implement actions that are necessary to achieve improvements in the process.
An organization must use Quality Assurance to ensure that the product is designed and implemented with correct procedures. This will help to reduce problems and errors in the final product.
What is Quality Control?
Quality Control popularly abbreviated as QC is a software engineering process used to ensure quality in a product. It does not deal with the processed used to create a product. Instead, it examines the quality of the end product and the outcome.
The main aim of Quality Control is to check whether the product meets the specification and requirement of the customer. If an issue is identified.
What is the difference between Quality Control and Quality Assurance?
Quality Control is to examine the product or service and check for the result. Quality assurance is to explore the processes which led to the end-product.
Here are the following differences:
|Sr. No.||Quality Assurance||Quality Control|
|1.||Quality Assurance prevents defects.||Quality Control provides identification of defects.|
|2.||Quality Assurance is process oriented.||Quality control is product oriented.|
|3.||Quality Assurance is proactive in the process and protective.||Quality Control is a reactive.|
|4.||Quality Assurance is a managerial tool.||Quality Control is a corrective tool.|
|5.||Each developer is responsible for Quality Assurance.||The testing team is responsible for Quality Control.|
|6.||Verification is an example of QA.||Validation is an example of QC.|
|7.||The focus of QA is to prevent defects in the developing software by paying attention to processes.||The focus of QC is to identify deficiencies in the developed software by paying attention to testing processes.|
What are the activities of Quality Control and Quality Analysis?
These are the following activities of quality control and quality analysis: