TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering –...

68
Incorporating Quality Incorporating Quality Throughout the Lifecycle Presented by: Betty Schaar BenchmarkQA Date: October 2, 2008

Transcript of TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering –...

Page 1: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Incorporating QualityIncorporating Quality Throughout the Lifecycle

Presented by:

Betty SchaarBenchmarkQA

Date:

October 2, 2008

Page 2: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

BenchmarkQA• Software Quality Assurance Consulting and Staffing

– Specialized consulting in: • QA and testing process assessment and improvement• Test automation• Performance engineering

– Staff augmentation and direct placement of true testing and quality assurance professionals with all levels of expertise.

– More than 20 years of integrity and service excellence resulting in loyal and

©2008 BenchmarkQA10/2/2008 2

More than 20 years of integrity and service excellence, resulting in loyal and satisfied clients

– Extensive expertise in complex system conversion and data testing.

• Local Test Lab – Over 15 years of experience bringing projects into our lab (Microsoft, IBM, Tyco,

Avery).– Proprietary processes and methods provide thorough testing and effective

project management.

• Training– Public and private training to enhance QA processes and management.– Customized programs facilitate large team ramp-up and enhance consistency.– Structured Software Test Planning, November 6 & 7th, Edina

Page 3: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Betty Schaar• As a senior consultant for BenchmarkQA, Betty delivers process

improvement and training services.

• A testing and QA professional for more than 20 years.

• Certified Software Quality Analyst (CSQA) through Quality Assurance Institute.

©2008 BenchmarkQA10/2/2008 3

• QA leadership and consulting roles at United Healthcare, Blue Cross Blue Shield, Kodak Health Imaging, Imation and the State of Minnesota.

• QA expertise highlighted through speaking engagements at PSQT and STAR conferences, and leadership in TCQAA and PSQT.

Page 4: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Agenda

• Costs of Quality – NIST Study• Rework Costs• Relative Cost of Finding and Fixing Defects• Prevent Defects to Lower Project Costs

D i Y C Fi d d Fi D f

©2008 BenchmarkQA10/2/2008 4

• Determine Your Costs to Find and Fix Defects• Project Estimations and Better Approaches• Elements of a Good Testing Process• Creating an Action Plan

Page 5: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“Quality is never an accident, it is always the result of high intention, intelligent direction and skillful execution; it represents the wise choice

©2008 BenchmarkQA10/2/2008 5

skillful execution; it represents the wise choice of many alternatives.”

— William A. Foster

Page 6: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Costs of QualityCosts of Quality – NIST Study

Page 7: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

NIST Study in 2002The Economic Impacts of Inadequate Infrastructure for Software Testing

National Annual Costs of an Inadequate Infrastructure for Software Testing

Realized from Defects:

©2008 BenchmarkQA10/2/2008 7

$59.5 BILLION DOLLARS (estimated)

$38.3 Billion is attributed to error avoidance and mitigation activities required by software users.

$21.2 Billion is attributed to rework costs by project teams

Page 8: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

NIST Study in 2002 - Cont’d

Potential Cost Reduction from Feasible Infrastructure Improvements:

©2008 BenchmarkQA10/2/2008 8

$22.2 BILLION DOLLARS (estimated)

$11.7 Billion for software users.

$10.6 Billion for project teams.

Page 9: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

NIST Study in 2002 - Cont’d

Defect Fix Time Based on Discovery Point

Financial Services Sector Transportation Mfg Sector

Discovery Point Hours

Requirements 2 0

Discovery Point Hours

Requirements 1 2

©2008 BenchmarkQA10/2/2008 9

Requirements 2.0

Coding/Unit Testing 2.4

Integration 4.1

Beta Testing 6.2

Post-Product Release 13.1

Requirements 1.2

Coding/Unit Testing 4.9

Integration 9.5

Beta Testing 12.1

Post-Product Release 15.3

Note that the NIST document was not clear regarding which activities were/were not included in these times. These numbers may actually be low if not inclusive of all defect find and fix related activities.

Page 10: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“If we are busy doing rework for defects, we’re not innovating AND we are costing the company

©2008 BenchmarkQA10/2/2008 10

g g p ylots of money.”

— Anonymous

Page 11: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Rework Costs

Page 12: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Rework Costs

Rework costs can run as high as 50% or more of a project’s total costs

©2008 BenchmarkQA10/2/2008 12

• If you haven’t looked at your actual rework costs, chances are good you underestimate them.

• Rework doesn’t create revenue or provide new capabilities; new development does.

Page 13: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Rework Costs - Cont’d

Lack of Good Requirements* =

Assumptions

©2008 BenchmarkQA10/2/2008 13

=Rework

*Due to lack of user involvement to define requirements, poorly written requirements, lack of requirements reviews to clarify needs

Page 14: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“It is much less expensive to prevent errors than to rework, scrap, or service them.”

©2008 BenchmarkQA10/2/2008 14

, p,

— Philip Crosby

Page 15: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

R l ti C t fRelative Costs of Finding and Fixing Defects

Page 16: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Relative Cost of Finding and Fixing a Defect Across the Project Lifecycle

Planning

Production & ImplementationTestingCodingTechnical

DesignBusiness

Requirements

©2008 BenchmarkQA10/2/2008 16

45% of all errors are analysis errors.

35% of all errors are design errors.

Only 20% of errors originate during coding.

Does what I built work? Did I build the right thing?

1X 5X 20X 50X 100‐270X

80%

Credit: Boehm, B., Software Engineering Economics, Prentice Hall

& Crosstalk, the Journal of Defense Software Engineering

Page 17: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“Pay me now or pay me (more) later…”

©2008 BenchmarkQA10/2/2008 17

— Testers Creed

Page 18: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

P D fPrevent Defects to Lower Project Costs

Page 19: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Fact: Bugs Beget Bugs

• Prevent “Bug X” (that originated in requirements or design) from getting into the code means rework costs are not incurred for “Bug X”

©2008 BenchmarkQA10/2/2008 19

• Plus other bugs (and associated costs) that might have been introduced when “Bug X” was fixed are also prevented

Page 20: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Fact: Break/Fix Cycles are Disruptive, Difficult to Plan • Forward progress is slowed or has to stop while a defect

is researched and a decision made to fix or defer

• Best attempts to plan a software project can only guess at n mber of break/fi c cles needed

©2008 BenchmarkQA10/2/2008 20

at number of break/fix cycles needed

• If more break/fix cycles are needed than planned, one of the following typically happens:1) Something doesn’t get adequately tested; quality ramifications2) Timelines are extended; monetary ramifications3) Both 1 and 2

Page 21: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Fact: Break/Fix Cycles are Typically Done in a Rush• Defects found during testing phase result in a rushed

effort on everyone’s part to react to problems; something will be missed and perhaps will not be found until the software is released

©2008 BenchmarkQA10/2/2008 21

software is released.

• Discovery of a defect after production release can have serious monetary, legal, and/or customer satisfaction ramifications.

Page 22: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

What Is Static Testing?

Definition:- Analysis of a project deliverable or program logic without executing the program.

Inspecting and reviewing document work products that are used to

©2008 BenchmarkQA10/2/2008 22

- Inspecting and reviewing document work products that are used to define and design the software.

As compared to Dynamic Testing which is:- Testing software by executing it or interacting with it.

Page 23: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Requirements Reviews Questions to Ask: Development SQA / Test Team Technical

Writing

Can the requirement be implemented? X

Is the requirement testable? X

Is the requirement unambiguous? - Am I making any assumptions? X X X

A th fli ti i t ?

©2008 BenchmarkQA10/2/2008 23

Are there any conflicting requirements? X X X

Are there any redundant requirements? X

Are there any missing requirements? X

Have terms been used consistently? X X

Have the requirements standards been followed? X X

What are the implicit requirements? X X

Page 24: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Design Reviews Questions to Ask: SQA / Test Team Technical

Writing

Are there any conflicts between design and requirements? X

Are there any requirements not addressed in the design? X

What are the system and data interfaces and handoff points? X X

©2008 BenchmarkQA10/2/2008 24

Is there any complex logic? X X

Are there any GUI layouts? X X

Are there any file layouts? X X

Are there any report layouts? X X

Is there a database schema/specifications, and/or data rules? X X

What other functional rules and logic should be considered for testing or documentation? X X

Have terms been used consistently? X X

Have the design standards been followed? X

Page 25: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Typical Approach to Project CyclesIf your project cycles look like this, something needs to change or one or all of the following will occur:

– Cost to find/fix defects is going to be far greater than needs to be – Likelihood of missed deadlines is high due to late discovery of problems– Likelihood for project cost overruns is high due to rework for late discovery of

problems

©2008 BenchmarkQA10/2/2008 25

Release/Iteration 1

Deliver Test Code Design Requirements

Release/Iteration 2

Deliver Test Code Design Requirements

Typical Approach to Project Cycles

Page 26: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Ideal Approach to Project Cycles

Adjusting how releases/iterations are scheduled as shown below results in test team involvement in requirements definition and document reviews, thereby enabling static testing.

©2008 BenchmarkQA10/2/2008 26

Release/Iteration 1

Deliver Test Code Design Requirements

Release/Iteration 2

Deliver Test Code Design Requirements

Ideal Approach to Project Cycles

Page 27: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Efficient Approach to Project Cycles

Adjusting how releases/iterations are scheduled as shown below results in better utilization of all project resources while also enabling the test team to be involved in document reviews, as they do not occur during test phase.

©2008 BenchmarkQA10/2/2008 27

Release/Iteration 1

Deliver Test Code Design Requirements

Release/Iteration 2

Deliver Test Code Design Requirements

Efficient Approach to Project Cycles

Page 28: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Other Ideas for Enabling Static Testing in the Project Cycle“Leap Frog” Primary and Secondary Resources

Person/Team 1: – Primary for Release/Iteration 1, 3, etc. – Secondary for Release/Iteration 2, 4, etc

Person/Team 2: – Primary for Release/Iteration 2, 4, etc.

©2008 BenchmarkQA10/2/2008 28

– Secondary for Release/Iteration 1, 3, etc.

Secondary Responsibilities (testing):• Assist with Test Case Design• Assist with Test Execution

Primary Responsibilities (testing):• Participate in Document Reviews• Write the Test Plan • Test Case Design • Test Execution • Status and Metric Reporting

Page 29: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Other Ideas for Enabling Static Testing in the Project Cycle - cont’d• Designate one test resource as static tester for all releases/

iterations– Based on who is best at it; supports other testing activities only as time

permits

©2008 BenchmarkQA10/2/2008 29

• Static testing is job function of Sr. Test Analyst or Test Lead role only– Have junior test resources focused on test execution cycles

• Plan extra time into Release/Iteration 1 Test Phase– To review requirements and/or design documents and attend review

meetings for Release/Iteration 2– Minimum of 2 day lead time ahead of review meeting, for adequate

review of documents

Page 30: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“The probability of the existence of more errors in a section of a program is

proportional to the number of errors already

©2008 BenchmarkQA10/2/2008 30

found and fixed in the section.”

— A Testing Principle from Glenford Myers

Page 31: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Determine Your Costs toDetermine Your Costs toFind and Fix Defects

Page 32: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Root Cause Tracking & Assessment

• Assign standard root cause value to each defect record

• Use the “5 Whys” method to get to true root cause– Not just symptoms and not root fix!

©2008 BenchmarkQA10/2/2008 32

• Assess root cause classifications as a project team during post-mortem/retrospective, change classifications as needed

Page 33: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Using Root Cause Data For Improvements

• Project teams look for project trends– Address with corrective action(s) for their projects

• QA organization looks for corporate trendsAdd ith i ti id h

©2008 BenchmarkQA10/2/2008 33

– Address with organization-wide process changes

Page 34: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Defect Find/Fix Cost FactorsPre-release

Include time for all of the following activities:• Test execution to uncover the defect• Proving if defect is reproducible• Record defect

Evaluation work now or defer?

©2008 BenchmarkQA10/2/2008 34

• Evaluation - work now or defer?• Analysis and research the design and code• Fixing the code• Build, unit test, any additional work on the code• Update defect record with resolution• Integration and system test for fix• Regression test around the fix• Defect closure

Page 35: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Defect Find/Fix Cost FactorsPost-release

Include time for most, if not all, pre-release activities PLUS:• Determination of work-around (if applicable)• Communication to all impacted parties• Updating documentation (if applicable)

©2008 BenchmarkQA10/2/2008 35

• Updating documentation (if applicable)• Production code release• Production validation• Data clean-up (if applicable)• Others?

Page 36: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Calculating Find/Fix Cost Per Defect

Per defect find/fix cost, for defects both found and fixed during system test phase:

Average number of hours to find/fix a defect

©2008 BenchmarkQA10/2/2008 36

e.g. 12 hours x $75/hour = $900.00 per defect!

(time for all team members involved, added together)

X Average burden rate (salary + benefits, a blended average for combined job levels)

Page 37: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Calculating Total Phase Find/Fix Rework CostsTotal costs for all defects found/fixed during system test phase:

Average number of hours to find/fix a defect (time for all team members involved, added together)

©2008 BenchmarkQA10/2/2008 37

e.g. 12 hours x $75/hour x 30 = $27,000.00 of rework costs in just the system test phase!

(time for all team members involved, added together)

X Average burden rate (salary + benefits, a blended average for combined job levels)

X Total number of defects found and fixed during phase

Page 38: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Calculating Total Project Find/Fix Rework CostsTotal costs for all defects found/fixed during all pre-release phases:

Total costs to find/fix defects in Phase 1/Requirements

©2008 BenchmarkQA10/2/2008 38

e.g. $3,000 + $10,000 + $27,000 + $60,000 = $100,000 of rework costs pre-release!

+ Total costs to find/fix defects in Phase 2/Design, Code

+ Total costs to find/fix defects in Phase 3/System Test

+ Total costs to find/fix defects in Phase 4/Accept. Test

Page 39: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“You can't manage what you can't control, and you can't control what you don't measure.”

©2008 BenchmarkQA10/2/2008 39

— Tom DeMarco

Page 40: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Project Estimations and

Better Approaches

Page 41: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Common Estimation “Rules of Thumb”Tester-to-Developer Ratio

Leading Edge Average Organization Test Devel. Test Devel.

Internal IS 1 2.5 - 4 1 4 - 10

©2008 BenchmarkQA10/2/2008 41

Software Product Vendor 1 1 1 3 - 5 Software Services Vendor 1 2 - 3 1 5

Page 42: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Problems with Tester-to-Developer Ratios• Does not account for actual duties to be performed.

• What roles count as “Testers”? As “Developers”?

• Is this the same project-to-project so that we can leverage historical data for estimating purposes?

©2008 BenchmarkQA10/2/2008 42

g p p

• What is the experience level of each category?

• New development work might require more developers than testers but maintenance work might require more testers than developers.

• Concept only makes sense for longer range forecasting, not detailed planning.

Page 43: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Common Estimation “Rules of Thumb”Gross Labor Ratio

For traditional projects – based on 100 hours of coding effort

Activity Hours % of Project

Project Initiation 25 3.7%

©2008 BenchmarkQA10/2/2008 43

Project Initiation 25 3.7%

Analysis & Design 200 29.6%

Coding 100 14.8%

Unit Testing 100 14.8%

Integration & System Test 200 29.6%

Installation / Deployment 50 7.9%

TOTAL 675 100.00

Page 44: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Problems with Gross Labor Ratios

• Only applicable for new development projects

• For maintenance projects testing might need to be 100% or more of development as regression testing is not proportional to design and coding.

©2008 BenchmarkQA10/2/2008 44

p opo t o a to des g a d cod g

• Concept only makes sense for longer range forecasting, not detailed planning

Page 45: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Better Approaches to Estimation

• Estimates based on sized requirements– T-shirt method of sizing - XS, S, M, L, XL

Each size has an associated average time factor or each functional team has own time factor for each size of requirement

• Estimates based on function points

©2008 BenchmarkQA10/2/2008 45

Estimates based on function points– www.ifpug.com– Weighted totals of five external aspects of software applications:

• Types of inputs to the application• Types of outputs from the application• Types of inquiries users can make• Types of logical files which the application maintains• Types of interfaces to other applications

Page 46: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“Definition - Insanity: Doing the same thing over and over, and

expecting different results ”

©2008 BenchmarkQA10/2/2008 46

expecting different results.

— Albert Einstein

Page 47: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Elements of a GoodTesting Process

Page 48: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

The BenchmarkQA Structured Software Testing Process

Requirements

Test Strategy/Test Plan

Organization TestingPolicy/Charter

Requirements

Test Strategy/Test Plan

Organization TestingPolicy/Charter

©2008 BenchmarkQA10/2/2008 48

Test Cases/Checklists/Scenarios/Scripts

IntegrationTests

SystemTests

UnitTests

Acceptance/ Beta Tests

Test Data

Test Requirements/Traceability Matrix

Test Cases/Checklists/Scenarios/Scripts

IntegrationTests

SystemTests

UnitTests

Acceptance/ Beta Tests

IntegrationTests

SystemTests

UnitTests

Acceptance/ Beta Tests

Test Data

Test Requirements/Traceability Matrix

Page 49: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Testing ApproachesInclude all Three in Your Projects

Testing Approach DescriptionBlack Box Testing Testing without knowledge of the

inner workings of the software; the focus is on application or system inputs and outputs.

White Box Testing Testing based on software structure

©2008 BenchmarkQA10/2/2008 49

White Box Testing Testing based on software structure, logic paths, and methods; is also known as Clearbox or Glassbox.

Gray Box Testing Testing that is a blend of Black box and White box approaches; typically this means the system or application design is taken into account (as defined in a design document) when designing tests.

Page 50: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Unit Test Integration Test System Test Acceptance/Beta Test

Objectives• Verify individual functions,

modules, or units of code are working correctly

• Verify component external interfaces

• Verify component error recovery, performance

• Verify adherence to development guidelines

• Re-execute unit tests for integrated components

• Verify programs work together correctly as a system

• Focus on user and system interfaces, reports, databases

• Might also include performance testing

• Validate the product will meet the business needs / intended use and works correctly in a production-like environment

• Focus on user interactions with system while following normal business processes

Test Approach • White Box • White Box or Gray Box • Gray Box and Black Box • Black Box

Accountable RolesDevelopment Team• Developer• Technical Lead

Development Team and/or SQA Test Team• Developer and/or• SQA Test Lead / Test Analyst

SQA Test Team• SQA Test Lead• SQA Test Analyst• Performance Tester

End Users/Customers• Acceptance Tester• Business Representative• Customer

• Write software codeW it t it t t

• Contribute to master test plan it i t ti t t l • Write master or system test plan • Contribute to master test plan or

it t t t l

©2008 BenchmarkQA10/2/2008 50

Responsibilities

• Write, execute unit tests• Contribute to master test plan

or write unit test plan• Review testing documents for

next test phases• Resolve defects• Support next test phases

or write integration test plan• Write integration tests• Create test harness and/or

test stubs• Execute integration tests• Record defects• Resolve defects

y p• Write system tests• Create Traceability Matrix• Define regression tests• Execute system tests• Record defects• Support acceptance/beta test

write acceptance test plan• Review system tests and test

results• Write acceptance tests• Execute acceptance tests• Communicate problems• Provide Go-No Go decision

Typical Entry Criteria

• Requirements are defined• Design is complete• Code is written• Unit tests are defined

• At least two interfacing units / modules of code have been unit tested and are checked in to the version control system

• Integration tests are defined

• All functionality is coded• All unit and integration tests are

complete• Master or system test plan is

written, reviewed, approved• Detailed tests are written,

reviewed, approved• Test environment is ready

• System testing is complete• No open defects of highest

severity• Acceptance test environment is

ready• Acceptance tests written,

reviewed, approved

Typical Exit Criteria • Unit tests pass • Integration tests pass• System tests pass• No open defects of highest

severity

• Acceptance tests pass• No open defects of highest and

next highest severity

Page 51: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Identify Test RequirementsLook for requirements in the following sources:

• Requirements documents

• Design documents

O i ti t d d

©2008 BenchmarkQA10/2/2008 51

• Organization standards

• Regulations

• As-built systems

Identify both explicit and implicit requirements to be tested!

Page 52: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Use Smart Test Design Techniques

• Equivalence Partitioning

• Limits/Boundary Testing (Boundary Plus/Minus One)

©2008 BenchmarkQA10/2/2008 52

• Cause-Effect Graphing

• Decision Tables

Include both positive and negative tests!

Page 53: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Effective and Efficient Test Design• Risk rankings

– Assigned to each test requirement and focus efforts around higher risk items first (aka risk-based testing)

• Define actions, expected results for max flexibility– e.g. reference test data rather than embedding records into the detailed

tests

©2008 BenchmarkQA10/2/2008 53

tests

• Repeatable tests– Write detailed tests that are repeatable by anyone on test team

• Requirements coverage– At least one detailed test for each test requirement– Each detailed test satisfies a very limited number of test requirements

(ideally just one)

Page 54: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Effective and Efficient Test Design – cont’d

• Common tests – For recurring processes or interface elements

• Test checklists – For verifying standards – GUI controls, report layouts, etc.

• Modular tests

©2008 BenchmarkQA10/2/2008 54

• Modular tests – That can be called/chained together with other tests rather than writing

really long tests

• Testing standards that include:– Consistent formats and templates– Conventions for test naming, actions to take in tests, test data, how

application objects are referred to

Page 55: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Test Automation• Not every test is a good candidate for automation.

Consider automating the following:– Tests that will be repeated three or more times with the same application

functionality (e.g. “smoke test”)– Data input time is significant – can instead loop through a file of values

with a scriptT b d di ld d h ff i f h

©2008 BenchmarkQA10/2/2008 55

– Test executor boredom or tedium could reduce the effectiveness of the test

– Performance and stress tests– As much of the regression suite as is possible

• Use programming guidelines for scripting

• Test the tests!

Page 56: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Peer Reviews of Testing Documents• Allow test artifact to be in best possible state before

broader distribution

• Helps to maintain consistency in content of testing artifacts

©2008 BenchmarkQA10/2/2008 56

• Identify deviations from standards

• Provide additional perspectives and input on what and how to test

• Promote understanding of projects and technologies across team members

Page 57: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Formal Reviews of Testing Documents

• Get agreement on the planned testing and collect signatures to show approval

• Test Plan review usually includes project stakeholders from business/user community and from project team

H l f l t i l d fi t d ft f T bilit M t i tli i t t

©2008 BenchmarkQA10/2/2008 57

– Helpful to include first draft of Traceability Matrix, outlining test requirements

• Detailed test review might include project manager, technical lead and/or developer, business analyst or other business representative

Page 58: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“Since testing is a costly activity, one wants to recover some of its cost by increasing the

worth of the program ”

©2008 BenchmarkQA10/2/2008 58

worth of the program.

