Introduction to Software Quality Control
The Software Quality Control is a validation activity, where the quality of the developed software product meets the client need and exceptions or fit for purpose i.e.to checking if we have built the right software or not. This process deals with product oriented to find the defect and to improve the developed software product quality. The software product testing by executing the application code is the part of software quality control.
Software Quality Control Activities
The software quality control process mainly deals with software product, development process and resources. It works on PDCA (Plan Do Check Action) principle.
The software quality control process mainly deals with two activities with some sub activities.
1. Review Activities(Quality Assurance(QA))
The Review Activities of software quality control process are as follows:
|Test Plan Review|
|Test Cases Review|
The Review Activity is one type of static testing or verification process of the software documents to prevent defect. It is process-oriented to improve the development process performed without program execution. The requirement document, design review are part of it. It has multiple review activities like requirements, design, coding, test plan, test cases and deployment within the software development life cycle process. This is a process level verification to prevent the defect from the software application documents.
2. Testing Activities(Quality Control(QC))
The Testing Activities of the software quality control process are as follows:
The Testing Activity is a one type of Dynamic in nature or validation process of the software application to find the defects. It has product oriented to enhance the software product quality, performed with program execution. The product testing is the main part of it and has multiple testing activities like unit, integration, system, acceptance, release and maintenance testing phases within the software development life cycle process.
In this activity we also use some extra functional levels of testing like smoke testing, sanity testing, retesting, regression testing and some non functional testing like performance testing, stress testing, load testing, volume testing, endurance testing to improve the priority (urgency of fix the defect) and severity (Impact of defect) of the developed software product quality. So the both QA(verification) and QC(validation) process are internally related to the software quality control improvement process.
Below diagram shows working of the testing activities with detailed explanation:
The testing of the smallest independently executable parts /units/components of the software application. It is also known as component testing. It is done by the development team early in the development stage.
In this testing, to find the defects or bugs in interfaces or interactions between components/units i.e. to test the combined units are works or not. It is done by the Technology/Development Lead not done by Testers. There are two approaches of Integration Testing i.e. Top Down and Bottom Up approach.
Here test drivers and test stubs are used to assist the integration testing workflow. When there are temporary programs in the applications to substitute programs in development, are called stubs and drivers. The main program if replace is called a Driver and if the lower programs are replaced, then it is called Stubs. When we have stubs and drivers we call the environment as Test Harness.
Once deployment team sends a mail that software is installed into the test environment. We start with build verification testing (Smoke test). Here we check if minimum features are working and send a mail to the development team that we are accepting or rejecting the built. It is also called end to end testing and performed by the testing team at testing environment. When two or more applications need to operate together, there is one more level of testing between system testing and user acceptance testing is called system integration testing.
Acceptance Testing / User Acceptance Testing
The objectives of this testing are:
- To gain confidence for release.
- To check if the software is fit for the purpose.
- Checking the software from a business point of view.
It is performed by the client. It has two types such as Alpha Testing and Beta Testing. The Alpha Testing is called Business Acceptance Testing (BAT) or Factory Level Testing, performed by the client in the development organisation site. The Beta Testing is called Product Verification Testing (PVT) or Field Level Testing, performed by the client in the place where the software being used.
The release testing is a final testing phase of software product or application to verify, the developed software to be release. Here the entire functionalities of that application should be tested to ensure the readiness of the software application.
The testing of the software which is in production, when there are changes to either the (i.e. defects or modifications) software or to the environment. In this phase, we plan on Impact Analysis i.e. the change control board (CCB) would be a group of architects, designers, developers and testers, who can judge the impact of change asked by the client i.e. change request (CR). It is also helpful for testing as it guides where to do most of the testing i.e. retesting and regression testing. This type of testing done by the testers.
Software Quality Control Standards
There are some ISO standards to review/describes the quality of software developed product. The ISO/IEC/IEEE having proposed a number 29119 for internationally standard in software quality control, which followed by software development life cycle (SDLC) model of development process. It has mainly five international levels of software quality control (QC) standards and some sub standards to review both process level & product level of the application.
They are as follows:
1. International Software QC Standards
- ISO/IEC 29119-1: It indicates the concepts and definitions of software.
- ISO/IEC 29119-2: It indicates the different test processes in a software product.
- ISO/IEC 29119-3: It deals with testing related documents of the software application.
- ISO/IEC 29119-4: It describes the different testing techniques and plans for that software product.
- ISO/IEC 29119-5: It deals with different type’s keyword driven software testing.
2. Auxiliary Software QC Standards
- IEEE 730: It deals with software product verification i.e. Quality Assurance (QA).
- IEEE 830: It describes the accurate development of software application with proper requirements.
- EEE 1008: This standard deals with unit testing of the developed application.
- IEEE 1012: It deals with the verification and validation of application.
- IEEE 1028: This standard deals with proper software application inspection purpose.
- IEEE 1044: It is used to check some inconsistency in application software.
- IEEE 1059: It deals with application guiding verification and validation.
- IEEE 1061: This standard is used for better quality of software product development i.e. to deals with application quality metrics.
- IEEE 12207: It is used for used development life cycle processes of application.
Software Quality Control Techniques
The Quality control is a process followed by the IT organisation to develop extreme quality software product and improve the organisation productivity as well as goals of software product. There are multiple techniques/methods for software quality control of software application, but the PDCA (Plan Do Check Action) technique is one of the best approach towards software quality control.
- Goal Question Centric Model
- Overall Risk Management Model
- The PDCA Model
- Overall Software Quality Control Model
- Quality Control By Spiral Model
- Control Management Model
It stands for Plan-Do-Check-Action model. It is one of the simplest models of software development process through which the quality control of the application done from the initial stage of the development. The parameters like product/application, processes and resources are the influences the quality control of the software application.
It contains four phases:
1. Plan: During this initial phase the software quality control processes are initiated or planned. Here to set standard software quality goal and plan accordingly to get it.
2. Do: In this phase to start developing the software application according to the project plan parameters to execute it i.e. work in progress state.
3. Check: In this phase dedicated to the static and dynamic testing of the developed software application to find defects to improve the quality of product. Here we validate the excepted output values with actual parameter values.
4. Action: During this phase the corrective actions takes place to remove bugs or issues from the developed software product i.e. the bugs are fixed and the rework action done if needed.
Advantages and disadvantages of Software Quality Control
Given below are the advantages and disadvantages:
Below are the advantages
- It is used to validate the software application as per the client needs and exception.
- The software QC is used to identify the defects in the software application.
- It improves the productivity of software development team as well as software product quality.
- It enhances the organisational ability to produce a high quality software product.
- It makes the final software product ready to deliverable.
- Increased the build trust in project management and future level development.
- It used to reduce the re-development or re-work cost as the Software QC will impose from scratch level of development phase.
- It boosts the customer satisfaction and efficiency of the software product.
- It is a reactive approach and separate testing team will involves finding defects.
Below are the disadvantages
- It requires more time consuming process testing.
- The deployment of software product should be delay.
- It needs more resources for software product validation.
- The each individual of the team don’t take responsible of quality of own work.
- If the software application is rejected, then there is a big issue in budgeting for organisation.
In this article, we discuss the software quality control process to develop the development build trust, identify defects, prevent defects and ensure the quality of the software product. It also describes the different international software quality control standards with activities and methods related to it. As it is reactive approach to ensure the developed software product meets the client exceptions and standard quality or not. It involves multiple testing phases to develop the standard product quality and improve the development process in software development life cycle process. Thus it is a final step to check the software product before delivery.
This is a guide to Software Quality Control. Here we discuss the introduction to software quality control along with activities, advantages and disadvantages. You may also have a look at the following articles to learn more –
- Statistical Analysis Softwares
- Open Source Software
- Software Quality Assurance
- Software System Architecture