Papers and Presentations

Douglas Hoffman has written papers and presented talks on a variety of subjects relating to software quality assurance. (PDF List of Publications) The abstracts, papers, and slide sets provide varying degrees of detail on frequently overlapping subjects. Not all of the material has been linked to the web site, but labels are included for all of the material being assembled.

This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License Creative Commons License Written permission from Douglas Hoffman is required for exceptions ( Contact Doug)

The materials available below are in pdf format. You need an Adobe(tm) Reader 5.0 or later to view them (Download)

Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

Alphabetical Order

Title Date Purpose
Advanced Automation Architectures (Tutorial) 07/2007 Conference for the Association for Software Testing (CAST) 2007
Analysis of The Taxonomy of Test Oracles 10/1998 Fifth Los Altos Workshop on Software Testing
Architecture and Design of Automated Software Tests 05/2000 PNSQC Spring Workshop 2000
Automated Testing of Embedded Software 03/2003 Spring 2003 Software Test Automation Conference
Avoiding the "Test and Test Again" Syndrome 07/2007 Conference for the Association for Software Testing (CAST) 2007
Cost Benefits for Test Automation 10/1999 STAR West 1999
The Darker Side of Metrics 10/2000 PNSQC 2000
Divide and Conquer 1/2005 Better Software, "Front Line" January 2005
Early Testing Without the Test and Test Again Syndrome 11/2006 SSQA
Exhausting Your Test Options 07/2003 Software Testing and Quality Engineering
Failure Mode and Effects Analysis 05/2000 ASQ Section 0613
Foundations of Software Quality 1994 ASQ Section 0613 Tutorial
Fundamentals of Software Testing 1995 ASQ Section 0613 Tutorial
Fundamentals of Software Quality Assurance 1992-1995 ASQ Section 0613 Tutorial
A Graphical Display of Testing Status for Complex Configurations 10/2008 PNSQC
Heuristic Test Oracles 04/1999 Software Testing and Quality Engineering
Measuring the Quality of Software Consulting 10/1994 Fourth International Conference on Software Quality
A Method for Measuring Quality of Software Consulting 1994 ASQ Section 0613
Metrics for Metrics: Cost Analysis and Justification 05/1998 Developing Strategic I/T Metrics Conference 1998
Mutating Automated Tests 05/2000 SSQA
Mutating Automated Tests 04/2000 Software Testing Analysis & Review (STAR) East 2000
Overview of ASQ's Certified Software Quality Engineer (CSQE) 09/2002 Quality Week 2002
Practical Software Metrics 1993
A Process for Measuring the Quality of Software Consulting 05/1994 PNSQC
Requirements for Test Automation 12/2000 SSQA
Requirements for Test Automation 10/1999 PNSQC 1999
The Software Quality Group's Relationship to Development 05/1993 Quality Week 1993
Some Measures of Quality of Software Consulting 1994 (ASQ) 1994 SSQA
SWEBOK, Feedback to IEEE on 06/2003 Review feedback to IEEE
Taxonomy of Test Oracles, Analysis of The 05/1998 Quality Week 1998
The "Test and Test Again" Syndrome 10/2004 2004 Better Software Conference
Test Automation Architectures: Planning for Test Automation 05/1999 Quality Week Conference 1999
Test Oracles; Planning Ahead for Test Automation 03/1998 East Bay SSQA (EBSSQA)
Testing Automation Beyond Regression Testing 4/2008 Spring STPCon
21 CFR Part 11: Electronic Signatures, Electronic Records 05/2000 ASQ Section 0613
Using Test Oracles in Automation 03/2003 Spring 2003 Software Test Automation Conference
Using Test Oracles in Automation 10/2001 2001 Pacific Northwest Software Quality Conference (PNSQC 2001)
Using Test Oracles in Automation 05/2000 Quality Week 2000 Tutorial
What's Different About Software
11/2001 ASQ Golden Gate Section
What's Different About Software
04/2001 ASQ Section 0613
Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

Management Topics

