tcs2411 software engineering1 software quality assurance “what is quality software and how to...

50
TCS2411 Software Engineering 1 Software Quality Assurance “What is quality software and how to achieve it?”

Post on 20-Dec-2015

229 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 1

Software Quality Assurance

“What is quality software and how to achieve it?”

Page 2: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 2

Lecture ObjectivesTo discuss what is meant by quality in

softwareTo understand the importance of quality in

software engineeringTo describe the features of quality softwareTo describe the measures used in

assessing software qualityTo understand the international standards

that are applied to assess software quality

Page 3: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 3

What Is Quality Software?

Is it software that works?Is it software that is error-free?Is it software that is very well-

documented and has help facility for all its functions?

Is it software that does not ‘hang’ the machine?

Is it software that does not ‘bomb’?

Page 4: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 4

Group Project

How do you ensure the quality of the software you are developing?

Have you defined the standards and tasks to ensure the quality of the software?

Will the customer say that your software is a quality product?

Are you fulfilling the customer’s expectations?

Page 5: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 5

Software Quality Definition

Conformance to Explicitly stated functional and

performance requirementsExplicitly documented development

standards, andImplicit characteristics that are

expected of all professionally developed software

(Pressman)

Page 6: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 6

Software Quality Factors

Low defects level when deployed Zero defect most preferably

High reliability Capability of running without crashes

Majority of the user satisfy with software when conducted the survey

Effective customer supportRapid defect repair

Page 7: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 7

Software Qualities

Correctness Reliability Robustness Performance User friendliness Verifiability Maintainability Reparability Safety

Evolvability Reusability Portability Understandability Productivity Size Timeliness Visibility

Select the critical attributes and plan how to achieve them

Page 8: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 8

Benefits Of Software Quality

Reduced maintenance costStable and useful productSatisfy customer needsBetter chances for continuing

releasesBuild corporate culture and identityBetter chances for software and

design reuse

Page 9: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 9

Software Quality Assurance

Quality assurance – a set of establish framework (procedures & standard) used by an organization to achieve high quality software

Essential activity for any business that produce product to used by others It need to be planned and systematic It does not just happen

Assure each of the software qualities is met Goal set in requirements specification Goal realized in the implementation

SQA is applied at every stage of the software process Quality standard is selected to apply to the software

process

Page 10: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 10

Why SQA Payoff ?

logscale

cost to find and fix a defect

1

10

100

Reqmts

1.00

Design

1.30

Code

2.00

Test

4.00

Systemtest

13.00

Fielduse

80-130

SQA pays off here becausedefects are cheap to fix

Page 11: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 11

Principle Of SQA

1. Set the standard and quality attributes that a software product must meet The goal to achieve

2. Measure the quality of software product There is a way to determine how well the

product conforms to the standards and quality attributes

3. Track the values of the quality attributes It is possible to assess how well we are doing

4. Use the information of software quality to improve the quality of future software product There is a feedback into the software

development process

Page 12: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 12

SQA Activities

Application of Technical MethodsConduct of Formal Technical ReviewsSoftware TestingEnforcement of StandardsControl of ChangeMeasurementRecord keeping and Reporting

Page 13: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 13

Application of Technical Methods

Select appropriate tools and methods to capture system requirements, analyze system, design, implementation and testing

Why use methods and tools To ensure high quality is achieve Analyst achieve high quality specifications Designer develop high quality designs Ability to measure quality in specifications and

designs

Page 14: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 14

Conduct of Formal Technical Reviews

FTR is an activity to assess qualityA stylised meeting conducted by

technical staff with the sole purpose of uncovering quality problems

Found to be effective in uncovering defects in software

All major software items should be subjected to technical review

Page 15: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 15

Software Testing

Testing is a process of executing a program with the intent of finding errors, locate errors and to proof system correctness

Testing is conducted based on the developed test cases Capture actual output Compare actual output with expected output

Actual == Expected : Test case succeedActual != Expected : Test case failed

All test cases result must be recorded

Page 16: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 16

Software Testing(Cont)

To identify errors in software developedTest case design methods produces

tests to be used on the softwareDevelopment of test strategy for a set

of tests that uncovers all possible errorsThorough testing is not as effective as

expected in most cases

Page 17: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 17

Enforcement of Standards

Formal standards and procedures varies from company to company

Could be dictated by customer, regulations, or self-imposed

If formal (written) standards exist, they must be followed to ensure quality

Assessment of compliance is done through FTR or audit

Page 18: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 18

Control of Change

An activity executed throughout the system life cycle to control change of products and life cycle artifacts

Items that needs control changes Plans Specification Procedures Audit Report Support

A software library need to be construct that store, manages and track these items

•Need to be identified and described•Need to be uniquely itemized•Need to be organized

Page 19: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 19

