+ All Categories
Home > Documents > Software Quality Assurance. Introduction What is software quality? How can it be measured? How can...

Software Quality Assurance. Introduction What is software quality? How can it be measured? How can...

Date post: 26-Dec-2015
Category:
Upload: jessie-smith
View: 219 times
Download: 0 times
Share this document with a friend
Popular Tags:
42
Software Quality Assurance
Transcript
Page 1: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Software Quality Assurance

Page 2: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Introduction

What is software quality? How can it be measured?

How can it be measured before the software is delivered?

Some key quality factors Some measurable indicators of software

quality

Page 3: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Introduction Think of an everyday object

e.g. a chair How would you measure it’s “quality”?

construction quality? (e.g. strength of the joints,…) aesthetic value? (e.g. elegance,…) fit for purpose? (e.g. comfortable,…)

All quality measures are relative there is no absolute scale we can say A is better than B but it is usually hard to say how much better

For software: construction quality( 建造的品質 )?

software is not manufactured aesthetic value ( 美學上的價值 )?

but most of the software is invisible aesthetic value matters for the user interface, but is only a marginal concern

fit for purpose? Need to understand the purpose

Page 4: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

McCall’s Quality Factors

operation

revi

sion transition

Correctness reliability usability integrity efficiency

MaintainabilityFlexibilityTestability

PortabilityReusabilityInteroperability

Page 5: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

軟體品質因素

Page 6: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Measuring Quality

The Quality Concepts(abstract notions ofquality properties)

Measurable Quantities(define some metrics)

Counts taken fromDesign Representations(realization of the metrics)

usabilityusability

minutes taken for

some user task???

minutes taken for

some user task???

time taken to learn how to use?

time taken to learn how to use?

complexitycomplexity

count procedure

calls???

count procedure

calls???

information flow

between modules?

information flow

between modules?

reliabilityreliability

run it and count

crashes per hour???

run it and count

crashes per hour???

mean time to failure?

mean time to failure?

examples...

Page 7: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: What is SQA?

SQA is the process of assuring people that every effort has been made to ensure that software products have the desired level of reliability, maintainability, usability, and salability.

SQA 是一種執行軟體評估與衡量的活動 (Baker and Fisher) Set of systematic activities providing evidence of the ability of the

software process to produce a software product that is fit to use (G. Schulmeyer and J. McManus, Software Quality Handbook, Prentice Hall, 1998.)

Page 8: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA and CMMI

Software (Process and Product ) quality assurance is the key process in Level 2, Managed.

The CMMI lists four goals that must be achieved to satisfy this key process area: Goal 1: Objectively Evaluate Processes and Work Products

Adherence of the performed process and associated work products and services to applicable process descriptions, standards, and procedures is objectively evaluated.

Goal 2: Provide Objective Insight Noncompliance issues are objectively tracked and communicated,

and resolution is ensured. Goal 3: Institutionalize a Managed Process Goal 4: Institutionalize a Defined Process

Page 9: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Software Quality Assurance

How do you assure the quality of your software? Good processes Good documentation and artifacts Accountability ( 可說明性 ) Learn and improve

Page 10: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

The Objectives of SQA

Monitoring processes and products throughout the software development lifecycle to ensure the quality of the delivered product(s) Monitoring the processes

Provides management with objective feedback regarding process compliance to approved plans, procedures, standards, and analyses

Monitoring the products Focus on the quality of product within each phase of the SD

LC e.g., requirements, test plan, architecture, etc.

Objective: identify and remove defects throughout the lifecycle, as early as possible

Page 11: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: An SQA Program

Minimizing number of defects in delivered s/w

Creating mechanisms for controlling software develo

pment and maintenance so that costs and schedule

s can be met

Making certain that the delivered product can be use

d in its intended marketplace

Improving the quality of future products

Page 12: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Software defects

Mistakes made at any point in the software process Requirements, design, coding, maintenance

