My Publications

Debugging and Testing Swing Code

developerWorks, February 2010

When you need to use or maintain other Java™ developers’ code, debugging and testing can help you understand how it works. In the case of visual code though, these powerful practices are more difficult unless you have the appropriate tools. The two open source tools that this article introduces — Swing Explorer and FEST-Swing — can make debugging and testing of Swing UIs simple and reliable. This article shows how to use them to understand a UI’s structure, test how it functions, and troubleshoot issues. Read more…

IEEE GUI Testing Made Easy

Practice and Research Techniques, 2008. TAIC PART ’08. Testing: Academic & Industrial Conference, August 2008 (Requires subscription)

This paper presents a GUI testing strategy that includes writing robust GUI tests, creating testable GUIs and testing legacy/existing GUIs. Simultaneously, the article the features that a tool should offer to simplify GUI testing. Read more…

Java Power Tools Java Power Tools by John Ferguson Smart

O’Reilly, April 2008

Java Power Tools delivers 30 open source tools designed to improve the development practices of Java developers in any size team or organization. I contributed the article about testing Swing user interfaces with FEST.

InfoQ An Approach to Internal Domain-Specific Languages in Java

InfoQ, February 2008

This article describes how it is possible to write domain-specific languages using the Java language and suggests some patterns for constructing them. Read more…

Dev2Dev Mock Objects: Shortcomings and Use Cases

Dev2Dev, August 2007

This article shows how Mock Objects, a testing technique from the XP community, can help programmers write unit tests. It also considers the shortcomings of this technique and provides valuable use cases. Read more…

JavaWorld Test-driven GUI development with FEST

JavaWorld, July 2007

Learn what differentiates FEST (formerly TestNG-Abbot) from other GUI testing frameworks and get a hands-on introduction to Swing GUI testing with this fast-growing developer testing library. Video demonstrations and working code examples are included. Read more…

Test-Driven GUI Development with TestNG and Abbot

IEEE Software, May 2007 (Requires subscription)

Regardless of test-driven development’s well-known benefits, it has suffered slow adoption in GUI development. Because GUIs are one of applications’ most important components, testing them is essential for improving the entire system’s safety and robustness. Testing GUIs is difficult, but several recommendations and practices can simplify test-driven GUI development for Java Swing applications.This article is part of a special issue on test-driven development. Read more…

Dev2Dev Declarative Caching Services for Spring

Dev2Dev, May 2006

Scalability, reliability, and high performance are must-have requirements in modern J2EE applications. Regardless of the type of client, request processing usually involves actions that have a negative effect on performance, such as information gathering from disparate data sources and execution of complex calculations, to say the least. Caching is one of the most essential practices that improve the performance of enterprise applications. This article introduces a code-free caching framework for Spring-based applications, Declarative Caching Services for Spring. Read more…

Objective View Aspect-Oriented Programming with AspectJ

ObjectiveView, February 2006 (PDF)

Object-oriented programming (OOP) is, without any doubt, one of the most important programming paradigms in the history of software engineering. In spite of this achievement, object-oriented programming has demonstrated to be inadequate in dealing with crosscutting concerns. This article introduces Aspect-Oriented Programming (AOP) with AspectJ. Read more…