DONE-01: Applying Quality Assurance and Testing to Application Development

50
DONE-01: Applying Quality Assurance and Testing to Application Development Ademola Taiwo (AT) Empowerment Consultant

description

DONE-01: Applying Quality Assurance and Testing to Application Development. Ademola Taiwo (AT) Empowerment Consultant. Agenda. Introduction Quality Defined Why Quality Assurance Implementing QA Infrastructure Ensuring Quality Summary Questions. Achieving Quality. - PowerPoint PPT Presentation

Transcript of DONE-01: Applying Quality Assurance and Testing to Application Development

Page 1: DONE-01: Applying Quality Assurance and Testing to Application Development

DONE-01: Applying Quality Assurance and Testing to Application Development

Ademola Taiwo (AT)Empowerment Consultant

Page 2: DONE-01: Applying Quality Assurance and Testing to Application Development

2 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Agenda

Introduction Quality Defined Why Quality Assurance Implementing QA Infrastructure Ensuring Quality Summary Questions

Cost of finding and fixing software errors

Co

st

Page 3: DONE-01: Applying Quality Assurance and Testing to Application Development

3 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Achieving Quality

A Quality product meets or exceeds customer

expectations

Goal: Implement Quality

Page 4: DONE-01: Applying Quality Assurance and Testing to Application Development

4 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

What is Quality?

Quality is– Based on customers’ perceptions of a

product’s design and how well the design matches the original specifications.

– The ability of a product and service to satisfy stated or implied needs.

– Achieved by conforming to established requirements within an organization.

http://www.asq.org/portal/page

Quality is All about the Customer

Page 5: DONE-01: Applying Quality Assurance and Testing to Application Development

5 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

What is Quality Control

Control = An evaluation to indicate needed corrective responses; the act of guiding or the state of a process in which the variability is attributable to a constant system of chance causes.

Quality control = The operational techniques and activities used to fulfill requirements for quality.

Quality Control is NOT Quality Assurance

Page 6: DONE-01: Applying Quality Assurance and Testing to Application Development

6 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

What is Quality Assurance?

Assurance = The act of giving confidence, the state of being certain, or the act of making certain.

Quality assurance = All the planned and systematic activities implemented within the quality system that can be demonstrated to provide confidence a product or service will fulfill requirements for quality

Quality Assurance is NOT Quality Control

Page 7: DONE-01: Applying Quality Assurance and Testing to Application Development

7 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor quality

Costs associated with defects

found before the customer

receives the product or service

Internal Failure Cost

Page 8: DONE-01: Applying Quality Assurance and Testing to Application Development

8 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor quality

Costs associated with defects

found after the customer receives

the product or service

External Failure Cost

Page 9: DONE-01: Applying Quality Assurance and Testing to Application Development

9 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor quality

Costs incurred to determine the

degree of conformance to quality

requirements

Appraisal Cost

Page 10: DONE-01: Applying Quality Assurance and Testing to Application Development

10 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor quality

Costs incurred to keep failure and

appraisal costs to a minimum

Prevention Cost

Page 11: DONE-01: Applying Quality Assurance and Testing to Application Development

11 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor Quality

Quality Variables– DefectsDefects– Time To MarketTime To Market– FeaturesFeatures– Internal Cost / AffordabilityInternal Cost / Affordability

Quality Variables Drive Priorities

Page 12: DONE-01: Applying Quality Assurance and Testing to Application Development

12 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Why is QA Necessary?

Cost of finding and fixing software errors

Co

st

Requirements Code Release TIME

“It takes 5 to 17hrs to fix bugs in released code, as compared to 1 to 1.5 hrs during code reviews and inspections”US National Institute for Standards and Technology, May 2002, Economic Impact of Inadequate Infrastructure of Software Testing.

The Boehm Curve

psc
Shouldn't you define it first.Define QualityThen Quality assurance
Page 13: DONE-01: Applying Quality Assurance and Testing to Application Development

13 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor Quality

The National Institute of Standards and Technology study shows that Software defects cost the U.S. economy some $59.5 billion a year. (2002)

