Contents

Preface

Acknowledgments

Part I: What Is Automated Testing?

1. The Birth and Evolution of Automated Testing

1.1 Automated Testing

1.2 Background on Software Testing

1.3 The Automated Test Life-Cycle Methodology (ATLM)

1.3.1 Decision to Automate Test

1.3.2 Test Tool Acquisition

1.3.3 Automated Testing Introduction Phase

1.3.4 Test Planning, Design, and Development

1.3.5 Execution and Management of Tests

1.3.6 Test Program Review and Assessment

1.4 ATLM’s Role in the Software Testing Universe

1.4.1 ATLM Relationship to System Development Life Cycle

1.4.2 Test Maturity Model (TMM)—Augmented by Automated Software Testing Maturity

1.4.3 Test Automation Development

1.4.4 Test Effort

1.5 Software Testing Careers

2. Decision to Automate Test

2.1 Overcoming False Expectations for Automated Testing

2.1.1 Automatic Test Plan Generation

2.1.2 Test Tool Fits All

2.1.3 Immediate Test Effort Reduction

2.1.4 Immediate Schedule Reduction

2.1.5 Tool Ease of Use

2.1.6 Universal Application of Test Automation

2.1.7 One Hundred Percent Test Coverage

2.2 Benefits of Automated Testing

2.2.1 Production of a Reliable System

2.2.2 Improvement of the Quality of the Test Effort

2.2.3 Reduction of Test Effort and Minimization of Schedule

Case Study: Value of Test Automation Measurement

2.3 Acquiring Management Support

2.3.1 Test Tool Proposal

3. Automated Test Tool Evaluation and Selection

3.1 The Organization’s Systems Engineering Environment

3.1.1 Third-Party Input from Management, Staff, and End Users

3.1.2 Tool Criteria Reflecting the Systems Engineering Environment

3.1.3 Level of Software Quality

3.1.4 Help Desk Problem Reports

3.1.5 Budget Constraints

3.1.6 Types of Tests

3.1.7 Long-Term Investment Considerations

3.1.8 Test Tool Process

3.1.9 Avoiding Shortcuts

3.2 Tools That Support the Testing Life Cycle

3.2.1 Business Analysis Phase Tools

3.2.2 Requirements Definition Phase Tools

3.2.3 Tools for the Analysis and Design Phase

3.2.4 Programming Phase Tools

3.2.5 Metrics Tools

3.2.6 Other Testing Life-Cycle Support Tools

3.2.7 Testing Phase Tools

3.3 Test Tool Research

3.3.1 Improvement Opportunities

3.4 Evaluation Domain Definition

3.5 Hands-on Tool Evaluation

3.5.1 Evaluation Report

3.5.2 License Agreement

Part II: Introduction of Automated Testing to a Project

4. Automated Testing Introduction Process

4.1 Test Process Analysis

4.1.1 Process Review

4.1.2 Goals and Objectives of Testing

Case Study: Test Objectives and Strategies

4.1.3 Test Strategies

4.2 Test Tool Consideration

4.2.1 Review of Project-Specific System Requirements

4.2.2 Application-Under-Test Overview

4.2.3 Review of Project Schedule

4.2.4 Test Tool Compatibility Check

4.2.5 Demonstration of the Tool to the Project Team

4.2.6 Test Tool Support Profile

4.2.7 Review of Training Requirements

5. Test Team Management

5.1 Organizational Structure of a Test Team

5.1.1 Stovepipe Test Team

5.1.2 Centralized Test Team

5.1.3 IV&V Test Team

5.1.4 Systems Methodology and Test Team

5.1.5 Test Team Summary

5.2 Test Program Tasks

5.3 Test Effort Sizing

5.3.1 Test Team Sizing Methods: An Overview

5.3.2 Development Ratio Method

5.3.3 Percentage Method

5.3.4 Test Procedure Method

5.3.5 Task Planning Method

5.3.6 Test Effort Sizing Factors

5.4 Test Engineer Recruiting

5.4.1 Test Engineer Qualities

5.4.2 Test Team Composition

5.4.3 Job Requisition

5.4.4 Recruiting Activities

5.4.5 Locating Test Engineers

5.4.6 Test Engineer Interviews

5.4.7 Distinguishing the Best Candidate

5.5 Roles and Responsibilities

Part III: Test Planning and Preparation

