Unit IV FUNDAMENTALS OF SOFTWARE QUALITY ASSURANCE Shreyasi

  • Slides: 21
Download presentation
Unit –IV FUNDAMENTALS OF SOFTWARE QUALITY ASSURANCE Shreyasi S. Paul

Unit –IV FUNDAMENTALS OF SOFTWARE QUALITY ASSURANCE Shreyasi S. Paul

What exactly is Quality? Typical definitions include such phrases as �“the degree of excellence

What exactly is Quality? Typical definitions include such phrases as �“the degree of excellence of something”, �“how �“a or good or bad something is” or high level of value”. �IEEE definition : Software quality is the degree to which system, component, or process meets • 1. specified requirements. • 2. customer or user needs or expectations.

� Quality Definition Assurance is defined as the auditing and reporting procedures used to

� Quality Definition Assurance is defined as the auditing and reporting procedures used to provide the stakeholders with data needed to make well-informed decisions. � It is the Degree to which a system meets specified requirements and customer expectations. � SOFTWARE QUALITY ASSURANCE (SQA) is a set of activities for ensuring quality in software engineering processes � IEEE definition - Software quality assurance is : • 1. A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. • 2. A set of activities designed to evaluate the process by which the products are developed or manufactured. Contrast with quality control.

Quality Assurance Criteria Quality assurance criteria against which the software would be evaluated against:

Quality Assurance Criteria Quality assurance criteria against which the software would be evaluated against: � correctness � efficiency � flexibility � integrity � interoperability � maintainability � portability � reliability � reusability � testability � usability

Things we can do to ensure we produce a high quality (low defect) product

Things we can do to ensure we produce a high quality (low defect) product Two main approaches to QA: � Process: Build in quality from the start � Test: Add quality through removing bugs

SQA Processes �Processes include: �Software Development Methodology �Project Management �Configuration Management �Requirements Development/Management �Estimation

SQA Processes �Processes include: �Software Development Methodology �Project Management �Configuration Management �Requirements Development/Management �Estimation �Software Design �Testing �etc

�Once the processes have been defined and implemented, Quality Assurance has the following responsibilities:

�Once the processes have been defined and implemented, Quality Assurance has the following responsibilities: �identifying weaknesses in the processes �correcting those weaknesses to continually improve the processes

Some practices �Good design and planning �Coding style guides �Code reviews/walkthroughs �Pair programming

Some practices �Good design and planning �Coding style guides �Code reviews/walkthroughs �Pair programming

Test – the most common QA practice �VERIFY: “DID WE BUILD THE SYSTEM RIGHT?

Test – the most common QA practice �VERIFY: “DID WE BUILD THE SYSTEM RIGHT? ” �VALIDATE: “DID WE BUILD THE RIGHT SYSTEM? ”

The quality management system under which the software system is created is normally based

The quality management system under which the software system is created is normally based on one or more of the following models/standards: �CMMI �Six Sigma �ISO 9000

Components of the Software Quality Assurance System The SQA Components that are used by

Components of the Software Quality Assurance System The SQA Components that are used by the Software Quality Assurance System can be classified into six different categories; 1. 2. 3. 4. 5. 6. Pre-project components Components of project life cycle activities assessment Components of infrastructure error prevention and improvement Components of software quality management Components of standardization, certification, and SQA system assessment Organizing for SQA – the human components

software quality in business context In the context of software engineering, software quality refers

software quality in business context In the context of software engineering, software quality refers to two related but distinct notions that exist wherever quality is defined in a business context: It is the degree to which the correct software was produced. SQA is software development life cycle that checks developed software to make assure that Software Quality Assurance meets desired quality measures. Software Quality Assurance based on two parameters: The degree to which system process meets specified requirements. The degree to which a system process meets customer or user needs or expectations.

However, Software quality is something, which does not only deal with programming. Software quality

However, Software quality is something, which does not only deal with programming. Software quality is something that, deals with all the aspects or all the phases of software development activities. You think about software quality, you should think about improving ways of developing software. So, This is very important we cannot expect to have high quality software products or to high quality software services without changing and without improving the way, we do the software business the way we develop software products.

Components of the Software Quality Assurance

Components of the Software Quality Assurance

Components of the Software Quality Assurance • Software testing is a popular risk management

Components of the Software Quality Assurance • Software testing is a popular risk management strategy. It is used to verify that functional requirements were met. 1. SOFTWARE • The major purpose of verification and validation activities is to ensure that software design, code, and documentation meet all the requirements imposed on them. TESTING 2. QUALITY CONTROL 3. SOFTWARE CONFIGURATION MANAGEMENT. • Quality control is defined as the processes and methods used to monitor work and observe whether requirements are met. • It focuses on reviews and removal of defects before shipment of products. For small projects, the project personnel’s peer group or the department’s software quality coordinator can inspect the documents. on large projects a configuration control board may be responsible for quality control • It is concerned with the labeling, tracking and controlling changes in the software elements of a system. • It consists of activities that ensure that design and code are defined and cannot be changed without a review of the effect of the change itself and its documentation.

How to implement the quality assurance? �Step 1) Develop SQA Plan �Step 2) Define

How to implement the quality assurance? �Step 1) Develop SQA Plan �Step 2) Define the standards/methodology �Step 3) Review the process

planning for software quality assurance Step to develop and implement a Software quality Assurance

planning for software quality assurance Step to develop and implement a Software quality Assurance Plan Step 1. Document the plan. Step 2. Obtain Management Acceptance. Step 3. Obtain development acceptance. 4. Plan for implementation of the SQA Plan. Step 5. Execute the SQA Plan.

Product Quality and Process Quality �The process area "Process and Product Quality Assurance" deals

Product Quality and Process Quality �The process area "Process and Product Quality Assurance" deals with the review of processes and work results in order to provide the staff and the management with an objective insight in processes and associated work results. �For this purpose processes and work results have to be evaluated against the associated process descriptions, standards and approaches.