1st Edition

Essential Software Testing A Use-Case Approach

By Greg Fournier Copyright 2008
    280 Pages 9 B/W Illustrations
    by Auerbach Publications

    280 Pages
    by Auerbach Publications

    A Practical Guide to Software Testing

    Much has been written about the difficulty of software testing. Often these laments are accompanied by cautionary words about how careful one has to be to ensure testing is done properly. However, there is a dearth of resources that give practical guidance on the nuts and bolts of testing. Essential Software Testing: A Use-Case Approach describes testing methods and techniques in a common sense manner that is easy to understand, helping readers to quickly and effectively implement project-specific testing solutions.

    Divided into three parts, the book first discusses ways to make testing agile, providing insight into how testing can be done efficiently in different process environments. Next, the book supplies an overview of testing concepts. Lastly, it demonstrates how to perform the actual test, detailing specific testing activities that can be used on almost any project, with specific attention given to use-case driven testing. It describes how to test using Use Cases regardless of the specific requirements of the project.

    The author weaves helpful war stories throughout the text, placing the concepts in a concrete framework. This guide gives software testers a firm grasp of all testing fundamentals: how to determine what to test and how to test it, how to select proper tests to match the plan, techniques to build and trace tests, and finally, how to conduct and record tests.

    Preface
    Why this book is important
    Who this book is for
    How to use this book
    Acknowledgments
    Testing Essentially
    On Being A Tester
    Testing Perceptions and Realities
    Perceptions
    Reality
    Another testing approach to deal with reality
    Testing In an Agile Way.... But Not Agile Testing
    Being Agile and Proactive
    Dealing With Governance
    Basic Concepts Boot Camp
    The Real Basics
    Black Box Testing
    White Box Testing
    Unit Testing
    Functional Requirements
    Non-Functional Requirements
    Stakeholder Needs
    Features
    Testing Concepts
    Traceability
    Coverage
    Varieties of Essential Requirements
    Traditional Requirements
    Use Cases
    User Stories
    Safety Critical Requirements
    High Level Requirements
    Low Level Requirements
    Derived Requirements
    Organizing Your Testing
    Test Plans
    Test Cases
    Test Procedures
    Test Scripts
    Examples From My Experience We’ll Work With
    Experience 1: Rinkratz
    The Testing Perspective
    Experience 2: The Conveyor System Project
    The Testing Perspective
    Experience 3: Aircraft Engine Monitoring System
    The Testing Perspective
    What is Essential Testing?
    Testing The Right Things
    Testing To The Right Level of Detail
    Testing At The Right Time
    Bad Tester
    Essential and Efficient Testing
    The Idea of Agility
    Agile Methodologies
    Applying Agile Methodologies to Testing
    Agile Testing
    How Agile Folks See Agile Testing
    Essential Testing and Agile Testing
    Apply Agility to Any Development Methodology
    How Essential Testing Addresses Agility
    Being Essentially Agile
    The Agility Basics
    Understand What Needs To Be Done
    Know Your Environment
    Communicate A Lot
    Expect Change
    Be A Minimalist
    Be Ready To Explain Yourself
    Don’t Sleepwalk
    Encourage Feedback
    Courage
    Respect
    Conclusion
    Build Testing Agility Into Any Project
    Agile Iterative
    Applying Essential Testing to Agile Iterative
    Heavy Iterative
    Applying Essential Testing to Heavy Iterative
    Heavy Waterfall
    Applying Essential Testing to Heavy Waterfall
    Safety Regulated Systems (for example FAA D0178b)
    What Regulated Systems Are
    Certifying Regulated Systems
    Applying Essential Testing to Regulated Systems
    Conclusion
    Fundamentals For Testing Success
    Requirements – Fundamentals For Testing
    Success
    Good Requirements
    What Makes Up Good Requirements
    Not So Good Requirements
    What To Do When Requirements Aren’t So Good
    Be Proactive: Anticipate Requirements
    Use Cases For Testers
    Working With Use Cases
    Use Case Diagrams
    Use Case Specifications
    Why Use Use Cases
    Use Cases In Essential Testing
    Perceived Problems Testing Against Use Cases
    Make ‘Em If You Aint Got ‘Em
    Building A Test Process That Fits
    Test Process: Scoping
    Stakeholder Needs and Perceptions
    Big vs. Small
    Test Process: Inputs and Outputs
    Requirements as Test Inputs
    Design Artifacts as Test Inputs
    Outputs
    Shaping The Test Process
    Understand Project Needs
    Plan For The Minimum Artifact Set To Get By With
    Team Dynamics
    Delivery
    Things To Worry About
    The Successful Testing Process
    Essential Test Planning
    Test Planning Realities
    Test Planning Tasks
    Planning Starts With Understanding
    Understand What It Will Take To Prove The System
    Understand What Input Artifacts Are Available
    Understand What Can Be Done With Artifacts
    After Understanding, Analyze
    Bag of Tricks
    Patterns
    Creating A Testing Solution
    Bring The Pieces Together
    Grouping Requirements With Use Cases
    You Need Use Cases to Be Use Case Driven
    The Problems With Testing Individual Requirements, and Why Use
    Cases Are The Solution
    Example of Grouping Traditional Requirements With Use
    Cases
    The Business Context
    Initial System View
    Understanding The Requirements
    Essential Testing Analysis
    Supplied Software Requirements: A Sample
    Requirements Sample Considered
    Getting To Use Cases
    A Use Case Example
    Extending Use Cases For Testing
    Some Definitions
    Condition
    Operational Variable
    System State
    Nominal Tests
    Off Nominal Tests
    The Extended Use Case Test Design Pattern
    Binder’s Premises
    The Extended Use Case Solution
    Adapting the pattern
    The Essential Test Identification Approach
    Identifying Operational Variables
    Discovering Operational Variables Example Based on Open a Lane
    Use Case For The Conveyor System
    Identifying Tests
    Overview
    Organizing A Variant Table
    Filling In A Variant Table
    Conclusion
    Essential Test Cases
    Grouping Tests into Test Cases
    An Example using the process
    Selecting Tests
    Determine What Tests MUST Be Run
    Eliminate Unnecessary Tests
    Drop Insignificant Tests
    Defining Essential Test Cases
    Filling In Test Cases I: The Test Definition Section
    Test Case Example 1
    Comments On This Example
    Adding Test Design To Your Test Case
    Test Environment
    An Example of Test Environment
    Test Participants
    Procedures: How A Test Will Be Performed
    Activity Diagrams For Testers
    Describing the Test With An Activity Diagram
    An Example Of An Activity Diagram For a Test Case
    Creating Tests
    Harvesting Tests
    Creating Test Procedures
    Use Activity Diagrams to Create Test Procedures
    Test Procedure Components
    The First Pass
    The Final Pass
    A Test Procedure Example for the Open Lane Basic Flow Positive Test
    Test Case
    Conclusion
    Executing Tests
    Execution Problems and Their Solution
    DOA Deliveries
    Changing Stakeholder Perception
    Timing of Tests
    Special Considerations at Test Execution Time
    Executing Regression Tests
    Executing Manual and Automatic Tests
    Recording and Reporting Test Results
    Test Recording
    Test Reporting
    Knowing When to Stop Testing
    Essential Traceability
    Traceability
    Tracing Artifacts
    Coverage
    Requirements Coverage
    Design Coverage
    Code Coverage
    Showing Coverage via Traces
    Other Things To Trace
    Traceability In Practice
    A Requirements Perspective
    The Impact of Change
    Problems With Traceability - And Some Suggested
    Solutions
    What Really Needs To Be Traced?
    Who Will Do The Tracing And When
    Whether/What Tools To Use In Managing Traceability
    Conclusion
    It All Comes Together Like This
    Situation
    First steps
    Test Planning
    Lay out the test process
    Requirements help and Use Cases creation
    Identify tests by Use Case
    Low Level Requirements delivered
    Requirements Baselined for 2nd time
    Design tests
    Develop tests
    Execute Tests
    Coverage analysis
    Code Inspections
    Create white box tests
    Refactoring Tests
    Final build delivered
    Final coverage analysis
    Traceability
    Follow Up
    Synopsis
    Conclusion
    Appendix A
    Additional Information for Top Notch Conveyor System
    Technical explanation of a typical conveyor system
    Appendix B Examples
    Variant Table example for Open a Lane Basic Flow
    Example of Multiple Variant Tables for a Single Use Case
    Flow
    Example of a Test Procedure For a Manual GUI Test
    Test Environment Set Up
    Appendix C Templates
    A Test Case Template
    A Test Procedure Template
    Index

    Biography

    Greg Fournier