creator: acsession no: 15 slide no: 1reviewer: ss cse300advanced software engineeringfebruary 2006...

23
Creator: AC Session No: 15 Slide No: 1 Reviewer: SS CSE300 Advanced Software Engineering February 2006 Software Quality Assurance & Software Quality Control CSE300 Advanced Software Engineering University of Sunderland © 2006 Anne Comer [email protected]

Upload: pamela-hoover

Post on 02-Jan-2016

216 views

Category:

Documents


2 download

TRANSCRIPT

Creator: AC Session No: 15 Slide No: 1 Reviewer: SS

CSE300 Advanced Software Engineering February 2006

Software Quality Assurance & Software Quality Control

CSE300

Advanced Software EngineeringUniversity of Sunderland © 2006

Anne Comer

[email protected]

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 2 Reviewer: SS

Aim of the Session

To provide a critical understanding of the

nature of Software Quality Assurance and

Control in the Software Engineering

Context.

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 3 Reviewer: SS

The Nature of Quality

• Management Commitment

• Words and Money

• Planning (at all levels)

• Communication

• Involvement (“walk the halls”)

• Control

• Measurement - key

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 4 Reviewer: SS

The History of Quality

Guild Halls - standards (materials, products, practices, conditions)

Industrialisation - supervisors - growing responsibility

for quality - formal quality inspection

Post WW1 - sophistication - stats, societies, standards

(military, civil, international)

60’s - Japanese adopt and adapt quality methods

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 5 Reviewer: SS

Development of Quality

• Deming, Juran, Ishikawa, Shingo, Crosby

• TQM

– kaizen

– atarimae hinshitsu

– kansei

– miryokuteki hinshitsu

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 6 Reviewer: SS

What is Quality?

• Basic concept: ‘Fitness for purpose’

• Quality Definition –

“The totality of features and characteristics of a

product or service that bear on its ability to

satisfy stated or implied needs.”- ISO 8402

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 7 Reviewer: SS

Quality Concepts• general objective: “reduce the variation between

samples” ... what does mean for software?

• quality control: inspections, reviews, tests

• quality assurance: analysis, auditing and reporting activities

• cost of quality– appraisal costs, prevention costs

• cost of poor quality– failure costs, external (field) failure costs

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 8 Reviewer: SS

Software Quality Assurance

FormalTechnicalReviews

SQASQA

Test Planning& Review

Measurement

Analysis&

Reporting

ProcessDefinition &Standards

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 9 Reviewer: SS

Statistical SQA

• Measurement (- of what?)– Product and Process

• Collect data

• Find causes in the process

• Find a fix, in each case, in the process

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 10 Reviewer: SS

Deming

• “ Someone once said: “You cannot inspect quality into a product.” - he meant that you must build it in!

• Quality Participation – - employee participation in decisions

• 14 point quality plan

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 11 Reviewer: SS

Quality Assurance

– Juran defined quality assurance, in his Quality Control Handbook, as:

“the activity of providing to all concerned the evidence needed to establish confidence that the quality function is being performed adequately”

– Also defined as:

“Systematic activities providing evidence of fitness for purpose of the total software product”

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 12 Reviewer: SS

QA Activities

• prepare a SQA plan

• participate in the definition of a project’s software development plan (and process model)

• review (software engineering) activities to verify compliance with defined software process

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 13 Reviewer: SS

QA Activities – contd.

• review selected (software) work products to verify compliance with specifications

• ensure deviations from defined activities and products are documented and handled according to defined procedures

• record any non-compliances

• regularly report to senior management

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 14 Reviewer: SS

Software Quality Planning

“If we fail to plan, we plan to fail….”anon.

Objective:

Provide a framework for understanding

the scope of the problem and for making

estimates of resources, cost and

schedule.

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 15 Reviewer: SS

Launching a SQA Programme• initiate the programme

• identify the issues

• write the plan

• establish standards

• establish the function

• train and promote

• implement the plan

• evaluate the programme

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 16 Reviewer: SS

Watts Humphrey says:

“The people responsible for the software projects are the only ones who can be responsible for quality. The role of SQA is to monitor the way these groups perform their responsibilities.”

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 17 Reviewer: SS

Pitfalls• it is a mistake to think that SQA people (alone) can do

anything about quality

• the existence of a SQA function does not ensure that the standard procedures are followed

• unless management periodically demonstrates its support for SQA, by following their recommendations, SQA will be ineffective

• unless line management requires that SQA tries to resolves their issues with project management before escalation, SQA and development will not work together effectively.

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 18 Reviewer: SS

QA vs. QC

• Precise definitions vary, but broadly we may distinguish between these as follows:

– software quality assurance concerns the design and monitoring of an appropriate regime of standards and procedures to achieve high quality outcomes from system development activities;

– software quality control consists in the conformance to this regime by all members of a system development team.

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 19 Reviewer: SS

Software Quality Factors

• McCall et al, Factors in Software Quality, (1977), sets out a checklist of factors divided into three categories:– system operations: factors which focus on the

day-to-day use of the system;– system revision: factors which address the

ease with which changes can be made to the system;

– system transition: factors which consider the system in relation to other systems.

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 20 Reviewer: SS

System Operations Factors• correctness: does the system operate

according to its specification?

• reliability: is the system consistently able to produce accurate results? (Narrow definition?)

• efficiency: does the system avoid unwarranted resource demands?

• integrity: is the system secure from intrusion?

• usability: is it easy for users to learn how to use the system, and then convenient to use it?

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 21 Reviewer: SS

System Revision Factors

• maintainability: how easy is it to fix bugs in the system?

(this is a much narrower definition of ‘maintenance’ than is usually applied.)

• flexibility: how readily can the system be modified to meet new/changed requirements?

• testability: has the system been designed to facilitate systematic and thorough testing?

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 22 Reviewer: SS

System Transition Factors

• portability: how easy is it to adapt the system to enable it to operate in a different hardware and/or software environment?

• reusability: would it be possible and cost-effective to reuse all or some parts of the system in future development projects?

• interoperability: how readily can the system communicate and interact with other systems?

CSE300 Advanced Software Engineering February 2006

Creator/Editor: AC Session No:15 Slide No: 23 Reviewer: SS

Software QA

From the point of view of software quality assurance…..

SQA

REVIEWS TESTING

MEASURE-MENT

STANDARDS&

PROCEDURES