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.
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.
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
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
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.
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
How to Identify Capability-Based Test Ideas
When analysing a capability, it helps to break it down into three parts.
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.
- 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
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.
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
- 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.
Capability-Based Testing shifts our mindset from testing individual screens or components to testing user success.