software engineering lecture 8: quality assurance

32
Software Engineering Lecture 8: Quality Assurance

Upload: belinda-stafford

Post on 18-Jan-2018

226 views

Category:

Documents


0 download

DESCRIPTION

Software Quality Assurance l The goal of SE: “to produce high-quality software” l Question: “What is software quality?” l Poor definition: “Something you worry about after code has been generated”

TRANSCRIPT

Page 1: Software Engineering Lecture 8: Quality Assurance

Software Engineering

Lecture 8: Quality Assurance

Page 2: Software Engineering Lecture 8: Quality Assurance

Today’s Topics Elements of Software Quality Quality Control & Assurance The Cost of Quality Defect Amplification & Removal The Formal Review Process Software Reliability & Safety

Page 3: Software Engineering Lecture 8: Quality Assurance

Software Quality Assurance

The goal of SE: “to produce high-quality software”

Question: “What is software quality?”

Poor definition:“Something you worry about after code has been generated”

Page 4: Software Engineering Lecture 8: Quality Assurance

SQA Principles Quality management approach Effective SE methods / tools Ongoing technical reviews Multi-tiered testing strategy Control of documentation, updates Standards compliance procedure Ongoing measurement, reporting

Page 5: Software Engineering Lecture 8: Quality Assurance

Variation Control

One goal is to minimize variation:• Among products, product versions • Process results (estimated vs. actual)• Behavior (defects noted over time)

Challenge: constantly evolve the product without degrading its reliability, functionality, etc.

Page 6: Software Engineering Lecture 8: Quality Assurance

What is Quality? Quality of design

• Requirements analysis• Specifications• Architectural design, detailed design

Evaluating the product• Does design follow requirements?• Does implementation follow design?• Does product meet performance goals?

Page 7: Software Engineering Lecture 8: Quality Assurance

Quality Control Inspections, reviews, tests:

• Each module meets requirements?• Feedback to development process• Automated, manual, hybrid tests

Key: All modules must have defined and measurable specifications for output evaluation

Page 8: Software Engineering Lecture 8: Quality Assurance

Quality Assurance

Auditing and reporting functions Goals:

• Provide management with information on product quality• Trigger identification & resolution of quality problems

Page 9: Software Engineering Lecture 8: Quality Assurance

Software Quality Assurance

Conformance to:• Explicitly stated functional and performance requirements• Explicitly documented development standards• Implicit characteristics of professional software

Page 10: Software Engineering Lecture 8: Quality Assurance

SQA [2]

Three important points:• requirements are the foundation for measuring quality• specified standards guide the development process• implicit requirements (e.g., maintainability)

Page 11: Software Engineering Lecture 8: Quality Assurance

The Cost of Quality Prevention costs

• quality planning• formal technical reviews• test equipment & training

Appraisal costs• “first time through”• single project, historical evolution• equipment calibration & maintenance• testing effort

Page 12: Software Engineering Lecture 8: Quality Assurance

The Cost of Quality [2] Failure costs include:

• Internal failure costs (before release)• rework & repair• failure mode analysis

• External failure costs (after release)• complaint resolution• product return and replacement• help line support• warranty work

Page 13: Software Engineering Lecture 8: Quality Assurance

Cost of Correcting Defects Relative costs to find and repair a defect increase

dramatically:• From prevention to detection• From internal vs. external

IBM example:• Prevention = ~$90/defect• Field fix = ~$25,000/defect

18x more expensive!

Page 14: Software Engineering Lecture 8: Quality Assurance

[Fro

m S

EPA

4/e]

Page 15: Software Engineering Lecture 8: Quality Assurance

SQA Activities Independent person or group

“...large classes of errors escape the originator more easily than … anyone else” [FRE90]

Prepare SQA Plan• Evaluations to be performed• Audits and reviews to be performed• Standards applicable to the product• Error reporting and tracking• Documents produced by SQA• Amount/type of feedback to developers

Page 16: Software Engineering Lecture 8: Quality Assurance

Types of Reviews Informal discussion of technical problems Formal presentation to customers / management /

staff Formal technical review (FTR)

“code walkthrough” Find errors before they become defects!

Page 17: Software Engineering Lecture 8: Quality Assurance

Reviews [2] Design activities introduce 50-65% of all errors Reviews can uncover up to 75% of all design

flaws Substantial cost savings in development and

maintenance

Page 18: Software Engineering Lecture 8: Quality Assurance

Defect Amplification Model

[from SEPA 4/e]

Page 19: Software Engineering Lecture 8: Quality Assurance

Defect Amplification: No Reviews

[From SEPA 4/e]

Page 20: Software Engineering Lecture 8: Quality Assurance

Defect Amplification: w/Reviews

[From SEPA 4/e]

Page 21: Software Engineering Lecture 8: Quality Assurance

Defect Removal

Percentage of Costly DefectsIs Higher (66% vs. 93%)

[From SEPA 4/e]

Cost Before testMuch Greater (34% vs. 7%)

Total Cost of DefectsMuch Greater

Page 22: Software Engineering Lecture 8: Quality Assurance

The Review Meeting 3-5 people Advance preparation

(< 2 hours per person)• Review software, read documentation

Meeting duration less than 2 hours Constraints limit focus of each meeting (e.g., single

component) Improve likelihood of uncovering errors

Page 23: Software Engineering Lecture 8: Quality Assurance

Review Meeting [2] Agenda:

• Introduction by developer• Walk-through with Q/A• Review “issues list” is created• Decide whether to:

• accept module without modifications• reject due to severe errors

(repeat review at a future time)• accept with revisions (no further review)

• Summary Report / Action Items

Page 24: Software Engineering Lecture 8: Quality Assurance

Review Guidelines “Review the product, not the producer” Set and maintain agenda Limit debate and rebuttal Enunciate, don’t solve problems Take written notes Insist on advance preparation

Page 25: Software Engineering Lecture 8: Quality Assurance

Review Guidelines [2]

Allocate resources for reviews Conduct meaningful training Review your early reviews!

Page 26: Software Engineering Lecture 8: Quality Assurance

Causes of Defects Incomplete / erroneous spec Misinterpret customer communication Intentional deviation from spec Programming standards not met Error in data representation Inconsistent module interface Error in design logic

Page 27: Software Engineering Lecture 8: Quality Assurance

Causes of Defects [2] Incomplete / erroneous testing Inaccurate / incomplete documentation Error in implementation of design Ambiguous / inconsistent UI

Page 28: Software Engineering Lecture 8: Quality Assurance

Statistical QA Collect info about defects Trace defects to causes, tabulate Prioritize (e.g. “80/20 rule”) Move to correct problems Create error index for each module, weighting

more heavily those errors that were discovered later

Page 29: Software Engineering Lecture 8: Quality Assurance

Software Reliability

“Probability of failure-free operation of a module in a specified environment for a specified time” [MUS87]

How to define “failure”? Annoying vs. catastrophic Varying effort to fix

Page 30: Software Engineering Lecture 8: Quality Assurance

Reliability Measures Mean time between failures (MTBF) Obscure defects occur rarely Some defects never detected Defects that are more frequent and costly are most

important

Page 31: Software Engineering Lecture 8: Quality Assurance

Software Safety

Identify hazards Prioritize (probability, severity) Design to minimize hazards Execution modeling:

• Fault tree analysis [VES81]• Real-time logic [JAN86]• Petri nets [LEV97

Poka-yoke devices:

Page 32: Software Engineering Lecture 8: Quality Assurance

Questions?