Control of Change (Cont)

Every change has potential for introducing errors or creating side effects that propagate errors

Change control process ensures quality

Formalizing requests for change, evaluating nature of change, and controlling the impact of change

Page 20: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 20

Measurement

Measurement : Numeric derivation for some attribute of a software product / process Compare the value with standard apply Often expressed in $$$ and days Integral part to any engineering discipline

Software metrics must be collected to track quality

Also to assess the impact of methodological and procedural changes on improved software quality

Page 21: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 21

Record keeping and Reporting

Historical record for project - results of reviews, audits, change control, testing, other SQA activities

Provide procedures for collection and dissemination of SQA information

Dissemination to development staff based on need-to-know basis

Page 22: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 22

McCall Software Quality Model

ProductRevision

ProductTransition

Product Operations

Page 23: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 23

McCall’s Software Quality Factors

Product Operations Operational characteristics

Product Revision Ability to undergo changes

Product Transition Adaptability to new environments

Page 24: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 24

McCall’s Software Quality Factors (Cont)

Factor Criteria Description

Product Revision

Maintainability

Can I fix it?

Flexibility Can I change it?

Testability Can I test it?

Product Transition

Portability Will I be able to use it on another machine?

Reusability Will I be able to reuse some of the other software in other application?

Interoperability

Will I be able to interface it with another system?

Product Operation

Correctness Does it do what I want?

Reliability Does it do it accurately all the time?

Efficiency Will it run as well as it can?

Integrity Is it secure?

Usability Is it easy to use?

Page 25: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 25

FCM By McCall Approach

Simplicity

Reliability

S1S2 S3

Factors – user concern oriented

Criteria – software concern oriented

Metrics – quantitative measures

Page 26: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 26

Measuring the Factors

The factors are difficult to measure directly McCall defined metrics that are assessed

subjectively, on a scale of 0 to 10 Includes auditability, accuracy, completeness,

consistency,modularity, etc. Factors calculated as follows

Fq = c1 x m1 + c2 x m2 + … + cn x mn

where

cn = Weighting coefficient (or importance factor)

mn = Criteria measured

Page 27: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 27

Alternative Measurements

Hewlett-Packard developed a set of quality factors - FURPS Functionality - features, capabilities, overall Usability - human factors, consistency, doc. Reliability - failure, accuracy, MTBF, recovery Performance -speed,response time, efficiency Supportability - maintainability, testability

Quality metrics for each step in SE process

Page 28: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 28

Measuring Quality Factors In SE Process

Investigations/Specifications Design Implementation Testing Support

F

U

R

P

S

# .....% ...

Page 29: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 29

Software Quality Assurance

Quality assurance - essential activity for any business that produces products to be used by others

SQA - a planned and systematic pattern of actions to ensure quality in software

“Quality is Job #1”

Page 30: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 30

Software Reviewlike a “filter” for SE processmust be applied at various points

during developmentall technical work need reviewingalso checks one’s mistakeshelps to discover defects early

design can introduce 50 - 65% of errors review can uncover 75% of them cost of subsequent steps reduced

Page 31: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 31

ISO 9000

Set of standards that can be applied to a range of organisations from manufacturing through to service industries

ISO 9001 - general standards, applies to design, development, maintaining products

ISO 9000-3 - supporting document for software development

Various countries also have own standards

Page 32: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 32

ISO Certification

Some countries have bodies which certify that the quality process in an organisation conforms to ISO requirements

In Malaysia, SIRIM performs this functionCustomer looks for certification in an

organisation to indicate the quality of products or services

Page 33: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 33

Areas covered by ISO 9001/9000-3 STANDARD (1/3)

A. A. Quality System framework1. Management responsibility

quality policy defined, documented, understood, implemented and maintained

responsibilities and authorities for all personnel defined in-house verification resources defined, trained and funded a designated manager ensures that the quality program is

implemented and maintained

2. Quality system requires a documented quality system be established should be an integral process throughout the entire life cycle

3. Internal quality system audits requires audits be planned and performed results communicated to management deficiencies corrected

4. Corrective action requires causes of non-conforming product be identified potential causes of non-conformance eliminated procedures changed as a result

Page 34: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 34

Areas covered by ISO 9001/9000-3 STANDARD (2/3)

B. Quality Life Cycle Activities

1. Contract review contracts are reviewed to

determine whether the requirements are adequately defined, agree with the bid, and can be implemented

2. Purchaser’s requirements specification procedures to identify and

collect purchaser’s requirements

3. Development planning production processes are

defined and planned4. Quality record

quality assurance process is planned

5. Design and implementation procedures to control and

verify the design

includes planning designactivities, identifying inputs and outputs, verifying the design and controlling design changes

6. Testing and validation requires systems/products to be

tested and validated before use records of testing are kept

