Transcript
Page 1: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

CS352 – Software Engineering IILecture 17: SW Quality Assurance Landscape

Slides byMohammad El-Ramly, PhD

Page 2: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

حديثشريف

أحدكم 1. عمل إذا يحب الله إنيتقنه أن عمال

على 2. اإلحسان كتب الله إنشئ كل

Page 3: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Lecture 17 Outline

1.Understanding SW Quality Attributes2.Understand the value of SW QA3.Quality Landscape4.SW QA Jobs and Certificates5.Effectiveness of QA Techniques

Readings are essential for this course.Reading: (7) Code Complete Chapter 20

Accompanying site: http://cc2e.com/

Page 4: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

What is SW Quality?

• Customer’s Perspective System does not crash System follows documentation & contract System is logical and easy to use

• Developer’s Perspective System is easy to change System is easy to understand System is pleasant to work on

Page 5: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

External Quality Characteristic

● Correctness. The degree to which a system is free from faults

in its specification, design, and implementation.

● Usability. The ease with which users can learn and use a

system.

● Efficiency. Minimal use of system resources, including

memory and execution time.

Page 6: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

External Quality Characteristic

● Reliability The ability of a system to perform its required

functions under stated conditions whenever required—having a long mean time between failures.

● Robustness The degree to which a system continues to

function in the presence of invalid inputs or stressful environmental conditions.

Page 7: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

External Quality Characteristic

● Integrity The degree to which a system prevents

unauthorized or improper access to its programs and data.

Ensuring that data is accessed properly

● Adaptability The extent to which a system can be used,

without modification, in applications or environments other than those for which it was specifically designed.

Page 8: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 9: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Internal Quality Characteristic

● Maintainability The ease with which you can modify a

software system to change or add capabilities, improve performance, or correct defects.

● Flexibility The extent to which you can modify a system

for uses or environments other than those for which it was specifically designed.

Page 10: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Internal Quality Characteristic

● Reusability The extent to which and the ease with which

you can use parts of the system in other systems.

● Understandability / Readability The ease with which you can comprehend a

system at organizational and detailed levels.

Page 11: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Total Quality Management

• Factories• Goal is for every item coming off the

assembly line to be perfect • Management, production, engineering, QA• Everyone is involved in quality• Develop a reliable, repeatable process• Continuously improve the process

Page 12: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

The Cost of Poor Quality

• Money• Time• Resources• Lives• Reputation• Business

Page 13: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Failure Costs

• Internal Rework Repair Failure analysis

• External Resolving complaints Returning and replacing product Help line

Page 14: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Prevention Costs

• Prevention Planning Managing and collecting information Reviews

• Appraisal Inspection Testing

Page 15: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

The Cost of Poor Quality

Page 16: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 17: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Techniques for Improving SW Quality

1.What can we do improve quality ?

• SW QA is a wide spectrum of activities conducted through out the development process that focus on: Product quality Process quality

Page 18: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Techniques for Improving SW Quality (Code Complete)

1.SW Q Objectives & Planning2.Explicit QA Activities3.Testing Strategy4.SE Guidelines5.Formal / Informal Technical Reviews6.Change-control Procedures7.Measurement of Results8.Prototyping

Page 19: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 20: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Software Quality

Landscape

Plannin

g

Requir

emen

ts

Design

Develo

pment

Testin

g

Guidelines,

Standards and

Templates

QA Planning

and Budgeting

Testing

Debugging

Reviews

Refactorin

g

Requirements

V & V

Design R

eview

Collaborative

Development /

Reviews

Metrics

Change and Configuration Management

Bug Tracking Surveys

Deploym

ent &

Maintenanc

e

M a n a g e m e n t

Contract

Review

Page 21: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

1. SW Quality Objectives

• Decide explicit quality characteristics1.Inform the developers2.They are more likely to achieve quality

objectives if they now them.3.Review their work

• Study by G M Weinberg, E L Schulman, Goals and Performance in Computer Programming (1974)

Page 22: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 23: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 24: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

2. Explicit QA Activities

• QA should be perceived as a primary not secondary goal

• QA should be an organizational culture.• Organization should train developers that

quality is a priority.

Page 25: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

3. Testing Strategy

• Develop a test strategy with product requirements, architecture and design.

• Or even consider test-driven development.

Page 26: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

4. SE Guidelines

• Decide on guidelines, templates, checklists and standards to follow. Requirements, architecture and design

guidelines. Templates for plans, reports, etc. Coding style. File naming conventions.

• Apply them and enforce them in every phase.

Page 27: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

5. Reviews

• Informal Reviews Desk-checking Walk through

• Formal Technical Reviews Act as a “quality gate” Catch problems at the “lowest-value” stage—that is, at

the stage in which problems cost the least to correct. Can be a peer review, a customer review, an,

inspection, or an external audit.

Page 28: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Changing hurts quality. Remember the Vaza

• Uncontrolled changes: Requirements => unstable designs and code Design => Inconsistency with req. and code Code => Inconsistency / invalid doc.

• Adopt incremental development• Adopt Configuration and Change Management

6. Change-control Procedures

Page 29: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Measuring what ? 3 P => Product, Project and Process Quality attributes.

• Measurements tells you if QA plan failed or succeeded.

• Can be the basis for improvement.

7. Measurement of Results

Page 30: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Develop realistic model of the system’s key functionalities. UI to evaluate usability Key calculations to see their results, memory

requirements and performance

• Studies suggest that prototyping can lead to better designs, better satisfaction of user needs and improved maintainability.

8. Prototyping

Page 31: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 32: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

CS42813-32

SQA Manager

• Responsible for SQA policy Develops testing plan Checks that plan is being followed Develops review process Trains reviewers Monitors reviews Develops customer survey plan …

Page 33: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Nonin Medical, Inc. is a rapidly growing international medical device manufacturer that has been designing and distributing high quality medical monitoring devices since 1986.

• Responsible for ensuring software quality within complex medical device products through the development and execution of software test plans by way of verification procedures based upon software and system specifications

• http://www.nonin.com/JobPost.aspx?ID=243

SW QA Engineer Ad.

Page 34: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Review product design documentation to ensure that requirements stated are correct, unambiguous, and verifiable.

• Consult with product development to evaluate system interfaces, operational requirements, and performance requirements of overall system.

• Define test methods and create test plans for new or updated software projects.

• Recommend design improvements or corrections to engineers throughout the development process.

• Maintain effective communication with the project software engineers..

SW QA Engineer: Duties & Responsibilities

Page 35: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

• Execute test plans and create test reports to describe program evaluation, testing, and correction.

• Monitor program performance after implementation to prevent reoccurrence of program operating problems and ensure efficiency of operation.

• Conduct compatibility tests with vendor-provided programs.

SW QA Engineer: Duties & Responsibilities

Page 36: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 37: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 38: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Effectiveness of Quality Techniques

Page 39: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD
Page 40: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

Cost of Fixing Defects• Fixing a defect in later phases costs more• One step techniques are cheaper than 2-

steps Inspection: symptoms and cause Testing: symptoms (more work to get root

cause) MS: 3 hrs to find and fix a bug by inspection MS: 12 to find and fix a bug with testing

Page 41: CS352 – Software Engineering II Lecture 17: SW Quality Assurance Landscape Slides by Mohammad El-Ramly, PhD

SW QA Program must….

• Employ a variety of techniques to achieve higher-than-average quality Formal design inspections of the critical parts

of a system. Modeling or prototyping using a rapid

prototyping technique Code reading or inspections Execution testing


Top Related