SDLC comprises various phases that are being carried out in a particular manner towards the direction of software development. However, each phase or the whole development process needs to adhere to the established standards and guidelines so as to maintain the quality of the development process & stages in order to achieve the software product of desired quality.
Abbreviated as SQA, Software Quality Assurance is a set of procedures that undertakes the task of monitoring, controlling and maintaining the quality of the development process. It is the process of monitoring the SDLC to ensure the quality of the processes or of different phases is in compliance to pre-defined or established standards for development such as ISO 9000 or CMMI model.
QA is all about effective management of development phases in order to meet the needs of the end users in the developed software product. It is a parallel activity performed along with development to improve and increase the efficiency and effectiveness of the SDLC to meet the objective or goal of producing the quality product based on the specified requirements & specification.
Software quality assurance includes software cost and benefits, and suggests the inclusion of software characteristics or quality attributes. These features are also known as software metrics, functional and non-functional requisites.
The attributes are abbreviated as FURPS:
Software quality assurance is tested by execution of the software and evaluation of attributes such as usability and functionality. On the other hand, the remaining attributes i.e. adaptability and reliability can be estimated through simulated execution of the software on different platforms.
Although, QA and QC are interrelated to each other to some extent, still they are quite different to each other. There are certain points that distinguishes QA from QC like
The responsibility of the SQA team for any software is to supervise the actions of the software quality checking team. They look after the practice of specified processes and compliance to standards. The SQA team is also appointed with the task of evaluating the repairing time for defects and thus determines the usefulness of the software.
The indefinable nature of software creates issues with evaluation of FURPS. However consistent practices in this domain aim to lower the time taken to scout a defect and the time required to resolve it. Revolutionary improvisations in coding standards could ease the software quality checking procedure and thus facilitate better software quality assurance
In brief, it can be stated that a better and effective management of development process is highly responsible for achieving and maintaining the quality aspect both in the product and the process. Thus, SQA has become an essential component of the development process that along with quality management and covers following aspects also