6. Test Planning: Smart Application of Testing

6.1 Test Planning Activities

6.2 Test Program Scope

6.2.1 System Description

6.2.2 Critical/High-Risk Functions

6.2.3 Test Goals, Objectives, and Strategies

6.2.4 Test Tools

6.2.5 Test Program Parameters

6.2.6 Verification Methods

6.2.7 Test Requirements Definition

6.3 Test Requirements Management

6.3.1 Requirements Management Tools

6.3.2 Assessing the Test Requirements Risk

6.3.3 Prioritization of Tests

6.3.4 Requirements Traceability Matrix

6.4 Test Program Events, Activities, and Documentation

6.4.1 Events

6.4.2 Activities

6.4.3 Documentation

6.5 The Test Environment

6.5.1 Test Environment Preparations

6.5.2 Test Environment Integration and Setup

6.6 The Test Plan

6.6.1 Test Completion/Acceptance Criteria

6.6.2 Sample Test Plan

7. Test Analysis and Design

7.1 Test Requirements Analysis

7.1.1 Development-Level Test Analysis (Structural Approach)

7.1.2 System-Level Test Analysis (Behavioral Approach)

7.2 Test Program Design

7.2.1 Test Program Design Models

7.2.2 White-Box Techniques (Development-Level Tests)

7.2.3 Black-Box Techniques (System-Level Tests)

7.2.4 Test Design Documentation

7.3 Test Procedure Design

7.3.1 Test Procedure Definition

7.3.2 Automated Versus Manual Test Analysis

7.3.3 Automated Test Design Standards

Case Study: Naming Conventions

7.3.4 Manual Test Design Guidelines

7.3.5 Detailed Test Design

7.3.6 Test Data Requirements

8. Test Development

8.1 Test Development Architecture

8.1.1 Technical Environment

8.1.2 Environment Readiness Checks

8.1.3 Automation Framework Reuse Analysis

8.1.4 Test Procedure Development/Execution Schedule

8.1.5 Modularity-Relationship Analysis

8.1.6 Explanation of the Sample Modularity-Relationship Matrix

8.1.7 Calibration of the Test Tool

8.1.8 Compatibility Work-Around Solutions

Case Study: Incompatibility Work-Around Solution

8.1.9 Manual Execution of Test Procedures

8.1.10 Test Procedure Inspections—Peer Reviews

8.1.11 Test Procedure Configuration Management

8.2 Test Development Guidelines

8.2.1 Design-to-Development Transition

8.2.2 Reusable Test Procedures

Case Study: Navigation Using Tabs or Mouse Clicks

Case Study: Testing Bitmaps Using a Capture/Playback Tool [2]

8.2.3 Maintainable Test Procedures

Case Study: Automating Documentation

Case Study: Automated Random Testing

8.2.4 Other Guidelines

Example 1. Determine Available Free Memory

Example 2. Identify System Resources in Use

Example 1. [6]: Sort the array contents by means of a .dll function.

Example 2. Sort a field according to class and x-position

8.3 Automation Infrastructure

8.3.1 Table-Driven Test Automation

8.3.2 PC Environment Automated Setup Script

8.3.3 Automated Recording Options

8.3.4 Login Function

8.3.5 Exit Function

8.3.6 Navigation

8.3.7 Verifying GUI Standards

8.3.8 Smoke Test

Case Study: Smoke Test Application

8.3.9 Error-Logging Routine

8.3.10 Help Function Verification Script

8.3.11 Timed Message Boxes Function

8.3.12 Advanced Math Functions

Part IV: Test Execution and Review

9. Test Execution

9.1 Executing and Evaluating Test Phases

9.1.1 Unit Test Execution and Evaluation

9.1.2 Integration Test Execution and Evaluation

9.1.3 System Test Execution and Evaluation

9.1.4 Test Results Analysis of Regression Tests

9.1.5 User Acceptance Test Execution and Evaluation

9.2 Defect Tracking and New Build Process

9.2.1 Defect Life-Cycle Model

9.3 Test Program Status Tracking

9.3.1 Earned Value Management System

Case Study: System Test Status Tracking

9.3.2 Test Metrics Collection and Analysis

10. Test Program Review and Assessment

10.1 Test Program Lessons Learned—Corrective Actions and Improvement Activity

10.2 Test Program Return on Investment