Title Date Purpose
21 CFR Part 11: Electronic Signatures, Electronic Records 05/2000 ASQ Section 0613
A Process for Measuring the Quality of Software Consulting 05/1994 PNSQC
Avoiding the "Test and Test Again" Syndrome 07/2007 Conference for the Association for Software Testing (CAST) 2007
Cost Benefits for Test Automation 10/1999 STAR West 1999
Divide and Conquer 1/2005 Better Software, "Front Line" January 2005
Failure Mode and Effects Analysis 05/2000 ASQ Section 0613
Fundamentals of Software Quality Assurance 1992-1995 ASQ Section 0613 Tutorial
Measuring the Quality of Software Consulting 10/1994 Fourth International Conference on Software Quality
Metrics for Metrics: Cost Analysis and Justification 05/1998 Developing Strategic I/T Metrics Conference 1998
Overview of ASQ's Certified Software Quality Engineer (CSQE) 09/2002 Quality Week 2002
Requirements for Test Automation 10/1999 PNSQC 1999
The Darker Side of Metrics 10/2000 PNSQC 2000
The Software Quality Group's Relationship to Development 05/1993 Quality Week 1993
The "Test and Test Again" Syndrome 10/2004 2004 Better Software Conference
Early Testing Without the Test and Test Again Syndrome 07/2007 Conference for the Association for Software Testing (CAST) 2007
What's Different About Software
04/2001 ASQ Section 0613
Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

Technical Topics

Title Date Purpose
Advanced Automation Architectures (Tutorial) 07/2007 Conference for the Association for Software Testing (CAST) 2007
Analysis of The Taxonomy of Test Oracles 05/1998 Quality Week 1998
Architecture and Design of Automated Software Tests 05/2000 PNSQC Spring Workshop 2000
Automated Testing of Embedded Software 03/2003 Spring 2003 Software Test Automation Conference
Exhausting Your Test Options 07/2003 Software Testing and Quality Engineering
Failure Mode and Effects Analysis 05/2000 ASQ Section 0613
Fundamentals of Software Quality Assurance 1992-1995 ASQ Section 0613 Tutorial
A Graphical Display of Testing Status for Complex Configurations 10/2008 PNSQC
Heuristic Test Oracles 04/1999 Software Testing and Quality Engineering
Mutating Automated Tests 04/2000 Software Testing Analysis & Review (STAR) East 2000
Overview of ASQ's Certified Software Quality Engineer (CSQE) 09/2002 Quality Week 2002
Requirements for Test Automation 10/1999 PNSQC 1999
Feedback to IEEE on SWEBOK 06/2003 Review feedback to IEEE
Test Automation Architectures: Planning for Test Automation 05/1999 Quality Week Conference 1999
Test Oracles; Planning Ahead for Test Automation 03/1998 East Bay SSQA (EBSSQA)
Testing Automation Beyond Regression Testing 4/2008 Spring STPCon
Using Test Oracles in Automation 05/2000 Quality Week 2000 Tutorial
Using Test Oracles in Automation 10/2001 2001 Pacific Northwest Software Quality Conference (PNSQC 2001)
Using Test Oracles in Automation 03/2003 Spring 2003 Software Test Automation Conference
Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

Reverse Chronological Order

