Contents

Acknowledgments

Introduction

About the Author

SECTION 1     SOFTWARE QUALITY IN PERSPECTIVE

1        A Brief History of Software Testing

Historical Software Testing and Development Parallels

Extreme Programming

Evolution of Automated Testing Tools

Static Capture/Replay Tools (without Scripting Language)

Static Capture/Replay Tools (with Scripting Language)

Variable Capture/Replay Tools

2        Quality Assurance Framework

What Is Quality?

Prevention versus Detection

Verification versus Validation

Software Quality Assurance

Components of Quality Assurance

Software Testing

Quality Control

Software Configuration Management

Elements of Software Configuration Management

Software Quality Assurance Plan

Steps to Develop and Implement a Software Quality Assurance Plan

Step 1: Document the Plan

Step 2: Obtain Management Acceptance

Step 3: Obtain Development Acceptance

Step 4: Plan for Implementation of the SQA Plan

Step 5: Execute the SQA Plan

Quality Standards

Sarbanes–Oxley

ISO9000

Capability Maturity Model (CMM)

Level 1: Initial

Level 2: Repeatable

Level 3: Defined

Level 4: Managed

Level 5: Optimized

People CMM

CMMI

Malcolm Baldrige National Quality Award

Notes

3        Overview of Testing Techniques

Black-Box Testing (Functional)

White-Box Testing (Structural)

Gray-Box Testing (Functional and Structural)

Manual versus Automated Testing

Static versus Dynamic Testing

Taxonomy of Software Testing Techniques

4        Transforming Requirements to Testable Test Cases

Introduction

Software Requirements as the Basis of Testing

Requirement Quality Factors

Understandable

Necessary

Modifiable

Nonredundant

Terse

Testable

Traceable

Within Scope

Numerical Method for Evaluating Requirement Quality

Process for Creating Test Cases from Good Requirements

Step 1: Review the Requirements

Step 2: Write a Test Plan

Step 3: Identify the Test Suite

Step 4: Name the Test Cases

Step 5: Write Test Case Descriptions and Objectives

Step 6: Create the Test Cases

Step 7: Review the Test Cases

Transforming Use Cases to Test Cases

Step 1: Draw a Use Case Diagram

Step 2: Write the Detailed Use Case Text

Step 3: Identify Use Case Scenarios

Step 4: Generating the Test Cases

Step 5: Generating Test Data

Summary

What to Do When Requirements Are Nonexistent or Poor?

Ad Hoc Testing

The Art of Ad Hoc Testing

Advantages and Disadvantages of Ad Hoc Testing

Exploratory Testing

The Art of Exploratory Testing

Exploratory Testing Process

Advantages and Disadvantages of Exploratory Testing

5        Quality through Continuous Improvement Process

Contribution of Edward Deming

Role of Statistical Methods

Cause-and-Effect Diagram

Flowchart

Pareto Chart

Run Chart

Histogram

Scatter Diagram

Control Chart

Deming’s 14 Quality Principles

Point 1: Create Constancy of Purpose

Point 2: Adopt the New Philosophy

Point 3: Cease Dependence on Mass Inspection

Point 4: End the Practice of Awarding Business on Price Tag Alone

Point 5: Improve Constantly and Ceaselessly the System of Production and Service

Point 6: Institute Training and Retraining

Point 7: Institute Leadership

Point 8: Drive Out Fear

Point 9: Break Down Barriers between Staff Areas

Point 10: Eliminate Slogans, Exhortations, and Targets for the Workforce

Point 11: Eliminate Numerical Goals

Point 12: Remove Barriers to Pride of Workmanship

Point 13: Institute a Vigorous Program of Education and Retraining

Point 14: Take Action to Accomplish the Transformation

Continuous Improvement through the Plan, Do, Check, Act Process

Going around the PDCA Circle

SECTION 2    WATERFALL TESTING REVIEW

6        Overview

Waterfall Development Methodology

Continuous Improvement “Phased” Approach

Psychology of Life-Cycle Testing

Software Testing as a Continuous Improvement Process

The Testing Bible: Software Test Plan

Major Steps in Developing a Test Plan

Step 1: Define the Test Objectives

Step 2: Develop the Test Approach

Step 3: Define the Test Environment

Step 4: Develop the Test Specifications

Step 5: Schedule the Test

Step 6: Review and Approve the Test Plan

Components of a Test Plan

Technical Reviews as a Continuous Improvement Process

Motivation for Technical Reviews

Types of Reviews

Structured Walkthroughs

Inspections

Participant Roles

Steps for an Effective Review

Step 1: Plan for the Review Process

Step 2: Schedule the Review

Step 3: Develop the Review Agenda

Step 4: Create a Review Report

7        Static Testing the Requirements

Testing the Requirements with Ambiguity Reviews

Testing the Requirements with Technical Reviews

Inspections and Walkthroughs

Checklists

Methodology Checklist

Requirements Traceability Matrix

Building the System/Acceptance Test Plan

8        Static Testing the Logical Design

Data Model, Process Model, and the Linkage

Testing the Logical Design with Technical Reviews

Refining the System/Acceptance Test Plan

9        Static Testing the Physical Design

Testing the Physical Design with Technical Reviews

Creating Integration Test Cases

Methodology for Integration Testing

Step 1: Identify Unit Interfaces

Step 2: Reconcile Interfaces for Completeness

Step 3: Create Integration Test Conditions

Step 4: Evaluate the Completeness of Integration Test Conditions

10      Static Testing the Program Unit Design

Testing the Program Unit Design with Technical Reviews

Sequence

Selection

Iteration

Creating Unit Test Cases

11      Static Testing and Dynamic Testing the Code

Testing Coding with Technical Reviews

Executing the Test Plan

Unit Testing

Integration Testing

System Testing

Acceptance Testing

Defect Recording

SECTION 3    SPIRAL (AGILE) SOFTWARE TESTING METHODOLOGY: PLAN, DO, CHECK, ACT

12      Development Methodology Overview

Limitations of Life-Cycle Development

The Client/Server Challenge

Psychology of Client/Server Spiral Testing

The New School of Thought

Tester/Developer Perceptions

Project Goal: Integrate QA and Development

Iterative/Spiral Development Methodology

Role of JADs

Role of Prototyping

Methodology for Developing Prototypes

Step 1: Develop the Prototype

Step 2: Demonstrate Prototypes to Management

Step 3: Demonstrate Prototype to Users

Step 4: Revise and Finalize Specifications

Step 5: Develop the Production System

Continuous Improvement “Spiral” Testing Approach

13      Information Gathering (Plan)

Step 1: Prepare for the Interview

Task 1: Identify the Participants

Task 2: Define the Agenda

Step 2: Conduct the Interview

Task 1: Understand the Project

Task 2: Understand the Project Objectives

Task 3: Understand the Project Status

Task 4: Understand the Project Plans

Task 5: Understand the Project Development Methodology

Task 6: Identify the High-Level Business Requirements

Task 7: Perform Risk Analysis

Computer Risk Analysis

Method 1: Judgment and Instinct

Method 2: Dollar Estimation

Method 3: Identifying and Weighting Risk Attributes

Step 3: Summarize the Findings

Task 1: Summarize the Interview

Task 2: Confirm the Interview Findings

14      Test Planning (Plan)

Step 1: Build a Test Plan

Task 1: Prepare an Introduction

Task 2: Define the High-Level Functional Requirements (in Scope)

Task 3: Identify Manual/Automated Test Types

Task 4: Identify the Test Exit Criteria

Task 5: Establish Regression Test Strategy

Task 6: Define the Test Deliverables

Task 7: Organize the Test Team

Task 8: Establish a Test Environment

Task 9: Define the Dependencies

Task 10: Create a Test Schedule

Task 11: Select the Test Tools

Task 12: Establish Defect Recording/Tracking Procedures

Task 13: Establish Change Request Procedures

Task 14: Establish Version Control Procedures

Task 15: Define Configuration Build Procedures

Task 16: Define Project Issue Resolution Procedures

Task 17: Establish Reporting Procedures

Task 18: Define Approval Procedures

Step 2: Define the Metric Objectives

Task 1: Define the Metrics

Task 2: Define the Metric Points

