You are previewing Software Testing Foundations, 4th Edition.
O'Reilly logo
Software Testing Foundations, 4th Edition

Book Description

Professional testing of software is an essential task that requires a profound knowledge of testing techniques.

The International Software Testing Qualifications Board (ISTQB) has developed a universally accepted, international qualification scheme aimed at software and system testing professionals, and has created the Syllabi and Tests for the "Certified Tester."

Written by authors who are among the creators of the Certified Tester Syllabus and who are still active in the ISTQB, this book is designed for self-study and provides the information necessary to pass the Certified Tester-Foundations Level exam, version 2011, as defined by the ISTQB. Technical terms have been precisely stated according to the recently revised and updated ISTQB glossary.

Topics covered:

  1. Fundamentals of Testing
  2. Testing and the Software Lifecycle
  3. Static and Dynamic Testing Techniques
  4. Test Management
  5. Test Tools
Also mentioned are some updates to the syllabus that are due in 2015.

Table of Contents

  1. Cover Page
  2. About the Authors
  3. Title Page
  4. Copyright Page
  5. Preface
  6. Contents
  7. 1 Introduction
  8. 2 Fundamentals of Testing
    1. 2.1 Terms and Motivation
      1. 2.1.1 Error, Defect, and Bug Terminology
      2. 2.1.2 Testing Terms
      3. 2.1.3 Software Quality
      4. 2.1.4 Test Effort
    2. 2.2 The Fundamental Test Process
      1. 2.2.1 Test Planning and Control
      2. 2.2.2 Test Analysis and Design
      3. 2.2.3 Test Implementation and Execution
      4. 2.2.4 Test Evaluation and Reporting
      5. 2.2.5 Test Closure Activities
    3. 2.3 The Psychology of Testing
    4. 2.4 General Principles of Testing
    5. 2.5 Ethical Guidelines
    6. 2.6 Summary
  9. 3 Testing in the Software Life Cycle
    1. 3.1 The General V-Model
    2. 3.2 Component Test
      1. 3.2.1 Explanation of Terms
      2. 3.2.2 Test objects
      3. 3.2.3 Test Environment
      4. 3.2.4 Test objectives
      5. 3.2.5 Test Strategy
    3. 3.3 Integration Test
      1. 3.3.1 Explanation of Terms
      2. 3.3.2 Test objects
      3. 3.3.3 The Test Environment
      4. 3.3.4 Test objectives
      5. 3.3.5 Integration Strategies
    4. 3.4 System Test
      1. 3.4.1 Explanation of Terms
      2. 3.4.2 Test Objects and Test Environment
      3. 3.4.3 Test Objectives
      4. 3.4.4 Problems in System Test Practice
    5. 3.5 Acceptance Test
      1. 3.5.1 Contract Acceptance Testing
      2. 3.5.2 Testing for User Acceptance
      3. 3.5.3 Operational (Acceptance) Testing
      4. 3.5.4 Field Testing
    6. 3.6 Testing New Product Versions
      1. 3.6.1 Software Maintenance
      2. 3.6.2 Testing after Further Development
      3. 3.6.3 Testing in Incremental Development
    7. 3.7 Generic Types of Testing
      1. 3.7.1 Functional Testing
      2. 3.7.2 Nonfunctional Testing
      3. 3.7.3 Testing of Software Structure
      4. 3.7.4 Testing Related to Changes and Regression Testing
    8. 3.8 Summary
  10. 4 Static Test
    1. 4.1 Structured Group Evaluations
      1. 4.1.1 Foundations
      2. 4.1.2 Reviews
      3. 4.1.3 The General Process
        1. Planning
        2. Kick-Off
        3. Individual Preparation
        4. Review Meeting
        5. Rework
        6. Follow-Up
      4. 4.1.4 Roles and Responsibilities
        1. Possible difficulties
      5. 4.1.5 Types of Reviews
        1. Walkthrough
        2. Inspection
        3. Technical Review
        4. Informal Review
        5. Selection Criteria
        6. Notes
        7. Success Factors
    2. 4.2 Static Analysis
      1. 4.2.1 The Compiler as a Static Analysis Tool
      2. 4.2.2 Examination of Compliance to Conventions and Standards
      3. 4.2.3 Execution of Data Flow Analysis
      4. 4.2.4 Execution of Control Flow Analysis
      5. 4.2.5 Determining Metrics
    3. 4.3 Summary
  11. 5 Dynamic Analysis – Test Design Techniques
    1. 5.1 Black Box Testing Techniques
      1. 5.1.1 Equivalence Class Partitioning
        1. Test Cases
        2. Definition of Test Exit Criteria
        3. The Value of the Technique
      2. 5.1.2 Boundary Value Analysis
        1. Test Cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
      3. 5.1.3 State Transition Testing
        1. Test Cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
      4. 5.1.4 Logic-Based Techniques (Cause-Effect Graphing and Decision Table Technique, Pairwise Testing)
        1. Test Cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
        4. Pairwise Combination Testing
      5. 5.1.5 Use-Case-Based Testing
        1. Test Cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
      6. 5.1.6 General Discussion of the Black Box Technique
    2. 5.2 White Box Testing Techniques
      1. 5.2.1 Statement Testing and Coverage
        1. Test cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
      2. 5.2.2 Decision/Branch Testing and Coverage
        1. Test Cases
        2. Definition of the Test Exit Criteria
        3. The Value of the Technique
      3. 5.2.3 Test of Conditions
        1. Condition Testing and Coverage
        2. Multiple Condition Testing and Coverage
        3. Condition Determination Testing / Minimal Multiple Condition Testing
        4. Test Cases
        5. Definition of the Test Exit Criteria
        6. The Value of the Technique
      4. 5.2.4 Further White Box Techniques
      5. 5.2.5 General Discussion of the White Box Technique
      6. 5.2.6 Instrumentation and Tool Support
    3. 5.3 Intuitive and Experience-Based Test Case Determination
      1. Test Cases
      2. Definition of the Test Exit Criteria
      3. The Value of the Technique
    4. 5.4 Summary
  12. 6 Test Management
    1. 6.1 Test Organization
      1. 6.1.1 Test Teams
        1. Component Testing
        2. Integration Testing
        3. System Testing
      2. 6.1.2 Tasks and Qualifications
    2. 6.2 Planning
      1. 6.2.1 Quality Assurance Plan
      2. 6.2.2 Test Plan
      3. 6.2.3 Prioritizing Tests
      4. 6.2.4 Test Entry and Exit Criteria
    3. 6.3 Cost and Economy Aspects
      1. 6.3.1 Costs of Defects
      2. 6.3.2 Cost of Testing
      3. 6.3.3 Test Effort Estimation
    4. 6.4 Choosing the Test Strategy and Test Approach
      1. 6.4.1 Preventative vs. Reactive Approach
      2. 6.4.2 Analytical vs. Heuristic Approach
      3. 6.4.3 Testing and Risk
    5. 6.5 Managing The Test Work
      1. 6.5.1 Test Cycle Planning
      2. 6.5.2 Test Cycle Monitoring
      3. 6.5.3 Test Cycle Control
    6. 6.6 Incident Management
      1. 6.6.1 Test Log
      2. 6.6.2 Incident Reporting
      3. 6.6.3 Defect Classification
      4. 6.6.4 Incident Status
    7. 6.7 Requirements to Configuration Management
    8. 6.8 Relevant Standards
    9. 6.9 Summary
  13. 7 Test Tools
    1. 7.1 Types of Test Tools
      1. 7.1.1 Tools for Management and Control of Testing and Tests
      2. 7.1.2 Tools for Test Specification
      3. 7.1.3 Tools for Static Testing
      4. 7.1.4 Tools for Dynamic Testing
      5. 7.1.5 Tools for Nonfunctional Test
    2. 7.2 Selection and Introduction of Test Tools
      1. 7.2.1 Cost Effectiveness of Tool Introduction
      2. 7.2.2 Tool Selection
      3. 7.2.3 Tool Introduction
    3. 7.3 Summary
  14. A Test Plan According to IEEE Standard 829-1998
    1. Test Plan Identifier
    2. Introduction
    3. Test Objects or Items
    4. Features to Be Tested
    5. Features Not to Be Tested
    6. Test Approach or Strategy
    7. Acceptance Criteria (Test Item Pass/Fail Criteria)
    8. Suspension Criteria and Resumption Requirements
    9. Test Documentation and Deliverables
    10. Testing Tasks
    11. Test Infrastructure and Environmental Needs
    12. Responsibilities and Authority
    13. Staffing and Training Needs
    14. Schedule
    15. Risks and Contingencies
    16. Approval
    17. Glossary (not in IEEE829-1998, but lower case!)
    18. Test Plans According to IEEE Standard 829-2008
      1. The Master Test Plan
      2. Master Test Plan Identifier
      3. 1. Introduction
      4. 1.2 Scope
      5. 1.3 References
      6. 1.4 System Overview and Key Features
      7. 1.5 Test overview
      8. 1.5.1 Organization
      9. 1.5.2 Master Test Schedule
      10. 1.5.3 Integrity Level Scheme
      11. 1.5.4 Summary of Necessary Resources
      12. 1.5.5 Responsibilities and Authority
      13. 1.5.6 Tools, Techniques, Methods, and Metrics
      14. 2. Details of the Master Test Plan
      15. 2.1 Test Processes, Including Definition of Test Levels
      16. 2.1.1 through 2.1.6 “Life cycle” Processes, i.e., Activities and Tasks
      17. 2.2 Test Documentation Requirements
      18. 2.3 Test Administration Requirements
      19. 2.3.1 Anomaly (defect) Resolution and Reporting
      20. 2.3.2 Task Iteration Policy
      21. 2.3.3 Deviation Policy
      22. 2.3.4 Control Procedures
      23. 2.3.5 Standards, Practices, and Conventions
      24. 2.4 Test Reporting Requirements
      25. 3. General
      26. 3.1 Glossary
      27. 3.2 Document Change Procedures and History
    19. The Level Test Plan
      1. The template from the standard
    20. Guidance for section 3.4
    21. Guidance for sections 4.1 through 4.3
      1. 4.1 Quality assurance procedures
      2. 4.2 Metrics
      3. 4.3 Test coverage
  15. B Important Information about the Syllabus and the Certified Tester Exam
  16. C Exercises
    1. Exercises for chapter 2
    2. Exercises for chapter 3
    3. Exercises for chapter 4
    4. Exercises for chapter 5
    5. Exercises for chapter 6
    6. Exercises for chapter 7
  17. Glossary
  18. Literature
    1. Further Recommended Literature
    2. Standards
    3. WWW Pages
  19. Index
  20. Footnotes
    1. Preface
    2. 2 Fundamentals of Testing
    3. 3 Testing in the Software Life Cycle
    4. 4 Static Test
    5. 5 Dynamic Analysis – Test Design Techniques
    6. 6 Test Management
    7. 7 Test Tools
    8. A Test Plan According to IEEE Standard 829-1998
    9. C Exercises