Thursday, February 05, 2009

Static Testing

How to find bugs early without executing the software. An overview of a handful of review and inspection techniques, and how testers should participate. Also, how to utilize static analysis tools and services.

a. Reviews and Inspections
i. Desk Check
ii. Walkthrough
iii. Inspection
iv. Combining Review Techniques

b. Static Analysis Tools
i. Complexity Analysis
ii. Defect Detection
iii. Coding Standards Enforcement

Bug Isolation and Reporting

When testers are successful, they will come across bug symptoms. This section explains the fine art of bug isolation – turning a symptom into a well-defined bug report. Also, the organizational factors that need to be considered in order to maximize the chance of getting the bug fixed.
a. "A problem well-stated is half-solved."
b. The Goal of Bug Reporting
c. The Importance of Reproducibility
d. Isolation and Simplification
i. Bottom-up
ii. Top-down
iii. The “binary defect search” technique
e. Generalization
f. Bug Reporting
i. Important Elements
ii. Working with Developers
iii. Follow-up

Test Design Techniques

A tour of several low-level test design techniques. What situations would lead testers in an independent test group to use these techniques.

a. Functional Analysis
b. Requirements Analysis
c. Partitioning
d. Domain Analysis
e. User Scenarios
f. All-pairs
g. Using Combinations of These Techniques

Risk Management

An introduction to the risk management process – identifying risks, analyzing them, mitigating them, contingency planning, and monitoring.

a. Risk Management Process
i. Identify
ii. Analyze
iii. Plan
iv. Mitigate
v. Track

b. Risk-Based Testing
i. Using a Risk Analysis to Plan Testing
ii. Quality Criteria
iii. Risk Catalogs
iv. Risk-Based Release Decisions
v. When to Use Alternate Methods to Mitigate Risk

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