Step 3: Review/Approve the Plan

Task 1: Schedule/Conduct the Review

Task 2: Obtain Approvals

15      Test Case Design (Do)

Step 1: Design Function Tests

Task 1: Refine the Functional Test Requirements

Task 2: Build a Function/Test Matrix

Step 2: Design GUI Tests

Ten Guidelines for Good GUI Design

Task 1: Identify the Application GUI Components

Task 2: Define the GUI Tests

Step 3: Define the System/Acceptance Tests

Task 1: Identify Potential System Tests

Task 2: Design System Fragment Tests

Task 3: Identify Potential Acceptance Tests

Step 4: Review/Approve Design

Task 1: Schedule/Prepare for Review

Task 2: Obtain Approvals

16      Test Development (Do)

Step 1: Develop Test Scripts

Task 1: Script the Manual/Automated GUI/Function Tests

Task 2: Script the Manual/Automated System Fragment Tests

Step 2: Review/Approve Test Development

Task 1: Schedule/Prepare for Review

Task 2: Obtain Approvals

17      Test Coverage through Traceability

Use Cases and Traceability

Summary

18      Test Execution/Evaluation (Do/Check)

Step 1: Setup and Testing

Task 1: Regression Test the Manual/Automated Spiral Fixes

Task 2: Execute the Manual/Automated New Spiral Tests

Task 3: Document the Spiral Test Defects

Step 2: Evaluation

Task 1: Analyze the Metrics

Step 3: Publish Interim Report

Task 1: Refine the Test Schedule

Task 2: Identify Requirement Changes

19      Prepare for the Next Spiral (Act)

Step 1: Refine the Tests

Task 1: Update the Function/GUI Tests

Task 2: Update the System Fragment Tests

Task 3: Update the Acceptance Tests

Step 2: Reassess the Team, Procedures, and Test Environment

Task 1: Evaluate the Test Team

Task 2: Review the Test Control Procedures

Task 3: Update the Test Environment

Step 3: Publish Interim Test Report

Task 1: Publish the Metric Graphics

Test Case Execution Status

Defect Gap Analysis

Defect Severity Status

Test Burnout Tracking

20      Conduct the System Test (Act)

Step 1: Complete System Test Plan

Task 1: Finalize the System Test Types

Task 2: Finalize System Test Schedule

Task 3: Organize the System Test Team

Task 4: Establish the System Test Environment

Task 5: Install the System Test Tools

Step 2: Complete System Test Cases

Task 1: Design/Script the Performance Tests

Monitoring Approach

Probe Approach

Test Drivers

Task 2: Design/Script the Security Tests

A Security Design Strategy

Task 3: Design/Script the Volume Tests

Task 4: Design/Script the Stress Tests

Task 5: Design/Script the Compatibility Tests

Task 6: Design/Script the Conversion Tests

Task 7: Design/Script the Usability Tests

Task 8: Design/Script the Documentation Tests

Task 9: Design/Script the Backup Tests

Task 10: Design/Script the Recovery Tests

Task 11: Design/Script the Installation Tests

Task 12: Design/Script Other System Test Types

Step 3: Review/Approve System Tests

Task 1: Schedule/Conduct the Review

Task 2: Obtain Approvals

Step 4: Execute the System Tests

Task 1: Regression Test the System Fixes

Task 2: Execute the New System Tests

Task 3: Document the System Defects

21      Conduct Acceptance Testing

Step 1: Complete Acceptance Test Planning

Task 1: Finalize the Acceptance Test Types

Task 2: Finalize the Acceptance Test Schedule

Task 3: Organize the Acceptance Test Team

Task 4: Establish the Acceptance Test Environment

Task 5: Install Acceptance Test Tools

Step 2: Complete Acceptance Test Cases

Task 1: Identify the System-Level Test Cases

Task 2: Design/Script Additional Acceptance Tests

Step 3: Review/Approve Acceptance Test Plan

Task 1: Schedule/Conduct the Review

Task 2: Obtain Approvals

Step 4: Execute the Acceptance Tests

Task 1: Regression Test the Acceptance Fixes

Task 2: Execute the New Acceptance Tests