Case Study: Test Program Return on Investment

Case Study: Quantify Tool Return on Investment [1]

Quantify Tool’s Return on Investment

Part V: Appendixes

A. How to Test Requirements

A.1 Requirements Testing Approach

Abstract

The Quality Gateway

Make the Requirement Measurable

Quantifiable Requirements

Nonquantifiable Requirements

Keeping Track

Coherency and Consistency

Completeness

Relevance

Requirement or Solution?

Stakeholder Value

Traceability

Order in a Disorderly World

Conclusions

References

B. Tools That Support the Automated Testing Life Cycle

B.1 Introduction

B.2 Business Analysis Phase

B.2.1 Business Modeling Tools

B.2.2 Configuration Management Tools

B.2.3 Defect Tracking Tools

B.2.4 Technical Review Management

B.2.5 Documentation Generators

B.3 Requirements Definition Phase

B.3.1 Requirements Management Tools

B.3.2 Requirements Verifiers

B.3.3 Use Case Generators

B.4 Analysis and Design Phase

B.4.1 Visual Modeling Tools

B.4.2 Structure Charts, Flowcharts, and Sequence Diagrams

B.4.3 Test Procedure Generators

B.5 Programming Phase

B.5.1 Syntax Checkers/Debuggers

B.5.2 Memory Leak and Runtime Error Detection Tools

B.5.3 Code Checkers

B.5.4 Static and Dynamic Analyzers

B.5.5 Unit and Integration Test Tools

B.6 Metrics Tools

B.6.1 Code (Test) Coverage Analyzers and Code Instrumentors

B.6.2 Usability Measurement Tools

B.7 Testing Support Tools

B.7.1 Test Data Generators

B.7.2 File Comparison Tools

B.7.3 Simulation Tools

B.8 Testing Phase

B.8.1 Test Management Tools

B.8.2 Network Testing Tools

B.8.3 GUI Application Testing Tools

B.8.4 Load/Performance Testing Tools

B.8.5 Web Testing Tools

B.8.6 Year 2000 Testing Tools

B.9 Other Test Tool Vendors

C. Test Engineer Development

C.1 Technical Skills Stage

C.2 Test Process Stage

C.3 Team Effort Stage

C.4 Technical Stewardship Stage

C.5 Test/Project Management Stage

C.6 Business/Product Management Stage

D. Sample Test Plan

Contents

D.1 Introduction

D.1.1 Purpose

D.1.2 Background

D.1.3 System Overview

D.1.4 Applicable Documents

D.1.5 Master Schedule

D.2 Roles and Responsibilities

D.2.1 Project Organization

D.2.2 Project Roles and Responsibilities

D.2.3 Test Task Structure

D.2.4 Test Team Resources

D.3 Test Program

D.3.1 Scope

D.3.2 Test Approach

D.3.3 Test Strategies

D.3.4 Automated Tools

D.3.5 Qualification Methods

D.3.6 Test Requirements

D.3.7 Test Design

D.3.8 Test Development

D.4 Test Environment

D.4.1 Test Environment Configuration

D.4.2 Test Data

D.5 Test Execution

D.5.1 Test Program Reporting

D.5.2 Test Program Metrics

D.5.3 Defect Tracking

D.5.4 Configuration Management

D.6 Detailed Test Schedule

Appendix D.A Test Procedure Development Guidelines

Appendix D.B Test Verification Summary Matrix

Appendix D.C Test Procedures and Test Scripts

E. Best Practices

E.1 Documented Process

E.2 Managing Expectations

E.3 Pilot Project

E.4 Test Tool Compatibility Checks

E.5 Test Tool Upgrades

E.6 Baselined System Setup and Configuration

E.7 Software Installations in the Test Environment Baseline

E.8 Overall Test Program Objectives

E.9 Keep Automation Simple

E.10 Test Procedure Design and Development Standards

E.11 Automated versus Manual Test Analysis

E.12 Reuse Analysis

E.13 Test Team Communication with Other Teams

E.14 Schedule Compatibility

E.15 Customer Involvement

E.16 Defect Documentation and Reporting

E.17 Automated Test Advocates and Experts

E.18 Test Team Assignments

E.19 User Group Participation

E.20 Test Tool Improvement Suggestions

E.21 Become a Beta Testing Site

E.22 Specialty Topic Experts

Index

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset