1. The Software Life Cycle
An introduction to the fundamental elements of the software life cycle, and several life cycle
models that are commonly in use. Also, how testing is integrated into the life cycle.
a. Life cycle models
b. Types of testing and where they fit in
i. Unit Testing
ii. Regression Testing
iii. Integration Testing
iv. System Testing
2. The Role of Testing and QA
An overview of the typical responsibilities of test groups and quality assurance groups, along with
common variations. The difference between testing and quality assurance, and the ways that these
terms are often abused. The anatomy of a bug.
§ Exercise: Write the objectives for your test team. Compare notes.
a. Typical Test Group Objectives
b. Typical Quality Assurance Objectives
c. Variations
d. What is a bug?
3. You Can’t Test Everything
Why you cannot completely test any non-trivial application. A demonstration of the magnitude of
the testing challenge due to the number of possible inputs, combinations of features and
configurations, and paths through the code.
§ Exercise: Define a small part of an application that is familiar to the class and calculate
the number of tests required to cover all feature combinations.
a. Inputs
b. Combinations
i. Feature Interactions
ii. Configurations
c. Code Paths