http://www.nist.gov/public_affairs/releases/n02-10.htm

To the US Economy

Page 14: DONE-01: Applying Quality Assurance and Testing to Application Development

14 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor Quality

“On average developers make 100 – 150 errors every thousand lines. These statistics are different developer to developer and project to project and language to language.”

If 10% of the errors produced are serious in a small application of 20,000 lines, then we will have 200 serious errors!!

Watts. S. Humphrey. Multiyear Study by Software Engineering Institute (SEI) at Carnegie Mellon

University

Internal Cost to the Development Organization

Page 15: DONE-01: Applying Quality Assurance and Testing to Application Development

15 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Cost of Poor Quality

Blue Cross Insurance, US – Sent $60 million in unwarranted and duplicate payments

Pepsi Promotion, Mexico – Instead of issuing 1 x $40,000 winning bottle, 800,000 were produced

Trader in London sold shares 100 times larger than he intended. Bank had to pay out millions to retrieve these shares. Validation requirements were not catered for

External Failure Cost (To You)

Page 16: DONE-01: Applying Quality Assurance and Testing to Application Development

16 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Benefit of Good Quality

NIST's estimated that about $22 billion of the sunk costs could be recovered through better software testing

http://www.nist.gov/public_affairs/releases/n02-10.htm

To Everyone (the Economy)

Page 17: DONE-01: Applying Quality Assurance and Testing to Application Development

17 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

What is Testing

Testing is the act of gathering metrics in pursuit of Quality. It generates supporting data for

assuring quality.

Testing is just another source of Quality metrics

Testing is NOT Quality Assurance

Page 18: DONE-01: Applying Quality Assurance and Testing to Application Development

18 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Why Test?

“Software defects cost the U.S. economy almost $60 billion annually. 80% of the total development costs are consumed by developers identifying and correcting defects”

National Institute of Standards and Technology (NIST). www.nist.gov/public_affairs/releases/n02-10.htm

“Cancelled projects due to quality issues in the US, cost $55 billion dollars”

The Standish Group. CHAOS Chronicles v3.0 March 2003

A relatively inexpensive way to gather metrics

Page 19: DONE-01: Applying Quality Assurance and Testing to Application Development

19 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

AgendaCost of finding and fixing software errors

Co

st

Introduction Quality Defined Why Quality Assurance Implementing QA Infrastructure Ensuring Quality Summary Questions

Page 20: DONE-01: Applying Quality Assurance and Testing to Application Development

20 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Implementing QA Infrastructure

Verification Is it error free? Does it do what was specified?

Validation Is it valid? Is this what you really, really want?

Risk Mitigation Expect the Unexpected

http://www.its.bldrdoc.gov/fs-1037/dir-029/_4291.htm

NOT Test Implementation

Page 21: DONE-01: Applying Quality Assurance and Testing to Application Development

21 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Benefits of Quality Assurance

Reduced Time to Market Lowered Risk Reduced Rework Increased Job Satisfaction Serving as a Differentiator Efficient Framework for Outsourcing“IT outsourcing will increase by 130 percent

in the next 5 years to $23 billion in 2008”Information Week 22nd October 2003

Better Customer Experience at Reduced Cost

Page 22: DONE-01: Applying Quality Assurance and Testing to Application Development

22 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Quality is Everyone’s Job!

Quality

Performance

Interoperability

Integrity Efficiency

Maintainability

Reliability

Adaptability

Usability

Quality - or Lack of - is Ubiquitous

Page 23: DONE-01: Applying Quality Assurance and Testing to Application Development

23 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Implementing Quality AssuranceEnsuring Quality

Page 24: DONE-01: Applying Quality Assurance and Testing to Application Development

24 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Integrate QA into your Software Development Life Cycle (SDLC)

QA Process should begin with requirement gathering and continue through to the application release.

Quality improvements require discipline. People, processes and technology are only successful with proper follow through.

QA processes must be supported by technology to help troubleshoot and analyse problems.

Testing should be a function of lowering risk (risk-based testing).