Task 3: Document the Acceptance Defects

22      Summarize/Report Test Results

Step 1: Perform Data Reduction

Task 1: Ensure All Tests Were Executed/Resolved

Task 2: Consolidate Test Defects by Test Number

Task 3: Post Remaining Defects to a Matrix

Step 2: Prepare Final Test Report

Task 1: Prepare the Project Overview

Task 2: Summarize the Test Activities

Task 3: Analyze/Create Metric Graphics

Defects by Function

Defects by Tester

Defect Gap Analysis

Defect Severity Status

Test Burnout Tracking

Root Cause Analysis

Defects by How Found

Defects by Who Found

Functions Tested and Not Tested

System Testing Defect Types

Acceptance Testing Defect Types

Task 4: Develop Findings/Recommendations

Step 3: Review/Approve the Final Test Report

Task 1: Schedule/Conduct the Review

Task 2: Obtain Approvals

Task 3: Publish the Final Test Report

SECTION 4    PROJECT MANAGEMENT METHODOLOGY

23      The Project Management Framework

The Project Framework

Product Quality and Project Quality

Components of the Project Framework

The Project Framework and Continuous Quality Improvement

The Project Framework Phases

Initiation Phase

Planning Phase

Executing, Monitoring, and Controlling Phases

Implement Phase

Scoping the Project to Ensure Product Quality

Product Scope and Project Scope

The Project Charter

The Scope Statement

The Role of the Project Manager in Quality Management

The Role of the Test Manager in Quality Management

Analyze the Requirements

Perform a Gap Analysis

Avoid Duplication and Repetition

Define the Test Data

Validate the Test Environment

Analyze the Test Results

Deliver the Quality

Advice for the Test Manager

Request Help from Others

Communicate Issues as They Arise

Always Update Your Business Knowledge

Learn the New Testing Technologies and Tools

Improve the Process

Create a Knowledge Base

The Benefits of the Quality Project Management and the Project Framework

24      Project Quality Management

Project Quality Management Processes

Quality Planning

Identifying the High-Level Project Activities

Estimating the Test Work Effort

Test Planning

Effort Estimation: Model Project

Quality Standards

25      The Defect Management Process

Quality Control and Defect Management

Defect Discovery and Classification

Defect Priority

Defect Category

Defect Tracking

Defect Reporting

Defect Summary

Defect Meetings

Defect Metrics

Quality Standards

26      Integrated Testing and Development

Quality Control and Integrated Testing

Integrated Testing

Step 1: Organize the Test Team

Step 2: Identify the Tasks to Integrate

Step 3: Customize Test Steps and Tasks

Step 4: Select Integration Points

Step 5: Modify the Development Methodology

Step 6: Test Methodology Training

Step 7: Incorporate Defect Recording

The Integrated Team

27      Test Management Constraints

Organizational Architecture

Traits of a Well-Established Quality Organization

Division of Responsibilities

Organizational Relationships

Using the Project Framework Where No Quality Infrastructure Exists

Ad Hoc Testing and the Project Framework

Using a Traceability/Validation Matrix

Reporting the Progress

SECTION 5    EMERGING SPECIALIZED AREAS IN TESTING

28      Test Process and Automation Assessment

Test Process Assessment

Process Evaluation Methodology

Step 1: Identify the Key Elements

Step 2: Gather and Analyze the Information

Step 3: Analyze Test Maturity

The Requirements Definition Maturity

Test Strategy Maturity

Test Effort Estimation Maturity

Test Design and Execution Maturity

Regression Testing Maturity

Test Automation Maturity

Step 4: Document and Present Findings

Test Automation Assessment

Identify the Applications to Automate

Identify the Best Test Automation Tool

Test Scripting Approach

Test Execution Approach

Test Script Maintenance

Test Automation Framework

Basic Features of an Automation Framework

Define the Folder Structure

Modularize Scripts/Test Data to Increase Robustness

Reuse Generic Functions and Application-Specific Function Libraries

Develop Scripting Guidelines and Review Checklists

Define Error Handling and Recovery Functions

Define the Maintenance Process

Standard Automation Frameworks

Data-Driven Framework

Modular Framework

