Reading: Charting the Course by Rob Sabourin — Chapter 4: "Capability Based Testing Ideas"

In my previous post on Chapter 3 of Charting the Course, we began exploring the different sources of test ideas. One of the most important sources is Capability-Based Testing Ideas.

Link: https://link.amazon/B05EWDvB0


What is Capability-Based Testing?

Capability-Based Testing focuses on what the system is supposed to do for the user.

Instead of testing individual components in isolation, we test whether a complete user goal can be achieved successfully.

For example, rather than testing:

  • Login Page
  • Product Search Page
  • Cart Page
  • Payment Page

as separate pieces, we focus on the overall capability:

"A customer can successfully purchase a product."

Ex:  Capability - Customer Purchases a Product

To verify this capability, we can generate several test ideas:

  • Confirm the application can create new users.
  • Confirm the application allows users to log in.
  • Confirm the application allows users to search for products.
  • Confirm the application allows users to add items to the cart.
  • Confirm the application allows users to proceed to checkout and make payment.
  • Confirm the application displays order confirmation after successful purchase.

If all these steps work together seamlessly, then the capability is working.

In simple terms:

Capability = What the user wants to achieve


Where Do Capability-Based Test Ideas Come From?

Testers can discover capability-based test ideas from many sources.

  • Product Requirements Documents (PRDs)
  • User Manuals
  • Code
  • Database Schemas
  • Design Documents
  • Helpdesk Tickets
  • Conversations with Stakeholders
  • Exploring Competitive Products

How to Identify Capability-Based Test Ideas

When analysing a capability, it helps to break it down into three parts.

A. Testable Objects - These are chunks of functionality that can be tested.

Examples:

  • Forms
  • Pages
  • Features
  • Services
  • Reports

For the purchasing example:

  • Registration Form
  • Login Page
  • Product Search
  • Cart
  • Checkout Process

B. Actions - Actions are things the software does to the testable objects.

Examples:

  • Create
  • Update
  • Search
  • Delete
  • Submit
  • Approve
  • Cancel

For example:

  • Create a user
  • Search for a product
  • Add an item to the cart
  • Submit a payment
  • Approve the payment
  • Decline the payment

C. Variables - Variables are things that can change.

The behavior of the software may change depending on these variables.

Examples:

  • User type
  • Product category
  • Payment method
  • Location
  • Discount code
  • Browser
  • Device

For example, purchasing a product using a credit card might behave differently from purchasing using a digital wallet.

Why Use Capability-Based Testing?

  • Focuses on Business Value
  • Tests Real User Workflows
  • Finds Integration Issues
  • Works Well in Modern Development

Final Thoughts

Capability-Based Testing shifts our mindset from testing individual screens or components to testing user success.

Popular Posts

JMeter Producing Error: Windows RegCreateKeyEx(...) returned error code 5

Understanding about Contract Testing