cs352 – software engineering ii lecture 17: sw quality assurance landscape slides by mohammad...

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

Upload: myrtle-sims

Post on 06-Jan-2018

215 views

Category:

Documents


0 download

DESCRIPTION

Lecture 17 Outline 1.Understanding SW Quality Attributes 2.Understand the value of SW QA 3.Quality Landscape 4.SW QA Jobs and Certificates 5.Effectiveness of QA Techniques Readings are essential for this course. Reading: (7) Code Complete Chapter 20 Accompanying site:

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