Software Quality Assurance – definition & objectives
The main objective of software quality assurance (SQA) is to minimize the cost of guaranteeing quality by a variety of activities performed throughout the development and manufacturing processes/stages. These activities prevent the causes of errors, and detect and correct them early in the development process. As a result, quality assurance activities substantially reduce the rate of products that do not qualify for shipment and, at the same time, reduce the costs of guaranteeing quality in most cases.
Software quality – IEEE definition
Software quality is the degree to which a system, component, or process meets specified requirements. The degree to which a system, component, or process meets customer or user needs or expectations.
Despite its emphasis on planning and systematic implementation, the IEEE definition restrains the scope of SQA in several directions, excluding maintenance and timetable and budget issues. This author adopts a broader conception of SQA that, of course, affects its definition. A broader definition, though placing additional burdens on the SQA function, is expected to yield better results and greater customer satisfaction. The main deviations from the IEEE definition are:
- Software Quality Assurance (SQA) should not be limited to the development process. Instead, it should be extended to cover the long years of service subsequent to product delivery. Adding issues directly related to the software product introduces quality issues that integrate software maintenance functions into the overall conception of SQA.
- SQA actions should not be limited to the technical aspects of the functional requirements, but should include also activities that deal with scheduling and the budget. The reasoning behind this expansion in scope is the close relationship between timetable or budget failure and the meeting of functional technical requirements. Very often, when projects are under severe time constraints, professionally “dangerous” changes that can seriously harm the prospects of meeting the functional requirements are made in the project schedule. Similar undesirable results can be expected with projects that are under budgetary constraints and unable to cope with the inadequate resources allocated to the project and its maintenance.
Software quality assurance is: A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines.
Software Quality Assurance (SQA) Objectives
The objectives of Software Quality Assurance are to produce software that is fit for its intended purpose. These objectives include finding and addressing errors during the development process. This is accomplished through the use of formal technical reviews. These reviews are conducted by a review leader, a producer, and reviewers. A formal review is a highly-skilled effort that uncovers errors and improves quality performance.
A software quality assurance program is a planned and systematic series of activities that will ensure that the finished software will meet requirements, budget, schedule, and quality expectations. These activities cover both functional technical and managerial aspects of software development. Software quality assurance activities will be performed throughout the entire process to help detect errors and reduce the rate of non-qualified products.
Often, it is difficult to measure software quality. The concepts of reliability and efficiency are easily understood, but a system’s ability to gain trust is difficult to measure. A software quality measurement should consider the trust that users have in the application. This will give them confidence in the end product. However, there is no one-size-fits-all approach to measuring quality.
Software quality assurance goals should be set during the planning stage. The plan will guide the activities of the SQA team during the development stage. It should include the standards that apply to the project and procedures for error reporting. It should also detail the amount of feedback that will be provided to the software project team. This ensures that the quality of the software is up to par.
Another objective of software quality assurance is to improve the ability of the application to process data. Developing software that processes data quickly is an important feature for a company. But this ability can be hard to measure because software is intangible. Using metrics helps quantify the impact of decisions and optimize projects. By tracking productivity, software quality assurance professionals can make more informed decisions.
Another objective of software quality assurance is to identify bugs. Debugging is an essential part of software development. Bugs must be identified and fixed in order for the software to be useful. Without a strong focus on bugs, a product will not be adopted by its target audience. Therefore, the testing process needs to be a professional, independent, and objective process. It should include valid and invalid input values, and should be based on a comprehensive documentation of the software’s use.
A quality assurance analyst has the primary responsibility of writing test cases and performing functional testing of web applications. He or she also supports the creation of end-to-end test plans and manages all activities related to them. In a software quality assurance team, these individuals ensure that the software meets the needs of the end users.
Software quality assurance objectives also address usability. These measures are the degree to which software systems are easy to use and understand. Usability includes aesthetics, consistency, documentation, and responsiveness.
Software development (process-oriented)
- Assuring an acceptable level of confidence that the software will conform to functional technical requirements.
- Assuring an acceptable level of confidence that the software will conform to managerial scheduling and budgetary requirements.
- Initiating and managing of activities for the improvement and greater efficiency of software development and SQA activities. This means improving the prospects that the functional and managerial requirements will be achieved while reducing the costs of carrying out the software development and SQA activities.
Software maintenance (product-oriented)
- Assuring with an acceptable level of confidence that the software maintenance activities will conform to the functional technical requirements.
- Assuring with an acceptable level of confidence that the software maintenance activities will conform to managerial scheduling and budgetary requirements.
- Initiating and managing activitiesto improve and increase the efficiencyof software maintenance and SQA activities. This involves improving the prospects of achieving functional and managerial requirements while reducing costs.
Software quality assurance and software engineering
According to the IEEE (1991), software engineering is defined as follows:
- The application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software.
- The study of approaches as in (1).
The characteristics of software engineering, especially the systematic, disciplined and quantitative approach at its core, make the software engineering environment a good infrastructure for achieving SQA objectives. The methodologies and tools that are applied by software engineering determine, to a considerable extent, the level of quality to be expected from the software process and the maintenance services. Therefore, it is desirable that when making decisions about software methodologies and tools, SQA considerations be added to the efficiency and economy considerations associated with software engineering.
It is commonly accepted that cooperation between software engineers and the SQA team is the appropriate way to achieve efficient and economic development and maintenance activities that, at the same time, assure the quality of the product of these activities.