QA begins at the Requirements Gathering Stage

Page 25: DONE-01: Applying Quality Assurance and Testing to Application Development

25 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Measuring Quality

Understand what metrics you want to measure– Define and communicate

Clear defect severity rating Quality encompasses more than tests and defects! Think about:

– Customer satisfaction Features Platforms Defects Costs – internal and external Time to Market

Process Feature / Functionality Definition Spec reviews Code reviews Test scenario reviews Project plan reviews Measure and allow for improvements throughout the process

Page 26: DONE-01: Applying Quality Assurance and Testing to Application Development

26 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Keys to Achieving High Quality

People Process Technology

Quality Product must Meet or Exceed Customer Expectation

Page 27: DONE-01: Applying Quality Assurance and Testing to Application Development

27 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Key to Achieving High Quality

Development & QA Managers: Peers General Engineering Managers (GEM)

– Monitors Critical Quality Goals

– Cross Dept Communication

– Maintains Product Release Calendar

– Monitors & Improves Development Process

People: Quality / Development Organization

Page 28: DONE-01: Applying Quality Assurance and Testing to Application Development

28 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Key to Achieving High Quality

Quality ownership: engineers and designers must think about how to test and validate– Design time requirements

Product feature design Test scenario design

Quality needs to be a ‘lifestyle’ not a checkbox item!– Design quality into the product

NOT

– Test to see if it is a quality product

Process: Guidelines

Page 29: DONE-01: Applying Quality Assurance and Testing to Application Development

29 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

QA in Development Methodologies

QA Approach is determined by the Software Development Life Cycle (SDLC)

There are 3 main SDLC Models:

Requirements Specification

Functional Specification

Technical Specification

Program Specification

Code Acceptance Test

Business Objectives

1) Waterfall

Process: Guidelines

Page 30: DONE-01: Applying Quality Assurance and Testing to Application Development

30 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Development Methodologies Cont….

Check

Check

Check

Check

2) V Model 3) RAD

Process: Guidelines

Page 31: DONE-01: Applying Quality Assurance and Testing to Application Development

31 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Current View Point – Application TransformationApplying Quality Assurance and Testing to App. Dev.

Page 32: DONE-01: Applying Quality Assurance and Testing to Application Development

32 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Key to Achieving High Quality

Testing– Functional Testing– Boundary testing– Negative testing– Platform Testing– Multi-user Testing– Stress / Performance Testing

Technology: Automated Data Gathering

Page 33: DONE-01: Applying Quality Assurance and Testing to Application Development

33 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Test Plans

Define test scenarios in the design specs Define test cases in the test plans and automation Intent needs to be clear Review all test cases Include multiple test types Define measurable milestones

– Feature Freeze, Code Complete, Code Freeze Don’t forget performance testing

– 5X slower is a bug !

Technology: Automated Data Gathering

Page 34: DONE-01: Applying Quality Assurance and Testing to Application Development

34 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Data Gathering

Three phase of testing– Phase 1 – Planning through Feature Freeze

– Phase 2 – Feature Freeze through Code Freeze

– Phase 3 – Code Freeze to customer delivery

Technology: Test, Test and Test again

Page 35: DONE-01: Applying Quality Assurance and Testing to Application Development

35 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Summary

Quality is meeting customer expectation– Good quality is exceeding customer

expectation QA enhances IT effectiveness

– Increase Customer Satisfaction– involves People, Processes and

Technology Immediate ROI

– Lower cost / Increased revenue Found Money

– Start NOW

Quality is Everyone’s Job

Page 36: DONE-01: Applying Quality Assurance and Testing to Application Development

36 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Questions?

Page 37: DONE-01: Applying Quality Assurance and Testing to Application Development

37 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Thank you for your time!

Page 38: DONE-01: Applying Quality Assurance and Testing to Application Development

38 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

You Can Begin NOW!

Page 39: DONE-01: Applying Quality Assurance and Testing to Application Development

39 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Page 40: DONE-01: Applying Quality Assurance and Testing to Application Development

40 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

