Introduction
Numerous textbooks address software testing in a structured development
environment. By “structured” is meant a well-defined development cycle in
which discretely defined steps provide measurable outputs at each step. It
is assumed that software testing activities are based on clearly defined
requirements and software development standards, and that those standards
are used to develop and implement a plan for testing. Unfortunately,
this is often not the case. Typically, testing is performed against changing,
or even wrong, requirements.
This text aims to provide a quality framework for the software testing
process in the traditional structured as well as unstructured environments.
The goal is to provide a continuous quality improvement approach
to promote effective testing methods and provide tips, techniques, and
alternatives from which the user can choose.
The basis of the continuous quality framework stems from Edward Deming’s
quality principles. Deming was the pioneer in quality improvement,
which helped turn Japanese manufacturing around. Deming’s principles
are applied to software testing in the traditional “waterfall” and rapid application
“spiral” development (RAD) environments. The waterfall approach
is one in which predefined sequential steps are followed with clearly
defined requirements. In the spiral approach, these rigid sequential steps
may, to varying degrees, be lacking or different.
Section I, Software Quality in Perspective, reviews modern quality assurance
principles and best practices. It provides the reader with a detailed
overview of basic software testing techniques, and introduces Deming’s concept
of quality through a continuous improvement process. The Plan, Do,
Check, Act (PDCA) quality wheel is applied to the software testing process.
The Plan step of the continuous improvement process starts with a definition
of the test objectives, or what is to be accomplished as a result of
testing. The elements of a test strategy and test plan are described. A test
strategy is a concise statement of how to meet the goals of testing and precedes
test plan development. The outline of a good test plan is provided,
including an introduction, the overall plan, testing requirements, test procedures,
and test plan details.
TEAM LinG
xxvi
Software Testing and Continuous Quality Improvement
The Do step addresses how to design or execute the tests included in
the test plan. A cookbook approach describes how to perform component,
integration, and system acceptance testing in a spiral environment.
The Check step emphasizes the importance of metrics and test reporting.
A test team must formally record the results of tests and relate them to
the test plan and system objectives. A sample test report format is provided,
along with several graphic techniques.
The Act step of the continuous improvement process provides guidelines
for updating test cases and test scripts. In preparation for the next
spiral, suggestions for improving the people, process, and technology
dimensions are provided.
Section II, Life Cycle Testing Review, reviews the waterfall development
methodology and describes how continuous quality improvement can be
applied to the phased approach through technical reviews and software
testing. The requirements, logical design, physical design, program unit
design, and coding phases are reviewed. The roles of technical reviews and
software testing are applied to each. Finally, the psychology of software
testing is discussed.
Section III, Software Testing Methodology, contrasts the waterfall development
methodology with the rapid application spiral environment from a
technical and psychological point of view. A spiral testing approach is suggested
when the requirements are rapidly changing. A spiral methodology
is provided, broken down into parts, steps, and tasks, applying Deming’s
continuous quality improvement process in the context of the PDCA quality
wheel.
Section IV, Test Project Management, discusses the fundamental challenges
of maintaining and improving existing systems. Software changes
are described and contrasted. Strategies for managing the maintenance
effort are presented, along with the psychology of the software maintenance
activity. A maintenance testing methodology is then broken down
into parts, steps, and tasks, applying Deming’s continuous quality improvement
process in the context of the PDCA quality wheel.
Section V, Modern Software Testing Tools, provides a brief historical
perspective from the 1950s to date, and a preview of future testing tools.
Next, an overview of tools and guidelines for when to consider a testing
tool and when not to is described. It also provides a checklist for selecting
testing tools, consisting of a series of questions and responses. Examples
are given of some of the most popular products. Finally, a detailed methodology
for evaluating testing tools is provided, ranging from the initial test
goals through training and implementation.