JDemo - lightweight exploratory developer testing

keywords:
room: Sheraton Hall A, LC — time: Thursday 14:00-15:30
Average Rating: -

Abstract:

When test-driving a GUI component, some aspects are best checked by manual, exploratory testing. JDemo, inspired by JUnit and in extensive use and refinement since 2003, eases bringing the component onto the screen in the desired state and thereby allows the developer to concentrate on the task at hand and rapidly iterate through different versions of the component. The session will give an introduction to the framework, and by means of a live example show how it can be used to effectively integrate exploratory testing into the TDD cycle.


When test-driving a GUI component - such as a dialog, a wizard, a widget or similar - there are still some important aspects that, in my experience, are best checked by manual, exploratory testing: layout, look and feel, usability etc.

To test these aspects manually, you need to get the component under test on the screen in the desired state. In the simplest case, you just start an application the component is used in. More often, though, you need to prepare an appropriate scenario and click through some screens to get to the component, which can consume a lot of time. It is then beneficial to write small code snippets that automatically bring the component onto the screen in the desired state, so that the developer can concentrate on the task at hand and rapidly iterate through different versions of the component.

Out of the desire to ease the creation, organization and reuse of such code snippets, in 2003 one of our developers created the JDemo open source framework (http://www.jdemo.de/). Inspired by the JUnit framework, JDemo provides utility methods to more easily write those code snippets (called demos), to organize them into suites and to run selected demos. Since then, the framework has been in extensive use and refinement by our development team.

The session will give a short introduction to the framework (developers familiar with JUnit 3 should feel comfortable quite quickly), and by means of a live example show how it can be used to effectively integrate exploratory testing into the TDD cycle. A short presentation of the experienced advantages and disadvantages of this style of working from using the framework in an GUI intensive project will complete the session.

Process/Mechanics

Part 1: a short introduction, contrasting JDemo to the JUnit framework

Part 2: a demonstration on an example problem, showing how to incorporate exploratory testing into the TDD cycle using JDemo. I plan to organize a pairing partner that is new to JDemo.

Part 3: a short presentation on our observations of pros and cons from using JDemo on GUI-heavy application development for the last five years

Part 4: answering questions from the audience