UNIT-6 SOFTWARE QUALITY ASSURANCE – ppt download
Presentation on theme: “UNIT-6 SOFTWARE QUALITY ASSURANCE”— Presentation transcript:
1
UNIT-6 SOFTWARE QUALITY ASSURANCE
Prepared By: Prof.Rucha Patel
2
Index Elements of Software Quality Assurance(SQA)
SQA – need, tasks, goals, metrics Statistical software quality assurance Six sigma for software engineering SQA planning and standards ISO quality standards
3
Introduction to Software Quality Assurance [SQA]:
Software quality assurance (SQA) encompasses: (1) an SQA process, (2) specific quality assurance and quality control tasks (including technical reviews and a multi-tiered testing strategy) (3) effective software engineering practice (methods and tools) (4) control of all software work products and the changes made to them (5) a procedure to ensure compliance with software development standards (when applicable) (6) measurement and reporting mechanisms.
4
Elements of Software Quality Assurance[sqa]
Software quality assurance encompasses a broad range of concerns and activities that focus on the management of software quality. Ten Elements of SQA are in the following manner: Standards Reviews and audits Testing Error/defect collection and analysis Change management Education Vendor management Security management Safety Risk management
5
Elements of Software Quality Assurance[sqa]
1. Standards: The job of SQA is to ensure that standards that have been adopted are followed and that all work products conform to them. 2. Reviews and audits: Technical reviews are a quality control activity. Their intent is to uncover errors. Audits are a type of review performed by SQA personnel with the intent of ensuring that quality guidelines are being followed for software engineering work. 3. Testing: The job of SQA is to ensure that testing is properly planned and efficiently conducted so that it has the highest likelihood of achieving its primary goal.
6
Elements of Software Quality Assurance[sqa]
4. Error/defect collection and analysis: SQA collects and analyzes error and defect data to better understand how errors are introduced and what software engineering activities are best suited to eliminating them. 5. Change management: SQA ensures that adequate change management practices have been instituted. 6. Education: The SQA organization takes the lead in software process improvement and is a key proponent and sponsor of educational programs. 7. Vendor management: The job of the SQA organization is to ensure that high-quality software results by suggesting specific quality practices that the vendor should follow (when possible), and incorporating quality mandates as part of any contract with an external vendor.
7
Elements of Software Quality Assurance[sqa]
8. Security management: SQA ensures that appropriate process and technology are used to achieve software security. 9. Safety: SQA may be responsible for assessing the impact of software failure and for initiating those steps required to reduce risk. 10. Risk management: Although the analysis and mitigation of risk is the concern of software engineers, the SQA organization ensures that risk management activities are properly conducted and that risk- related contingency plans have been established.
8
SQA – need, activities, tasks, goals, metrics
Quality Assurance testing is employed to reduce possible defects in every stage of the software development life cycle. The focus of [Software Quality Assurance] is to monitor continuously throughout the Software Development Life Cycle to ensure the quality of the delivered products. In process assurance, SQA provides management with objective feedback regarding compliance to approved plans, procedures, standards, and analyses.
9
SQA – need, activities, tasks, goals, metrics
SQA Tasks: These actions are performed (or facilitated) by an independent SQA group that: Prepares an SQA plan for a project: The plan identifies evaluations to be performed, audits and reviews to be conducted, standards that are applicable to the project, procedures for error reporting and tracking, work products that are produced by the SQA group. Participates in the development of the project’s software process description. The SQA group reviews the process description for compliance with organizational policy, internal software standards, externally imposed standards (e.g., ISO-9001), and other parts of the software project plan.
10
SQA – need, activities, tasks, goals, metrics
Reviews software engineering activities to verify compliance with the defined software process: The SQA group identifies, documents, and tracks deviations from the process and verifies that corrections have been made. Audits designated software work products to verify compliance with those defined as part of the software process: The SQA group reviews selected work products; identifies, documents, and tracks deviations; verifies that corrections have been made; and periodically reports the results of its work to the project manager. Ensures that deviations in software work and work products are documented and handled according to a documented procedure:Deviations may be encountered in the project plan, process description, applicable standards, or software engineering work products.
11
SQA – need, activities, tasks, goals, metrics
Records any noncompliance and reports to senior management: Noncompliance items are tracked until they are resolved. SQA Goal, Attribute and Metrics: SQA Goals: Following are SQA Goals: Requirements quality. Design quality. Code quality. Quality control effectiveness.
12
SQA – need, activities, tasks, goals, metrics
SQA Attributes and metrics: Below table identifies the attributes that are indicators for the existence of quality for each of the goals discussed.
13
SQA – need, activities, tasks, goals, metrics
SQA Attributes and metrics:
14
Statistical Software Quality Assurance
Statistical quality assurance reflects a growing trend throughout industry to become more quantitative about quality. For software, statistical quality assurance implies the following steps: 1. Information about software errors and defects is collected and categorized. 2. An attempt is made to trace each error and defect to its underlying cause (e.g., nonconformance to specifications, design error, violation of standards, poor communication with the customer). 3. Using the Pareto principle (80 percent of the defects can be traced to 20 per-cent of all possible causes), isolate the 20 percent (the vital few). 4. Once the vital few causes have been identified, move to correct the problems that have caused the errors and defects.
15
Six Sigma for Software Engineering
Six Sigma is the most widely used strategy for statistical quality assurance in industry today. Originally popularized by Motorola in the 1980s, the Six Sigma strategy “is an accurate and disciplined methodology that uses data and statistical analysis to measure and improve a company’s operational performance by identifying and eliminating defects’ in manufacturing and service-related processes”. The term Six Sigma is derived from six standard deviations—3.4 instances (defects) per million occurrences—implying an extremely high quality standard. The Six Sigma methodology defines three core steps: Define: customer requirements and deliverables and project goals via well-defined methods of customer communication. Measure: the existing process and its output to determine current quality performance (collect defect metrics). Analyze: defect metrics and determine the vital few causes.
16
Six Sigma for Software Engineering
If an existing software process is in place, but improvement is required, Six Sigma suggests two additional steps: Improve: the process by eliminating the root causes of defects. Control: the process to ensure that future work does not reintroduce the causes of defects. These core and additional steps are sometimes referred to as the DMAIC (define, measure, analyze, improve, and control) method.
17
Six Sigma for Software Engineering
If an organization is developing a software process (rather than improving an existing process), the core steps are augmented as follows: Design: the process to (1) avoid the root causes of defects and (2) to meet customer requirements. Verify: that the process model will, in fact, avoid defects and meet customer requirements. This variation is sometimes called the DMADV (define, measure, analyze, design, and verify) method.
18
Six Sigma for Software Engineering
19
SQA Planning and Standards
Quality planning is the process of developing a quality plan for a project. The quality plan should set out the desired software qualities and describe how these are to be assessed. The SQA Plan provides a road map for instituting software quality assurance. Developed by the SQA group (or by the software team if an SQA group does not exist), the plan serves as a template for SQA activities that are instituted for each software project.
20
SQA Planning and Standards
A standard for SQA plans has been published by the IEEE. The standard recommends a structure that identifies: (1) The purpose and scope of the plan (2) A description of all software engineering work products (e.g., models, documents, source code) that fall within the purview of SQA (3) All applicable standards and practices that are applied during the software process (4) SQA actions and tasks including reviews and audits) and their placement throughout the software process (5) The tools and methods that support SQA actions and tasks (6) Software configuration management procedures (7) Methods for assembling, safeguarding, and maintaining all SQA- related records (8) Organizational roles and responsibilities relative to product quality
21
SQA Planning and Standards
In the quality plan, you should therefore define the most important quality attributes for the software that is being developed. [Table of Quality Attributes]
22
SQA Planning and Standards
The QA process is primarily concerned with defining or selecting standards that should be applied to the software development process or software product. The two types of standards that may be established as part of the quality assurance process are: 1. Product standards: These standards apply to the software product being developed. They include document standards, such as the structure of requirements documents; documentation standards, such as a standard comment header for an object class definition; and coding standards that define how a programming language should be used. 2. Process standards: These standards define the processes that should be followed during software development.
23
SQA Planning and Standards
[Table of Product and Process Standards]
24
ISO Quality Standards An international set of standards that can be used in the development of a quality management system in all industries is called ISO 9000. ISO 9000 standards can be applied to a range of organisations from manufacturing to service industries. ISO 9001 is the most general of these standards and applies to organisations concerned with the quality process in organisations that design, develop and maintain products.
25
ISO Standards/ ISO 9126
26
ISO Standards/ ISO 9126
27
ISO Standards/ ISO 9126 ISO 9126 provides guidelines for the use of the quality characteristics. Once the requirements for the software product have been established, the following steps are suggested: 1. Judge the importance of each quality characteristic for the application: 2. Select the external quality measurements within the ISO framework relevant to the qualities prioritized above:
28
ISO Standards/ ISO 9126 3. Map measurements onto ratings that reflect user satisfaction: 4. Indentify the relevant internal measurements and the intermediate products in which they appear: 5. Overall assessment of product quality
29
Thank You