AgendaCost of finding and fixing software errors

Co

st

Introduction Quality Defined Why Quality Assurance Implementing QA Infrastructure Ensuring Quality Summary Questions

Page 41: DONE-01: Applying Quality Assurance and Testing to Application Development

41 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Summary

Quality is meeting and exceeding customer expectations

QA involves People, Processes and Technology

Immediate ROI

Quality Assurance

Page 42: DONE-01: Applying Quality Assurance and Testing to Application Development

42 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

The Quality Health Check Quality Health Check Focuses on Four Key

Area’s:– Software Testing– Software Configuration Management (SCM)– Incident Management – Process Management across QA

Page 43: DONE-01: Applying Quality Assurance and Testing to Application Development

43 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Quality Matters

Bullets: Arial Bold, size 28, sentence case– Second level: Arial Bold, size 26

Third level: Arial Bold, size 24 Maximum 7 bullets per slide Maximum 7 words per bullet Type in charts and graphics

– Arial Bold, size 20 or above, initial caps Source code in examples

– ABSOLUTELY NO SMALLER THAN SIZE 20– See sample slides

Applying Quality Assurance and Testing to App. Dev.

Page 44: DONE-01: Applying Quality Assurance and Testing to Application Development

44 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Proposed Break Down

Software Testing (IEEE 7925-2) Review and Highlight Improvements in Processes,

Procedures and Strategies: Incorporate Reviews – Walkthroughs, Informal

Reviews, Technical Reviews and Inspections Conduct a Risk Assessment's Look at Functional (Black Box), Structural (White

Box) and Non-Functional Testing in line with SDLC

Incorporate a Test Strategy Incorporate a Test Plan (IEEE 829-1998)

Page 45: DONE-01: Applying Quality Assurance and Testing to Application Development

45 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Proposed Break Down

Software Configuration Management (SCM) Auditing Release Management Build Management Process Control Investigate the Workflow

Page 46: DONE-01: Applying Quality Assurance and Testing to Application Development

46 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Proposed Break Down

Software Testing (IEEE 7925-2) Review and Highlight Improvements in Processes,

Procedures and Strategies: Incorporate Reviews – Walkthroughs, Informal

Reviews, Technical Reviews and Inspections Conduct a Risk Assessment's Look at Functional (Black Box), Structural (White

Box) and Non-Functional Testing in line with SDLC

Incorporate a Test Strategy Incorporate a Test Plan (IEEE 829-1998)

Page 47: DONE-01: Applying Quality Assurance and Testing to Application Development

47 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Implementing Test Plans

Test at API Level as well as User Level Automate versus manual test Allow for multiple phases of development &

testing– Phase 1 – development of features, unit testing &

execution of automated regression tests.

– Phase 2 – regression testing of existing functionality, performance, platform, and stress testing

– Phase 3 – Final regression testing

Page 48: DONE-01: Applying Quality Assurance and Testing to Application Development

48 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Regression Testing (example)

Criteria to Ship– Automation Passing at 95% or greater ( understand the

failures and evaluate the risk versus time to market)– Rerun of failed tests

Regression testing validates– No defects introduced– New features function

Weekend Automated Regression Tests– Execution on all platforms – 2 days to complete testing

Nightly Automated Regression Tests– Execution on all platforms– 1 night to complete testing

Page 49: DONE-01: Applying Quality Assurance and Testing to Application Development

49 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Proposed Break Down

Software Configuration Management (SCM)– Auditing– Release Management– Build Management– Process Control– Investigate the Workflow

Page 50: DONE-01: Applying Quality Assurance and Testing to Application Development

50 DONE-01 - Applying QA and Testing to App. Dev.© 2005 Progress Software Corporation

Measuring Quality

Understand what metrics you want to measure– Define and communicate

Clear defect severity rating Quality encompasses more than tests and defects! Think about:

– Customer satisfaction Features Platforms Defects Costs – internal and external Time to Market

Process Feature / Functionality Definition Spec reviews Code reviews Test scenario reviews Project plan reviews Measure and allow for improvements throughout the process