ProactiveTestPlanning - Seattle Area Software Quality

Download Report

Transcript ProactiveTestPlanning - Seattle Area Software Quality

How Early, Proactive Test
Planning Contributes to
Project Success
Based on a paper to be presented at the
International Information Management
Association in Dublin, Ireland - September, 2005
August 18, 2005
Jim Nindel-Edwards
Presentation Outline
 Introduction
 Brief primer on requirements
 Where does the test plan fit in?
 Addressing requirements issues with the test
plan
 Conclusion
 Q & A, Comments, Discussion
August 18, 2005
Jim Nindel-Edwards
Survey of the Requirements Process
 The importance of requirements
 Just cannot succeed without them
 Requirements can be missed
 And too often are missed until late the process
 Missed functional requirements vs. other types of
requirements
 Development methodologies can help, or hinder the
requirements process
 How can the test plan help?
August 18, 2005
Jim Nindel-Edwards
Requirements – Definitions
Dorfman and Thayer (1990)
 A software capability needed by the user to
solve a problem to achieve an objective
 A software capability that must be met or
possessed by a system or system component
to satisfy a contract, standard, specification,
or other formally imposed documentation
August 18, 2005
Jim Nindel-Edwards
Unknown Requirements
Watts Humphrey (1990)
“Each error, when found, is a surprise whose
correction is both expensive and disruptive.”
 Unknown
“The users think they know what is wanted, but during
initial use they discover that their real needs are not
what they had thought.”
 Misunderstood Requirements
“Even when the requirements are known and stable, the
implementers often do not understand them in the
detail required to produce a satisfactory product.”
August 18, 2005
Jim Nindel-Edwards
What types of requirements are there
anyway?
 Functional – gets most of the attention
 Application Architecture
 Environmental
 Standards
 Functional needs - secondary user
groups
 Security
August 18, 2005
Jim Nindel-Edwards
Where does the Test Plan fit?
Functional requirements:
 Test what is supposed to work (of course)
 Test what is not supposed to work (Negative
testing)
 Testing in priority sequence (Pri1, Pri2, etc.)
 Regression Testing
 Testing conflicting requirements (Rich feature set,
ease of use)
August 18, 2005
Jim Nindel-Edwards
Application Architecture
Target hardware and OS environments
 Performance Test
 Stress Test
 Limits Testing
 Target installation environment vs. actual
implementation environment
 How does the application respond to
installation in unanticipated environments?
August 18, 2005
Jim Nindel-Edwards
Environmental Requirements
 Glenford Myers’s Project Objective List






Efficiency
Compatibility
Security (more later)
Reliability
Maintainability
Upgradeability
 Shared environments
August 18, 2005
Jim Nindel-Edwards
Standards Requirements
 Standards – Abstractions of hardware and
software




Target Operating System(s)
Target Hardware
Supported vs. non-supported environments
Industry standards (XML, SOAP, UDDI, etc.)
 Validation that standards are met
 Edge, boundary, and “corner” tests
August 18, 2005
Jim Nindel-Edwards
Secondary User Groups
Secondary users are users also!
 Installers, super users, DBAs
 Testing the documentation for all types of
users groups
 Testing the installation, upgrade, rollback, and
trouble shooting processes
 Conversion and upgrades from other
software packages and/or old versions
 Reliability, efficiency, storage requirements
August 18, 2005
Jim Nindel-Edwards
Product and System Security
 Security requirements – Application or
Environment?

Security holes typically lie in-between these
two areas
 Making certain the security requirements are
clearly documented, and testable
 Continuous testing of security features, and
searching for security holes
 Tests must include all user groups
August 18, 2005
Jim Nindel-Edwards
Back to the test plan
 Verify functionality, find defects
 Use a checklist (handout)
 Build the test plan early in the project, and
keep it up to date

You will affect the requirements document in this
process!
 Test all aspects of the product at every
milestone

Early test failure(s) need not indicate a poor product,
just an “immature” product
August 18, 2005
Jim Nindel-Edwards
Conclusion
 Not having a test plan is not a good idea!
 Having a test plan, even late in the project, is better
than not having one at all

At least you can document what was tested, and not
tested, in the development process
 Early test planning leads to more comprehensive
tests earlier in the development process
 Test plans at the very start of a project can uncover
missing and misunderstood requirements before they
add delays to the project
August 18, 2005
Jim Nindel-Edwards
Q & A, Comments, Suggestions
 Question: What is a “good” bug?

And what might you change in your project to catch this one
early?
August 18, 2005
Jim Nindel-Edwards
Thanks!
 Jim Nindel-Edwards, SQA Lead, Costco
Wholesale, Costco.com
 Email: [email protected]
 My thanks to SASQAG

And my Graduate Advisor, Dr. Gerhard Steinke,
Seattle Pacific University
August 18, 2005
Jim Nindel-Edwards