— Glenford Myers

Page 59: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Creating an Action Plan

Page 60: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Creating an Action Plan

The key steps to making process improvement changes are:

1. Establish ‘true’ root cause tracking and monitoring

2. Determine your organization’s cost of defects

3 Implement changes to lower overall costs of defects

©2008 BenchmarkQA10/2/2008 60

3. Implement changes to lower overall costs of defects

Page 61: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

‘True’ Root Cause

If root cause is currently tracked: • What classifications are used?

– Are they sufficient?

• Is root cause a required element in the defect tracking

©2008 BenchmarkQA10/2/2008 61

q gsystem?

• What job role enters root cause initially? - Is this role choice acceptable to all?

• Is the root cause classification for each defect reviewed by the project team at the close of a release?

Page 62: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

‘True’ Root CauseIf root cause is not currently tracked:• Establish the set of root cause choices. Suggestions:

Requirements – Missed Item Code – Missed Item

Requirements – Incorrect Code – Bug

Requirements – Conflict Code – Not Supporting Design

©2008 BenchmarkQA10/2/2008 62

• Modify the defect tracking tool – Who and when?– What to do with existing defects – what value to assign?

Design – Missed Item Code – Not Supporting Requirements

Design – Error Test Case Error

Design – Not Supporting Requirements Documentation Error

Other: <text field to capture root cause>

Page 63: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Determine Your Costs of Defects

• What project life cycle phases are used consistently?

• What activities should time be tracked in each phase that are relevant to finding and fixing a defect?

©2008 BenchmarkQA10/2/2008 63

• Target a variety of projects and a handful of defects from each to collect the time details

– Include various sized projects

• This data can be useful in garnering support for additional resources, process improvements, tools, etc. and to know how much time and energy should be spent based on the anticipated return on investment

Page 64: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Implement Changes

• Hold a cross-functional brainstorming discussion on what could/should be changed that would help to lower overall costs of defects

• After ideas are exhausted, group and rank them by priority

©2008 BenchmarkQA10/2/2008 64

• Look for volunteers to work on championing and piloting a small number of process changes

• Evaluate the effectiveness of the changes– Adjust processes as appropritate

• Continue to work on improvements for other problematic areas

Page 65: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

“Failure is an opportunity to start againmore intelligently.”

©2008 BenchmarkQA10/2/2008 65

more intelligently.

— Henry Ford

Page 66: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Recommended ReadingThe Capability Maturity Model: Guidelines for Improving the Software Process, Carnegie Mellon University, Software Engineering Institute. Addison-Wesley, 1995

Implementing Lean Software Development – From Concept to Cash, Mary and Tom Poppendieck. Addison-Wesley Professional, 2006

Principles of Quality Costs, Jack Campanella, ASQ Quality Press, 1999

©2008 BenchmarkQA10/2/2008 66

Quality is Free, Philip Crosby, McGraw-Hill, 1979

http://www.nist.gov/director/prog-ofc/report02-3.pdfPrepared by RTI for NIST, 2002

http://www.klocwork.com/company/downloads/ROI-Executive.pdfKhaled El Emam PhD, 2003

Page 67: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Helpful Website References• http://www.sei.cmu.edu

• http://www.stickyminds.com

• http://www.leansoftwaredevelopment.org/

• http://www.agilealliance.org/

• http://www.deming.org/

©2008 BenchmarkQA10/2/2008 67

• http://www.soft.com/Institute/HotList/index.html

• http://www.asq.org/

• http://www.rti.org/publications.cfm?nav=364

• http://www.ifpug.org/

• http://www.spr.com/

Page 68: TwinSpin Incorporating Quality Throughout the Lifecycle v0 ... · • Performance engineering – Staff augmentation and direct placement of true testing and quality assurance professionals

Thank You!Thank You!

For additional information on how BenchmarkQA can assist with improving your QA and testing function, contact:

Molly Decklever952.392.2384

[email protected]