Keyword-Driven Framework

Hybrid Framework

29      Nonfunctional Testing

Performance Testing

Load Testing

Stress Testing

Volume Testing

Performance Monitoring

Performance Testing Approach

Knowledge Acquisition Process

Test Development

Performance Deliverables

Security Testing

Step 1: Identifying the Scope of Security Testing

Step 2: Test Case Generation and Execution

Types of Security Testing

Network Scanning

Purpose

Tools

Approach

Vulnerability Scanning

Purpose

Tools

Approach

Password Cracking

Tools

Log Reviews

Approach

File Integrity Checkers

Purpose

Tools

Virus Detectors

Tools

Approach

Penetration Testing

Purpose

Approach

Usability Testing

Goals of Usability Testing

Approach and Execution

Guidelines for Usability Testing

Accessibility Testing and Section 508

Compliance Testing

30      SOA Testing

Key Steps of SOA Testing

31      Agile Testing

Agile User Stories Contrasted to Formal Requirements

What Is a User Story?

Agile Planning

Types of Agile Testing

Compliance Testing

32      Testing Center of Excellence

Industry Best Processes

Testing Metrics

Operating Model

Test Automation Framework

Continuous Competency Development

33      On-Site/Offshore Model

Step 1: Analysis

Step 2: Determine the Economic Trade-Offs

Step 3: Determine the Selection Criteria

Project Management and Monitoring

Outsourcing Methodology

On-Site Activities

Offshore Activities

Implementing the On-Site/Offshore Model

Knowledge Transfer

Detailed Design

Milestone-Based Transfer

Steady State

Application Management

Prerequisites

Relationship Model

Standards

Benefits of On-Site/Offshore Methodology

On-Site/Offshore Model Challenges

Out of Sight

Establish Transparency

Security Considerations

Project Monitoring

Management Overhead

Cultural Differences

Software Licensing

Future of the Onshore/Offshore Model

SECTION 6    MODERN SOFTWARE TESTING TOOLS

34      Software Testing Trends

Automated Capture/Replay Testing Tools

Test Case Builder Tools

Necessary and Sufficient Conditions

Test Data Generation Strategies

Sampling from Production

Starting from Scratch

Seeding the Data

Generating Data Based on the Database

A Cutting-Edge Test Case Generator Based on Requirements

35      Taxonomy of Software Testing Tools

Testing Tool Selection Checklist

Commercial Vendor Tool Descriptions

Open-Source Freeware Vendor Tools

When You Should Consider Test Automation

When You Should NOT Consider Test Automation

36      Methodology to Evaluate Automated Testing Tools

Step 1: Define Your Test Requirements

Step 2: Set Tool Objectives

Step 3a: Conduct Selection Activities for Informal Procurement

Task 1: Develop the Acquisition Plan

Task 2: Define Selection Criteria

Task 3: Identify Candidate Tools

Task 4: Conduct the Candidate Review

Task 5: Score the Candidates

Task 6: Select the Tool

Step 3b: Conduct Selection Activities for Formal Procurement

Task 1: Develop the Acquisition Plan

Task 2: Create the Technical Requirements Document

Task 3: Review Requirements

Task 4: Generate the Request for Proposal

Task 5: Solicit Proposals

Task 6: Perform the Technical Evaluation

Task 7: Select a Tool Source

Step 4: Procure the Testing Tool

Step 5: Create the Evaluation Plan

Step 6: Create the Tool Manager’s Plan

Step 7: Create the Training Plan

Step 8: Receive the Tool

Step 9: Perform the Acceptance Test

Step 10: Conduct Orientation

Step 11: Implement Modifications

Step 12: Train Tool Users

Step 13: Use the Tool in the Operating Environment

Step 14: Write the Evaluation Report

Step 15: Determine Whether Goals Have Been Met

SECTION 7    APPENDICES

Appendix A: Spiral (Agile) Testing Methodology

Appendix B: Software Quality Assurance Plan

Appendix C: Requirements Specification

Appendix D: Change Request Form

Appendix E: Test Templates

Appendix F: Checklists

Appendix G: Software Testing Techniques

Bibliography

Glossary

Index

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

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