testdriven.com Wrangling quality out of chaos

Archive for September, 2005

Mockrunner 0.3.6 released

09.30.2005 · Posted in Java

This release contains the first version of the new JCA test framework developed by Gábor Lipták. The framework can be used to simulate backend systems that are accessed through a JCA connector, e.g. mainframes.Other changes include:

– The mock object factories now use factory methods to create mock objects making them more extensible. This allows the use of custom mock objects.
– Mockrunner is now officially Java 5 (aka 1.5) compatible. Java 5, 1.4. and 1.3 are supported from now on.
– The Struts test framework now supports custom ActionMapping subclasses.
– The JDBC test framework now supports generated keys
– Improved out parameter handling for callable statements
– Added new ArrayResultSetFactory implemented by Erick G. Reid
– Added a method to easily preload JMS mock destinations with test messages
– Refactored JMS session handling so that closed session are removed from destinations (preventing a memory leak that may occur in special cases)
– Many minor improvements and bug fixes

Please check out the release on our site for the new version and examples for the new JCA test framework.

New release of actiWATE (Web Application Testing Environment)

09.21.2005 · Posted in Tools

I would like to inform you that a new version of the actiWATE: Actimind Web Application Testing Environment, is available as a free download.

actiWATE is a freeware software platform intended to simplify the test automation process.

It consists of:
– an advanced framework for writing tests in Java
– a Test Writing Assistant (web browser plug-in module which is aimed to assist the test writing process)actiWATE R0.99 build 3 contains the following changes and additional features:

– Extended implementation of JavaScript Object Model
– Support of HTML Image Maps and Areas
– DOM Level 1 properties and methods implementation
– Ability to check the existence of non-HTML resources (images, objects, css files)
– Rhino updated to 1.6R1
– Language header in HTTP request
– Improved detection of installed Java by TWA installer

and others…

Do not hesitate to contact me in case of any questions
regarding this software.


Vladimir Kornev.
Actimind, Inc.

An early look at JUnit 4: Upcoming release promises evolution in testing

09.15.2005 · Posted in Links

JUnit is the de facto standard unit testing library for the Java™ language. JUnit 4 is the first significant release of this library in almost three years. It promises to simplify testing by exploiting Java 5’s annotation feature to identify tests rather than relying on subclassing, reflection, and naming conventions. In this article, obsessive code tester Elliotte Harold takes JUnit 4 out for a spin and details how to use the new framework in your own work. Note that this article assumes prior experience with JUnit.

Author: Elliotte Harold
Published: IBM developerWorks, September 13, 2005


Mixed Usage of Tools for Functional Testing

09.13.2005 · Posted in News

In a recent poll, Methods & Tools was trying to determine if the software developers have automated tools to validate the behaviour of their software. The question was: do you use tools to automate execution of functional software tests?

Here are the answers:

38% – My organisation has no tool for functional software tests
26% – My organisation has tools, but my project or I do not use them
36% – I use tools for functional tests

Participants: 147

In these results, you can see either a half-full or a half-empty glass. A majority of organisations have functional test tools, but a majority of the respondents do not use them. There are many good reasons for this, like the fact that these tools could be restricted to a specific environment within the organisation and that the respondents are developing software in a different context. In my experience, the problem is also often that managers had the budget to buy the tools, but did not take into consideration the budget and time needed to train people to the new tools and use them in real projects.

Source: Methods & Tools (www.methodsandtools.com)

TDD Tools Advisory, July 1-September 10, 2005

09.13.2005 · Posted in Advisories

Tools that were updated this summer:

Ant For Eclipse 0.2.0: integrate Eclipse configurations into Ant buildscripts
BizUnit 2.0: Biztalk solutions test framework
Cobertura 1.6: Java test coverage tool
Coverlipse Eclipse plugin to visualize JUnit coverage
CruiseControl 2.3: Framework for continuous build
CruiseControl.NET 1.0RC1: Continuous integration server for .NET
EasyMock 1.2 RC2: Mock Object for Java interfaces
Exactor 1.1.4: framework for automated acceptance tests
HTMLUnit 1.7: Unit-testing framework for HTML returned document model
Jakarta Cactus 1.7.1: Unit-testing server-side Java
JasperReports 1.0.2: Java reporting tool
Jameleon 3.0.3: Java tool for automated acceptance testing
JPdfUnit 0.91: JUnit tests for generated PDF documents
juxy 0.6.7: XSLT unit testing library
log4j 1.2.12: Java logging tool
MockPP 1.9.2: Mock Objects for C++
NAnt-GUI 1.2.5b1: graphical frontend to NAnt
NUnit Converter 0.5: switch from NUnit to VSTS
OttoMate beta: OS X Web Test Automator Actions
Parabuild 2.0 Build 600: automated build management server
Parasoft Jtest 7.0: automated Java unit testing and coding standard analysis tool
Pear PHPUnit2 2.3.0beta5: unit testing tool for PHP5
Rhino Mocks 2.4: .NET mocking framework
SimpleTest 1.0.1a (+Eclipse plugin alpha): Unit-testing tool for PHP
Testido: automatic discovery of Python unit tests
TestNG 2.5: unit-test framework for Java
TestOOB 0.6: Python Testing Out Of the Box
TPTP 4.0: Eclipse Test and Performance Tools Platform
Tree Surgeon 1.1: .NET development tree generator
Zanebug 1.5: unit testing application for the .NET language

Newly registered projects:

Ant Build Tools: Ant Build Analysis tools
Maven history dashboard

twill: extensible scriptlet language for web testing

09.13.2005 · Posted in Links

twill is a reimplementation of PBP, the "Python Browser Poseur". twill and PBP both let you execute web scripts.

The primary use for twill (as with PBP) is to do automated testing of Web applications via a straightforward declarative language. In addition to basic Web crawling, I wanted to be able to extend the language via Python, and I also wanted to be able to record things with maxq. Hence, twill.

juxy: XSLT unit testing library

09.12.2005 · Posted in Links

Juxy is a simple unit testing library for XSLT written in Java. Juxy allows to call or apply individual XSLT templates from Java and does not use any specific features of XSLT processor for that purposes. It relies entirely on TRaX API and should work with any TRaX compliant XSLT processor.

QUnitTest: Unit-Testing GUI for Python

09.12.2005 · Posted in Links

QUnitTest is an easy-to-use GUI framework and application for use with the Python unit testing framework. It can be used to conveniently execute unit tests and suites, and then display the results in a useful fashion.

The goal of QUnitTest is to make execution of unit tests and results display as easy as possible. This allows the programmer to focus on changes and refactoring while frequently executing her unit tests to track progress.

Manage the agile team with XPlanner

09.07.2005 · Posted in Links

So you’ve heard good things about agile development. You’re convinced that the short delivery cycles, test-driven development, continuous integration, and intimate user involvement are the keys to delivering real (and timely) value from your software project. But the team management tools you’ve previously relied upon don’t quite fit with this new approach. What kind of tool can support you in gathering user stories from your customers and in juggling these stories between development iterations? In planning development tasks around these stories? Or publishing real-time statistics from your current iteration to help you better estimate the next one? XPlanner is an open source team management tool specifically designed for just this role. In this article, David Elliot and Justin Smith discuss their experience with deploying and running XPlanner to manage an agile project team.

Author: David Elliot and Justin Smith
Published: August 15, 2005

XPlanner: project planning and tracking tool for XP teams

09.07.2005 · Posted in Links

XPlanner is a project planning and tracking tool for eXtreme Programming (XP) teams. If you are not familiar with XP software development practices, the links page contains pointers to relevant resources. To summarize the XP planning process, the customers pick the features to be added (user stories) to each development iteration (typically, one to three weeks in duration). The developers estimate the effort to complete the stories either at the story level or by decomposing the story into tasks and estimating those. Information about team development velocity from the previous iteration is used to estimate if the team can complete the stories proposed by the customer. If the team appears to be overcommitted, the set of stories are renegotiated with the customer. The XPlanner tool was created to support this process and address issues experienced in a long-term real-life XP project.

How to resolve JUnit antipatterns

09.07.2005 · Posted in Links

The advent of JUnit has been a boon to developers. Unfortunately, many think it’s enough to learn the JUnit API and write a few tests in order to have a well-tested application. This idea is worse than not testing at all because it leads to a false sense of code health. Learning JUnit is the easiest part of testing. Writing good tests is the hard part. This article presents some common JUnit antipatterns and shows how to resolve them.

Author: Alex Garrett
Published: July 19, 2005

Mock Objects and Distributed Testing

09.07.2005 · Posted in Links

In recent years, the development community has found unit testing (especially automated unit testing), invaluable in building reliable software. Mock objects have been a key technique for enabling automated unit testing of object-oriented software. However, when we expand the scope of testing into the realm of distributed systems, unique problems arise from the increased complexity. In this article we will briefly review mock objects. We will then discuss some of the problems that arise when extending the use of mock objects to distributed systems and some approaches that can help in managing the complexity.

Author: Brian Gilstrap
Published: Object Computing, Inc., August, 2005


JDBCUnit: SQL record and playback tool

09.07.2005 · Posted in Links

JDBC unit is a tool that plugs a recorder in the Java/JDBC framework. It records and plays back SQL statements sent to the database manager.

This tool permits usage of data that is not anymore, or never was, in the database, and writing code without a connection to the database.

Sin: Continuous Integration for Subversion

09.07.2005 · Posted in Links

Sin is a framework for implementing Continuous Integration on top of the Subversion version control system.

Sin can be seen as being made up of two parts, the Integration Manager and the pool of Integrators. The Integration Manager is responsible for controlling the integration process of the changes. It will notice new changes to checkin branches in the repository, ask available Integrators to validate the changes, and perform the needed merges within the repository in order to complete the integration of the changes. If a change could be verified then the change is merged from the checkin branch to the stable branch. If a change could not be verified then the change is reverted (undone) from the checkin branch. It will be almost like the developer had never committed the change (except that no information is ever lost in a version control system). If a change is reverted then the developer that committed the change is emailed information about what was wrong with with the change. The developer can then merge the change back into his working copy, fix the problem and commit it again. The Integrator will, when asked to validate a change, checkout the source code from the stable branch in the repository, apply the change that is to be integrated, validate the change, and report either success or failure back to the Integration Manager which then take an appropriate action.

Java, Maven, and Your Web Development Project

09.07.2005 · Posted in Links

Maven is a project management tool designed to create a consistent build environment with minimal duplication of libraries or configuration. It is one of the top-level projects produced by the Apache Foundation and can be downloaded, free of charge, from the Apache Maven Web site.

In this second part of my series on Maven, an assumption is made that you are familiar with the basic functionality of Maven and that you can set up a project directory structure and project descriptor. In this article, I build a very simple Web application, along with JUnit tests for some of its functionality. The main function is to demonstrate the usefulness of Maven in the project development lifecycle—not necessarily the viability of the Web application itself.

Author: Marcus Zarra
Published: InformIT, August 26, 2005