Consequences Inconvenience, loss of service, financial loss, equi

pment damage, injury, death

Page 13: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

The percentage of defects found by various methods

Personal checking of design documents

Informal group design reviews

Formal design specifications

Formal code inspections

Modeling or prototyping

Personal desk-checking of code

Unit testing (single routines)

Function testing (related routines)

Integration testing

Field testing

35%

40%

55%

60%

65%

40%

25%

35%

45%

50%

Page 14: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

The truth of defects

1. The later in the life cycle that an error is detected the more expensive it is to repair.

2. Errors remain latent and are not detected until well after the stage at which they are made. 54% of errors detected after coding and unit testing. 45% of these errors were requirements and design errors.

3. There are numerous requirements errors. Estimates indicate that 56% of all errors are errors during

the requirements stage.

Page 15: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Relative Cost to Repair based on when it was found

Requirements - 1 time Design - 3-6 times Code - 10 times Unit test - 15-40 times System test - 30-70 times Field operation - 40-1000 times

Page 16: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

When should quality assurance be done?

At every stage in the software process

Page 17: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Testing Process of exercising or evaluating a system b

y manual or automatic means to verify that it satisfies specified requirements or to identity differences between expected and actual results.

Page 18: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Testing

Begins as soon as requirements and specifications are written

>= 40% of total project effort Constructive activity Includes formal reviews and walkthroughs

Page 19: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Testing Objectives

Testing is a process of executing a program with the intent of finding an error.

A good test case is one that has a high probability of finding an as yet undiscovered error.

A successful test is one that uncovers an as yet undiscovered error.

Page 20: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Testing Limitations

Cannot determine whether software meets user’s needs; only whether it appears to conform to user’s requirements

Cannot show that a system is free of defects; only that it contains defects

Does not correct defects; only finds defects

Page 21: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

The Process of SQA

定義品質需求 制定 SQA 計畫 需求評估

設計評估

測試評估

需求分析

設計

測試

評估客戶滿意需求程

measurement

feedback

feedback

功能與完整性

系統完整性與一致性

執行效率與正確性

在需求分析階段完成

Page 22: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA Planning

IEEE Std 730-2002 Standard for Software Quality Assurance Plans 12 pages

IEEE Guide for Software Quality Assurance Planning draft P730.2 87 pages

Page 23: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA Planning IEEE SQAP

Purpose (Section 1 of the SQAP) Reference documents (Section 2 of the SQAP) Management (Section 3 of the SQAP) Documentation (Section 4 of the SQAP) Standards, practices, conventions, and metrics (Section 5 of the SQAP) Reviews and audits (Section 6 of the SQAP) Test (Section 7 of the SQAP) Problem reporting and corrective action (Section 8 of the SQAP) Tools, techniques, and methodologies (Section 9 of the SQAP) Code control (Section 10 of the SQAP) Media control (Section 11 of the SQAP) Supplier control (Section 12 of the SQAP) Records collection, maintenance, and retention (Section 13 of the SQAP) Training (Section 14 of the SQAP) Risk management (Section 15 of the SQAP)

Page 24: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Contents of SQA Plan (sect 1&2)

Purpose list software covered state portion of software life cycle covered

Reference Documents complete list of documents referenced elsewhere

Page 25: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 3 - Management

organization - depict structure of org. responsibilities

tasks tasks to be performed relationship between tasks and checkpoints sequence of tasks

responsibilities of each organizational unit

Page 26: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 4 - Documentation

identify required documents state how documents will be evaluated minimum documents

SRS - Software Requirements Specification SDD - Software Design Description SVVP – S. Verification and Validation Plan SVVR - S. Verification and Validation Report User documentation - manual, guide SCMP – S. Configuration Management Plan

Page 27: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Verification and Validation

驗證 (Verification): " 我們是否正確的開發了產品? "

軟體應該與規格相符 確認 (Validation):