7. Acceptance procedures for acceptance

should be established8. Replication, delivery and installation

procedures for the above should be established and maintained

9. Maintenance requires that maintenance

activities be performed as specified

Page 35: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 35

Areas covered by ISO 9001/9000-3 STANDARD (3/3)

5. Rules, practices and conventions are in place and followed

6. Tools and Techniques are applied appropriately

to support the development process

7. Purchasing purchased products

conform to their specified requirements

8. Included software product should be verified and

maintained9. Training

training needs should be identified and training provided since related tasks may require qualified personnel

training records should be maintained

1. Configuration management process of development

and maintenance should be documented and controlled

2. Document control distribution and

modification of documents should be controlled

3. Quality records quality records should be

collected, maintained and dispositioned

4. Measurement where appropriate,

adequate statistical techniques should be identified and used to verify the acceptability of process capability and product characteristics

C. Quality System Supporting Activities

Page 36: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 36

Quality Management System

ISO 9000Quality Models

OrganisationalQuality Manual

Project 1Quality Plan

Project 2Quality Plan

Project 3Quality Plan

OrganisationalQuality Process

Project QualityManagement

instantiated as

documents

is used to develop instantiated as

Page 37: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 37

ISO & SQA

An organisation that have SQA tasks in place and a quality management process would have most of ISO elements

Ideally quality management should be separate from project management

This is to ensure quality considerations are not compromised by concerns of budget and schedule

Page 38: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 38

Process Improvement

Understanding existing processes and changing these processes to improve product quality and/or to reduce costs and development time

Assume that key factor to product quality is the quality of development process

kaizen - process of continuous process improvement

Page 39: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 39

Capability Maturity Model

Developed by Software Engineering Institute (SEI) of Carnegie-Mellon U

SEI was established to improve the capabilities of US software industry

Focus on improving the process of software engineering

Similar to ISO, organisations are assessed and certified to be on Level 1 to Level 5

Page 40: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 40

Process Maturity Model

Level 1InitialLevel 1Initial

Level 2Repeatable

Level 2Repeatable

Level 3DefinedLevel 3Defined

Level 4Managed

Level 4Managed

Level 5Optimizing

Level 5Optimizing

Page 41: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 41

Level 1 Initial

No effective management procedures or project plans

No organisational mechanisms to ensure consistent use of formal procedures

Successful software depends more on individual skill rather than organisation

Page 42: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 42

Level 2 Repeatable

Formal management, quality assurance and configuration control procedures

Organisation can successfully repeat projects of the same type

Lack of formal process model

Page 43: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 43

Level 3 Defined

Organisation has defined its process and has a basis for qualitative process improvement

Formal procedures are in place to ensure that the defined process is followed in all software projects

Page 44: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 44

Level 4 Managed

Organisation has a defined process and a formal programme of quantitative data collection

Process and product metrics are collected and fed into the process improvement activity

Page 45: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 45

Level 5 Optimising

Organisation is committed to continuous process improvement

Process improvement is budgeted and planned and is an integral part of the organisation’s process

Page 46: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 46

Key Process Area

InitialInitial

RepeatableSoftware Configuration ManagementSoftware Quality AssuranceSoftware Subcontract managementSoftware project tracking and oversightSoftware project planningRequirements management

RepeatableSoftware Configuration ManagementSoftware Quality AssuranceSoftware Subcontract managementSoftware project tracking and oversightSoftware project planningRequirements management

DefinedPeer reviewsIntergroup coordinationSoftware product engineeringIntegrated software managementTraining programOrganization process definitionOrganization process focus

DefinedPeer reviewsIntergroup coordinationSoftware product engineeringIntegrated software managementTraining programOrganization process definitionOrganization process focus

ManagedSoftware quality managementQuantitative process management

ManagedSoftware quality managementQuantitative process management

OptimizingProcess change managementTechnology change managementDefect prevention

OptimizingProcess change managementTechnology change managementDefect prevention

Page 47: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 47

Key Process AreasLevel 1 Initial

noneLevel 2 Repeatable

Software configuration management Software quality assurance Software subcontract management Software project tracking and oversight Software project planning Requirements management

Page 48: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 48

Key Process Areas (Continued)

Level 3 Defined Peer reviews Intergroup coordination Software product engineering Integrated software management Training programme Organisation process definition Organisation process focus

Page 49: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 49

Key Process Areas (Continued)

Level 4 Managed Software quality management Quantitative process management

Level 5 Optimising Process change management Technology change management Defect prevention

Page 50: TCS2411 Software Engineering1 Software Quality Assurance “What is quality software and how to achieve it?”

TCS2411 Software Engineering 50

References

“Software Engineering: A Practitioner’s Approach” 5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001

“Software Engineering” by Ian Sommerville, Addison-Wesley, 2001