A Testing Bookshelf

Over the last 8 months and countless video calls, eagle eyed colleagues (and viewers of news programmes) have been spying on other’s peoples carefully (or carelessly) curated bookshelves, so I thought I’d recommend some of the books I’ve found useful. Testing basics Foundations of software testing is a comprehensive guide…

Getting started with JUnit

JUnit is one of a family of unit testing frameworks collectively known as xUnit, and is the most commonly used test framework in the Java ecosystem. Similar unit testing frameworks are available for many other languages, and these unit test frameworks provide a convenient way to build unit, component, integration…

Getting started with API’s (part 1)

Application programming interfaces (API’s) are the technical standards different software components use to interact with each other. This spans different libraries communicating with each other within the same piece of software (for example a language API specification), to remote API’s where the communication is over a network in a different…

GWT syntax and BDD

Given Something needs testingWhen Someone suggests using BDD/Cucumber/SpecFlowThen Some other people get really vocal – why? The test community seems to have a love hate relationship with BDD, but what actually is it, and how can it be used effectively? In software engineering, behaviour-driven development (BDD) is an Agile software…

All Pairs Testing

All pairs testing is a combinatorial technique to achieve adequate test coverage where testing all possible combinations would be resource intensive and the risk of less than complete testing is acceptable. The fundamental concept is that you test pairs of variables, rather than all possible combinations to achieve good statistical…

Decision Tables & State Transitions

Continuing on from the previous post, some additional specification based test techniques. Decision tables testing Decision table testing can be applied to test the behaviour of logical conditions found within the specification. The decision table lists all possible inputs and all the corresponding outputs. Each column in the table corresponds…