Title Date Purpose
Testing Automation Beyond Regression Testing 4/2008 Spring STPCon
A Graphical Display of Testing Status for Complex Configurations 10/2007 PNSQC
Advanced Automation Architectures (Tutorial) 07/2007 Conference for the Association for Software Testing (CAST) 2007
Avoiding the "Test and Test Again" Syndrome 07/2007 Conference for the Association for Software Testing (CAST) 2007
Early Testing Without the Test and Test Again Syndrome 11/2006 SSQA
Divide and Conquer 1/2005 Better Software, "Front Line"
The "Test and Test Again" Syndrome 10/2004 2004 Better Software Conference
Exhausting Your Test Options 07/2003 Software Testing and Quality Engineering, "Bug Report"
Feedback to IEEE on SWEBOK 06/2003 Review feedback to IEEE
Using Test Oracles in Automation 03/2003 Spring 2003 Software Test Automation Conference
Automated Testing of Embedded Software 03/2003 Spring 2003 Software Test Automation Conference
Overview of ASQ's Certified Software Quality Engineer (CSQE) 09/2002 Quality Week 2002
What's Different About Software
11/2001 ASQ Golden Gate Section
Using Test Oracles in Automation 10/2001 2001 Pacific Northwest Software Quality Conference (PNSQC 2001)
What's Different About Software
04/2001 ASQ Section 0613
Requirements for Test Automation 12/2000 SSQA
The Darker Side of Metrics 10/2000 PNSQC 2000
Mutating Automated Tests 05/2000 SSQA
Using Test Oracles in Automation 05/2000 Quality Week 2000 Tutorial
Architecture and Design of Automated Software Tests 05/2000 PNSQC Spring Workshop 2000
21 CFR Part 11: Electronic Signatures, Electronic Records 05/2000 ASQ Section 0613
Failure Mode and Effects Analysis 05/2000 ASQ Section 0613
Mutating Automated Tests 04/2000 Software Testing Analysis
& Review (STAR) East 2000
Cost Benefits for Test Automation 10/1999 STAR West 1999
Requirements for Test Automation 10/1999 PNSQC 1999
Test Automation Architectures: Planning for Test Automation 05/1999 Quality Week Conference 1999
Heuristic Test Oracles 04/1999 Software Testing and Quality Engineering
Analysis of The Taxonomy of Test Oracles 10/1998 Fifth Los Altos Workshop on Software Testing
Metrics for Metrics: Cost Analysis and Justification 05/1998 Developing Strategic I/T Metrics Conference 1998
Analysis of The Taxonomy of Test Oracles 05/1998 Quality Week 1998
Test Oracles; Planning Ahead for Test Automation 03/1998 East Bay SSQA (EBSSQA)
Fundamentals of Software Testing 1995 ASQ Section 0613 Tutorial
Foundations of Software Quality 1994 ASQ Section 0613 Tutorial
Measuring the Quality of Software Consulting 10/1994 Fourth International Conference on Software Quality
A Process for Measuring the Quality of Software Consulting 05/1994 PNSQC
Some Measures of Quality of Software Consulting 1994 (ASQ) 1994 SSQA
A Method for Measuring Quality of Software Consulting 1994 ASQ Section 0613
Practical Software Metrics 1993
The Software Quality Group's Relationship to Development 05/1993 Quality Week 1993
Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

Abstracts

**********************************************************************

A Taxonomy of Test Oracles

1998 Quality Week

Extended Abstract:
Automation of testing is often a difficult and complex process. The most familiar aspects of test automation are organizing and running of test cases and capturing and verifying test results. Generating the expected results is often done using a mechanism called a test oracle. This paper describes several classes of oracles created to provide various types of verification and validation. Several relevant characteristics of oracles are described and the advantages and disadvantages for each type of oracle are described.

Background:
In software testing, the mechanism used to generate the expected results is called an oracle. (In this paper, the first letter will be capitalized when referring to the Oracle for a specific test.) Many different approaches can be used to create, capture, and compare test results. The author, for example, has used the following methods for generating expected results:

Software tests themselves can be classified in many different ways. Automated tests that include evaluation of results need some kind of oracle regardless of the type or purpose of the tests. Yet, the mechanism for evaluation of results ranges from none (the program or system didn't crash) to exact (all values, displays, files, etc., are verified). Various levels of effort and exactness are appropriate under different circumstances. The nature and complexity of an oracle is also dependent upon those circumstances.

Presented at 1998 Quality Week (QW), and October, 1998 Los Altos Workshop on Software Testing (LAWST 5)

Taxonomy Slides floppy disk Taxonomy Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Architecture and Design of Automated Software Tests

Spring 2000 PNSQC Tutorial (1/4 Day Tutorial)

Automated regression testing is the most popular approach to software test automation, but too frequently is neither effective nor cost-effective. It is just one strategy among many. Likewise, regression test tools are one set of test tools among many. The workshop looks at several approaches to test automation, provides some cost/benefit/risk/prerequisite ideas about them, and provides some architectural and design suggestions for developing automated test suites. This tutorial is intended to help you do better requirements analysis and develop a sensible architecture for automated testing efforts.

Topics emphasized:

NOTE: This tutorial was not about how to use any particular test tool or about code in any particular test tool's programming language.

Presented at Spring 2000 Pacific Northwest Software Quality Conference Tutorials

Workshop Abstract floppy disk Automation Architecture Tutorial Slides

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Testing Automation Beyond Regression Testing

Fall 2008 STPCon

When they picture test automation testers often think of GUI based scripted regression testing, which amounts to automating manual tests. This is a very limited view of the potentially vast possibilities open to us when automating tests. When we think of test automation we should first think about doing things that we can’t do manually. This talk is about getting the limitations of the automated regression suite approach and generating much more valuable kinds of test automation.

Presented at Fall 2008 Software Testing and Performance Conference

Beyond Regression Slides

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

A Graphical Display of Testing Status for Complex Configurations

Pacific Northwest Software Quality Conference 2007

Representing the status of software under test is complex and difficult. It becomes more difficult when testers are trying new ways to uncover defects; when testing priorities shift as new information is discovered about the software under test. This is sometimes compounded when there are many interacting subsystems and combinations that must be tracked. This paper describes a spreadsheet method developed to provide a single page representation of the test space for large and complex sets of product components and configurations. The spreadsheet can be used as the focal point for project testing.

Presented at 2007 Pacific Northwest Software Quality Conference

Talk presented at ASQ Silicon Valley Section Meeting, September 2007

Graphical Display Slides floppy disk Graphical Display Zip File

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Mutating Automated Tests

2000 STAR East Conference; SSQA

Keywords: Automated Testing, Non-deterministic Tests, Mutating Tests, Test Oracles, Pseudo Random Numbers

Key points attendees take away:

Summary:
Most automated tests are used as regression tests - doing the same exercises each time the test is run. The paper and talk describe a powerful type of automated test - one that does something different each time it runs. The technique doesn't apply to all situations of automated tests, but the author presents the pros and cons for mutating automated tests based on his experience with them. The paper also provides several examples.

Presented at 2000 Software Testing, Analysis, and Review (STAR) East Conference, and May, 2000 meeting of Silicon Valley Software Quality Association (SSQA)

Mutating Tests Slides floppy disk SSQA May 2000 Slides floppy disk Mutating Tests Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Overview of ASQ's Certification in Software Quality Engineering

2002 Quality Week Conference

Abstract: For 2002, the American Society for Quality (ASQ), a not-for-profit professional society, has restructured and updated the Body of Knowledge (BOK) used for their Certification in Software Quality Engineering (CSQE). The Tutorial describes the content of the updated BOK, highlights the changes, and covers the following topics:

The Subject Areas of the CSQE 2002 Body of Knowledge are:

The emphasis of the tutorial is on mapping knowledge and skill areas into performance measures. By identifying relevant skill areas and performance measures, the quality engineering team can understand what levels of performance are expected and what levels of performance are being shown. Only a brief BOK topical overview is presented, since defining of all the topics in the CSQE BOK in detail would take more time than is available in a one day tutorial.

Presented at 2002 Software Quality Week (QW)

2002 CSQE BOK Slides (6 up) floppy disk 2002 CSQE BOK Slides (2 up) floppy disk 2002 CSQE BOK Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Divide and Conquer

January 2005 Better Software Magazine

This article describes a way to deal with overwhelming tasks, such as those we have when starting a new job. It describes one way I've quickly prioritized tasks and dealt with long to do lists.

Published as a "Front Line" article in Better Software Magazine January 2005

Talk presented at ASQ Silicon Valley Section Meeting, November 2005

Divide Slides floppy disk Divide and Conquer Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Exhausting Your Testing Options

July/August 2003 STQE Magazine

This article describes my experience at a startup, working with a massively parallel system. Because of its size and speed, I found that going through all the input values was practical for some of the function testing. Some of the surprises from this testing:

Published as a "Bug Report" within Software Testing and Quality Engineering (STQE) Magazine July/August 2003

Exhausting Options Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Early Testing Without the "Test and Test Again" Syndrome

2004 Better Software Conference

SSQA 11/2006

This paper introduces what I call the "Test and Test Again" Syndrome. This happens when a test group begins testing early in the development cycle and finds itself repeatedly testing and retesting to the exclusion of all other activities. The presentation describes the syndrome, its likely causes, and things to do to avoid and break out of the cycle.

Presented at 2004 Better Software Conference

Early Testing Without the Test and Test Again Syndrome (Abstract) floppy disk Early Testing (Slides)

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Avoiding the "Test and Test Again" Syndrome

2007 Conference for AST

CAST 07/2007

I've heard that a frog won't jump out of boiling water if the water is slowly heated from room temperature to boiling and the frog was placed in it before heat is applied (which I tend to believe without needing to test it for myself). It seems that a frog does not react to slow changes in temperature, even when its life is threatened. Some test projects I've worked with seemed to have gone through a similar process; the test team came in one day and realized that it was time for the final testing push, but they had been so busy running tests that they hadn't had time to prepare properly. The test team had become embroiled in what I call the "Test and Test Again Syndrome." What are some of the forces behind this? What does it cost us? How can testers successfully deal with the Syndrome? How might it be avoided? What are some of the approaches that have failed to deal with it? The session delves into some of the lessons learned through the school of hard knocks.

Presented at 2007 CAST

Avoiding the Test and Test Again Syndrome (Abstract) floppy disk Avoiding the Test and Test Again Syndrome (Slides) floppy disk Avoiding the Test and Test Again Syndrome (Paper)

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Automation Architecture Approaches: Beyond Regression Testing

2007 Conference for AST; 2006 SSQA

Most testers think of GUI based, scripted regression testing when they picture test automation. These scripts are rerun as a regression test qualification for the software. It is especially true for management's dream test set - where large numbers of regression tests are created to fully and automatically qualify a product. This type of automation amounts to automating existing manual tests, and is less effective than just running the tests manually. This is also an expensive undertaking and more frequently than not it is unsuccessful for a variety of economic and technical reasons.

There are vast possibilities beyond that open to us when automating tests. When we think of test automation we should first think about doing things that we can't do manually. Based on experience creating non-regression automated tests, these presentations address what and how we can create more powerful automated tests.

The SSQA talk is a one hour presentation about the limitations and how other kinds of test automation may be much more valuable.

The CAST tutorial is a one-day presentation of advanced automated test architectures.

The Tutorial covers:

Automation Architecture Approaches: Beyond Regression (Tutorial Abstract) floppy disk Automation Architecture (CAST 2007 Slides) floppy disk SSQA Beyond Regression Slides

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Heuristic Test Oracles

April 1999 STQE Magazine

Capture and comparison of results is one key to successful software testing. For manual tests this often consists of viewing results to determine if they are anything like what we might expect. It is more complicated with automated tests, as each automated test case provides a set of inputs to the software under test (SUT) and compares the returned results against what is expected. Expected results are generated using a mechanism called a test oracle.

It is often impractical to exactly reproduce or compare accurate results, but it isn't necessary for an oracle to be perfect to be useful. In this article, I describe some ideas associated with what I call heuristic oracles. A heuristic oracle uses simpler consistency checks (heuristics) for the results of a test.

Published as an article "Heuristic Test Oracles" in Software Testing and Quality Engineering (STQE) Magazine April 1999

Heuristic Test Oracles Paper

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Test Automation Architectures: Planning for Test Automation

1999 International Quality Week Conference; East Bay SSQA (EBSSQA)

Designing a practical test automation architecture provides a solid foundation for a successful automation effort. This talk describes elements of automated testing that need to be considered, models for testing that can be used for designing a test automation architecture, and considerations for successfully combining the elements to form an automated test environment. The paper covers:

Presented at EBSSQA, March 1998 and 1998 International Quality Week Conference

Planning Ahead Slides (EBSSQA) floppy disk Automation Architectures Slides floppy disk Automation Architectures

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

Automated Testing of Embedded Software

2003 Spring/Fall Software Test Automation Conference

More and more software is being embedded in everyday devices ranging from computer peripherals to toys. Development and testing of embedded software offers new challenges because of the combination of the hardware devices and environments. This presentation describes some of the common issues and some ways they have been addressed.

Presented at Spring 2003 Software Test Automation Conference

Auto Embedded Slides

Return to Top | Alphabetical Order | Management Topics | Technical Topics | Reverse Chronological Order

**********************************************************************

The Darker Side of Metrics

2000 PNSQC

There sometimes is a decidedly dark side to software metrics that many of us have observed, but few have openly discussed. It is clear to me that we often get what we ask for with software metrics and we sometimes get side effects from the metrics that overshadow any value we might derive from the metrics information. Whether or not our models are correct, and regardless of how well or poorly we collect and compute software metrics, people's behaviors change in predictable ways to provide the answers management asks for when metrics are applied. Don't take me wrong; I believe most people in this field are hard working and well intentioned, and although some of the behaviors cause by metrics may seem funny, quaint, or even silly, they are serious responses created in organizations because of the use of metrics. Some of these responses seriously hamper productivity and can actually reduce quality.

The presentation focuses on a metric that I've seen used in many organizations (readiness for release) and some of the disruptive results in those organizations. I've focused on three examples of different metrics that have been used and a few examples of the behaviors elicited by using the metrics. For obvious reasons, the examples have been subtly altered to protect the innocent (or guilty). The three metrics are:

1. Defect find/fix rate
2. Percent of tests running/Percent of tests passing
3. Complex model based metrics (e.g., COCOMO)

Some of the observed behaviors include: