It’s helpful to understand the big picture of an application before getting down into the details. The context diagram and the workflow diagram are two ways to show it. This big picture helps in creating acceptance tests for the system that have minimal redundancy and ease of maintenance. In order to demonstrate the two diagrams, I’ll use an example of an on-line ticket ordering system. Continue reading Using Context and Flow Diagrams For a Big Picture
Testing Contracts for Services
There is a growing use of services and micro-services to develop applications. I’ve had numerous questions about how to test the services and who should be responsible for what testing. I wrote a book called Interface-Oriented Design which covered many of these issues. Here’s a summary and example adapted from that book. Continue reading Testing Contracts for Services
Another Way to Look at the Bowling Acceptance Tests
A common exercise in acceptance test driven development is write acceptance for the problem of scoring a bowling game. You may have seen other examples of acceptance tests. Here’s a different version based on some of the guidelines listed in my book. These examples are shown as Word-style tables. They can be converted into tables compatible with the syntax of your acceptance test framework. Continue reading Another Way to Look at the Bowling Acceptance Tests
ATDD Solves Development Issues
I’ve been teaching Acceptance Test-Driven Development (ATDD) for many years. At the start of every course, I ask the attendees for issues they have with their development processes. After they have experienced the ATDD process, including creation of acceptance tests, I review their issues to see whether they feel that ATDD will help, hurt, or be neutral in respect to those issues. Continue reading ATDD Solves Development Issues
Automating Tests for Batch Applications
I’ve had numerous questions on how to automate testing batch programs. In some places these are also termed host programs, since the batch runs on a mainframe host. Let’s take a look at an example on how to do this.
Programmable Mocks
You have some service or database call. You need that call to be repeatable. Sometimes a record and playback is sufficient. You make the call, record what it returns, and play that back every subsequent time. Continue reading Programmable Mocks
Using Tables in Cucumber
Summary
Tables are a desirable way to specify values in a Cucumber Given/When/Then step. Here’s an example of a table:
Given Customer is: | Id | Name | Street | Zip Code | | 123 | John | 1 Apple Lane | 27701 |
Twitter Post
Acceptance tests start with communication, not automation.
— Ken Pugh (@kpugh) January 9, 2015
Acceptance Test-Driven Development and Test-Driven Development – How They Are the Same and How They Are Different
There is often some confusion between Acceptance Test-Driven Development (ATDD) and Test-Driven Development (TDD). Here’s a short description of their similarities, their differences, and their relationship. Continue reading Acceptance Test-Driven Development and Test-Driven Development – How They Are the Same and How They Are Different