Explore It!

Book description

Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts.

Software is full of surprises. No matter how careful or skilled you are, when you create software it can behave differently than you intended. Exploratory testing mitigates those risks.

Part 1 introduces the core, essential skills of a master explorer. You'll learn to craft charters to guide your exploration, to observe what's really happening (hint: it's harder than it sounds), to identify interesting variations, and to determine what expected behavior should be when exercising software in unexpected ways.

Part 2 builds on that foundation. You'll learn how to explore by varying interactions, sequences, data, timing, and configurations. Along the way you'll see how to incorporate analysis techniques like state modeling, data modeling, and defining context diagrams into your explorer's arsenal.

Part 3 brings the techniques back into the context of a software project. You'll apply the skills and techniques in a variety of contexts and integrate exploration into the development cycle from the very beginning.

You can apply the techniques in this book to any kind of software. Whether you work on embedded systems, Web applications, desktop applications, APIs, or something else, you'll find this book contains a wealth of concrete and practical advice about exploring your software to discover its capabilities, limitations, and risks.

Table of contents

  1. Explore It!
  2. For the Best Reading Experience...
  3. Table of Contents
  4. Early Praise for Explore It!
  5. Foreword
  6. Acknowledgments
  7. Preface
    1. Who Is This Book For?
    2. How This Book Is Organized
    3. Online Resources
  8. Part 1: Establishing Foundations
  9. Chapter 1: On Testing and Exploration
    1. Two Sides of Testing
    2. Essential Elements of Exploratory Testing
    3. Working in Time-Boxed Sessions
    4. Practice Sessions
  10. Chapter 2: Charter Your Explorations
    1. Chartering the Expedition
    2. A Simple Charter Template
    3. Good Charters
    4. Generating Charters
    5. The Nightmare Headline Game
    6. Planning Charters
    7. Practice Sessions
  11. Chapter 3: Observe the Details
    1. But Did You See the Moonwalking Bear?
    2. Digging Deeper
    3. Testability and Making the Invisible Visible
    4. Consoles and Logs
    5. Practice Sessions
  12. Chapter 4: Find Interesting Variations
    1. Variables Are Things That Vary
    2. Subtle Variables, Big Disasters
    3. Identifying Variables
    4. Variables! They’re Everywhere!
    5. Practice Sessions
  13. Chapter 5: Evaluate Results
    1. Never and Always
    2. Alternative Resources
    3. Approximations
    4. Practice Sessions
  14. Part 2: Adding Dimensions
  15. Chapter 6: Vary Sequences and Interactions
    1. Nouns and Verbs
    2. Random Navigation
    3. Personas
    4. Practice Sessions
  16. Chapter 7: Explore Entities and Their Relationships
    1. Recognizing Entities, Attributes, and Dependencies
    2. CRUD: Create, Read, Update, Delete
    3. Following the Data
    4. Practice Sessions
  17. Chapter 8: Discover States and Transitions
    1. Recognizing States and Events
    2. Diagramming a State Model
    3. Exploring with State Models
    4. Changing the Representation: State Tables
    5. Practice Sessions
  18. Chapter 9: Explore the Ecosystem
    1. Diagramming the Ecosystem
    2. Trust Boundaries
    3. What If?
    4. Follow the Data
    5. Practice Sessions
  19. Part 3: Putting It in Context
  20. Chapter 10: Explore When There Is No User Interface
    1. Exploring an API
    2. Exploring a Programming Language
    3. Exploring a Web Service
    4. Characterizing Bugs
    5. Practice Sessions
  21. Chapter 11: Explore an Existing System
    1. Starting with a Recon Session
    2. Sharing Observations
    3. Interviewing Stakeholders to Gather Questions
    4. Selecting Techniques
    5. Recording Your Findings
    6. What About the Dreaded Unreproducible Bugs?
    7. Practice Sessions
  22. Chapter 12: Explore Requirements
    1. Getting Into the Requirements Meeting
    2. In the Requirements Meeting
    3. Charter During Requirements Discussions
    4. Active Reading
    5. Practice Sessions
  23. Chapter 13: Integrate Exploration Throughout
    1. Exploring as Part of Your Test Strategy
    2. Paired Exploration
    3. Discovering Systemic Sources of Problems
    4. Estimating Exploration
    5. How to Tell When You Have Explored Enough
    6. Debriefing Stakeholders
    7. Capturing Useful Nuggets of Wisdom
    8. Practice Sessions
  24. Appendix 1: Interviewing for Exploratory Testing Skills
    1. Paired Exploratory Testing as Part of an Interview
    2. Assessing the Candidates
  25. Appendix 2: Test Heuristics Cheat Sheet
    1. General Heuristics
    2. Web Heuristics
  26. Bibliography
    1. You May Be Interested In…

Product information

  • Title: Explore It!
  • Author(s): Elisabeth Hendrickson
  • Release date: February 2013
  • Publisher(s): Pragmatic Bookshelf
  • ISBN: 9781680503500