"我們是否開發了對的產品? " 軟體應該執行使用者真實的需求

驗證與確認著重於讓程式的缺失得以浮現 除錯著重於找出缺失並加以改正

Page 28: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

S. Verification and Validation Plan

•測試規劃與建立測試程序的標準有關,而非著重於描述產品如何測試

Page 29: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 5- Standards, Practices, Conventions and Metrics

Identify S,P,C,and M to be applied How compliance is to be monitored and assur

ed Minimum

documentation standards, logic structure standards, coding standards, testing standards

selected SQA product and process metrics

Page 30: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 6 - Reviews and Audits

purpose define what reviews/audits will be done how they will be accomplished what further actions are required

Minimum Software Requirements Reviews Preliminary Design Review

evaluate technical adequacy of top-level design

Page 31: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Min Set of Reviews/Audits (cont)

Detailed Design Review acceptability of detailed designs

Software Verification and Validation Plan Review adequacy of planned verification and validation

Functional Audit all requirements in SRS have been met

Physical Audit software and documents are consistent and ready

In-Process Audit Managerial Reviews

Page 32: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 7 - Test

All tests that are not included in SVVP

Page 33: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 8 - Problem Reporting

Practices and Procedures for reporting, tracking, and resolving problems

Organizational responsibilities

Page 34: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Sect 9 - Tools, Techniques and Methodologies

identify the special software tools, techniques and methodologies purpose describe use

Page 35: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: 6 SIGMA QUALITY

Sigma = “Standard Deviation”

Typical software has 3 to 4 defects per KLOC

6 Sigma = 3 to 4 defects per million lines of code

Average companies accept 99.98% quality = 4S

6 Sigma = 99.9999998% level of quality

Page 36: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: 6 SIGMA QUALITY

Quality Improvements: 3Sigma to 4Sigma = 10 fold

4Sigma to 5Ssigma = 30 fold

5Sigma to 6Sigma = 70 fold

Best-in-Class companies in some industries operate

at 6Sigma (Airline = 6.4Sigma; 2.5M:1)

Software organizations need to assess this

Page 37: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: Quality Software

People Process

ManagementDiscipline

SQA

Page 38: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: Pursuing SQA

What organizations are doing Nothing (42%)

Slogans( 口號 ) - “Quality is Job One!” (4%)

Improved testing (24%)

Focus on defect prevention (20%)

Process Improvements (9%)

Other... (1%)

Page 39: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: Software Reliability (MTBF)

Putnam’s Software Reliability Model

ERRORS

0

NUMBER

OF

T I M E

OperationalCapability

0

Page 40: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: Pursuing SQA the Deming Way

Purpose includes improvement

Quality philosophy Eliminate mass inspection

s Award business based on

more than price Continuous improvement Institute OJT(On the job tr

aining) Institute Leadership

Drive out fear Break down barriers Eliminate slogans Eliminate numerical

quotas & goals Remove barriers to pride

of workmanship Institute education and

self-improvement Get everyone involved

Page 41: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

SQA: Strategy by Yourdon

If management or customer says... Speed up testing...just say NO!

Don’t worry about a few bugs...just say NO!

We’ll pin down the specs later...just say NO!

Don’t worry, its just a beta version...just say NO!

I don’t care if there are bugs, get it out the door...just say

NO!

Page 42: Software Quality Assurance. Introduction What is software quality? How can it be measured? How can it be measured before the software is delivered? Some.

Summary Software quality generally means fitness for purpose

need to know what that purpose is… …what functions must it perform …what other properties must it have (e.g. modifiability, reliability,

usability…) Not all quality attributes can be measured during design

because quality is not an attribute of software in isolation but we can look for predictors

Reliability, efficiency, maintainability, usability are usually the four most important quality factors …although different authors give different lists

Modularity is often a good predictor of quality measure it by looking at cohesion and coupling


Recommended