Cucumber is usually considered a customer acceptance test automation tool. However, it can also be used as more of a unit testing tool in place of JUnit or other language-based tools. This can make those tests better and more understandable, with the probably of better maintainable code underneath. Continue reading Using Cucumber for Unit Tests
Monthly Archives: July 2016
Generifying Acceptance Tests
There is often a question as to whether a test such as a business rule should be made more generic. In this article, we’ll examine ways of making tests more generic.
Continue reading Generifying Acceptance Tests
So Much for Test Doubles, What About Testing the Real Thing?
You can write test double for all the external entities of an application, such as an email server, a credit card processor, or an enterprise database. But you still have to check that you’ve made the right connection to all of these. How do you do that? Continue reading So Much for Test Doubles, What About Testing the Real Thing?
Acceptance Tests and the Testing Pyramid
There is a common testing pyramid that many organizations use regarding end-to-end, integration, and unit tests. Analogous to this pyramid, acceptance tests that are developed by the triad (customer unit, developer unit, and tester unit) can be applied at various levels. This blog entry relooks at the context diagram shown in this article, but from the standpoint of testing. Continue reading Acceptance Tests and the Testing Pyramid
Using Context and Flow Diagrams For a Big Picture
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