testdriven.com Wrangling quality out of chaos

Archive for March, 2004

MSDN Architecture Webcast: Test Driven Development as a Practice

03.31.2004 · Posted in Events

MSDN Architecture will hold a Live Meeting Webcast on the practice of Test Driven Development.

The Webcast will be held on April 15, 2004, from 9:00 AM to 10:30 PM Pacific Time (GMT-8, US & Canada). It will be led by Ron Jeffries, leading voice in the eXtreme programming (XP) community.

Date: Thursday, April 15, 2004
Time: 9:00AM-10:30AM Pacific Time (GMT-8, US & Canada)Description from MSDN:

Microsoft® Press author Ron Jeffries, author of the recently released “Extreme Programming Adventures in C#” will discuss the application of Extreme Programming design and development techniques using Visual C#® and and the Microsoft .NET Framework. Topics include "Spikes", unit-testing, and your questions regarding the fundamental techniques of simple design, test-driven development, and refactoring to create practical, .NET-ready applications.One registered webcast attendee will be randomly selected to win a free autographed copy of Ron Jeffries’ new book, one title in the new Microsoft Professional Series of books. The Microsoft Professional Series titles are focused on agile programming methods and underlying architectural design concepts and patterns, representing the cutting edge of new or changing technologies.


Ron Jeffries, Software Development Consultant, Ronald E Jeffries Associates

Ron Jeffries is an industry leading voice and practitioner in the extreme programming movement. He was the on-site coach for the original eXtreme programming (XP) project. An independent consultant who has been involved in XP for more than five years. He and his teams have built operating systems, compilers, relational database systems, and a wide range of applications.

Click [url=http://msevents.microsoft.com/CUI/EventDetail.aspx?culture=en-US&EventID=1032247637]here[/url] for further details on the Webcast.

TDD C#: Improve the Design and Flexibility of Your Project with Extreme Programming Techniques

03.31.2004 · Posted in Links

"Wouldn’t you just love to create code that becomes easier to work with as the project matures rather than more difficult? It seems that no matter how much care you take, sooner or later, your code will become a maze. The bigger the project, the worse this problem gets. How many times have you started a project with a near-perfect design only to see it unravel once coding starts?
Test-driven development (TDD) alters the process of writing code so that change is not only possible, but desirable. Development revolves around three basic activities: writing a test, writing code to pass the test, and refactoring the code to banish duplication to make it simpler, more flexible, and easier to understand."

Authors: Will Stott & James Newkirk
Published: MSDN Magazine, April 2004


Test Mentor for Smalltalk IDEs (VisualAge & Cincom)

03.31.2004 · Posted in Links

Test Mentor is the only automated testing solution designed specifically for VisualAge Smalltalk and VisualAge Generator, and the only automated testing tool that is integrated directly with the Smalltalk development environment.

There’s also a QA version for VA, and another for Cincom’s VisualWorks Smalltalk, which ships on Cincom’s CD-Rom.

Test Mentor is a commercial tool.

SilverMark’s Enhanced JUnit

03.31.2004 · Posted in Links

SilverMark’s Enhanced JUnit is a suite of tools that enhance JUnit. It has the ability to distribute JUnit tests across multiple threads, VMs and machines.

– JUnit/profile: method coverage and object interaction profiling.
– JUnit/load: load testing across any number of threads, JVMs and CPUs.
– JUnit/generate: automatic test generation from existing classes, packages, and object interaction recordings.
– JUnit/util: handy utlities and APIs.

Enhanced JUnit is a commercial tool.

JContract: Java Design By Contract tool

03.31.2004 · Posted in Links

Jcontract is a new Java Design by Contract (DbC) tool. It instruments and compiles code that contains DbC comments, then automatically checks whether the specified contracts are violated at runtime. This monitoring verifies that classes and components work correctly and are used correctly at the system level.

JContract is a commercial tool.

Two Critical Tips for Unit Testing in Java

03.31.2004 · Posted in Links

There are two issues that often vex Java developers when they attempt to unit test their code. The first one is whether to design their systems in a manner that facilitates testing. The second is how to test non-deterministic code. This article offers helpful tips for handling these dilemmas.

Author: Bryan Dollery
Published: October 21, 2002

Jemmy: Automated tests for Java GUI applications

03.31.2004 · Posted in Links

Jemmy is a Java™ library that is used to create automated tests for Java GUI applications. It contains methods to reproduce all user actions which can be performed on Swing/AWT components (i.e. button pushing, text typing, tree node expanding, …). JemmyTest is a program written in Java which uses the Jemmy API to test applications.

“Junit Recipes: Practical Methods for Programmer Testing” due out in July, 2004

03.31.2004 · Posted in Books

"JUnit Recipes: Practical Methods for Programmer Testing", is a manual on using JUnit, to be published by Manning Publications in July.

The author, J. B. Rainsberger, is the president of Diaspar Software Services, an up-and-coming writer and public speaker. He is a prolific contributor to many TDD lists.To pre-order this book, click on the image below:
[img align=center]http://www.testdriven.com/uploads/img406a7c3e25ed8.jpg[/img][/url]

An excerpt: "JUnit: A Starter Guide", is available here.

JUnit: A Starter Guide

03.31.2004 · Posted in Links

"JUnit is an open source testing framework for Java. It provides a very simple way to express the way you intend your code to work. By expressing your intentions in code, you can use the JUnit test runners to verify that your code behaves according to your intentions. This document should provide enough information for you to get started writing tests with JUnit."

Author: J. B. Rainsberger
Published: 2003

Simple Smalltalk Testing: With Patterns

03.31.2004 · Posted in Links

"Smalltalk has suffered because it lacked a testing culture. This column describes a simple testing strategy and a framework to support it. The testing strategy and framework are not intended to be complete solutions, but rather a starting point from which industrial strength tools and procedures can be constructed."

Author: Kent Beck
One of the original, founding articles of TDD.

Incremental development with Ant and JUnit

03.31.2004 · Posted in Links

A small change in your software development habits can have a huge payoff in the quality of your software. Incorporate unit testing into your development process and see how much time and effort you save in the long run. This article explores the benefits of unit testing, in particular using Ant and JUnit, with code samples.

Author: Malcolm Davis, Consultant
Published: 1 November 2000

JUB: JUnit test case Builder

03.27.2004 · Posted in Links

Code generation in JUB (JUnit test case Builder) takes into account multiple constructors, and overloaded methods. It attempts to include all necessary import statements and to place correct tested method signatures and exception testing / handling code into test methods’ bodies. It also allows generation of test code for protected and default methods.

jfcUnit: test cases for Java Swing-based applications

03.27.2004 · Posted in Links

jfcUnit enables developers to write test cases for Java Swing based applications. It provides support for obtaining handles on Windows/Dialogs opened by the Java code, locating components within a component hierarchy that occur within the containers found above, raising events on the found components, e.g. clicking a button, typing text in a TextComponent, and handling testing of components in a thread safe manner.

MaxQ: web functional testing tool

03.26.2004 · Posted in Links

MaxQ is a free web functional testing tool. It includes an HTTP proxy that records your test script, and a command line utility that can be used to playback tests. The proxy recorder automatically stores variables posted to forms, so you don’t have to write that stuff by hand.

MaxQ is built on a number of existing free software packages: Jython, JUnit and Jakarta Commons HttpClient.

MbUnit: Generative Test Unit framework

03.26.2004 · Posted in Links

MbUnit is a new generative test unit framework, whose objective is to give to end-users the "high order" test fixtures, and to developers, the tools to build new custom fixtures without modifying the Core. To illustrate that, MbUnit implements the Simple Test Pattern and provides new fixture types, like the useful TypeFixture which applies tests to a particular type instance.

MbUnit is a prototype inspired by Marc Clifton’s article on Unit Test Patterns

(MbUnit was initially released as GUnit but renamed to avoid name conflict with another existing project.)

JDepend: Automatic measurement of design quality metrics for Java

03.26.2004 · Posted in Links

JDepend, Mike Clark’s Java metrics analyzer, can easily be integrated as part of JUnit test cases, to ascertain changes made to a project respect targeted dependencies:

"Tests can also be written to fail if any package dependency other than those declared in a dependency constraint are detected. The existence of package dependency cycles can also be automatically checked by a JUnit test. As the software evolves through refactorings, the design quality test cases can be run as a sanity check to ensure that the design has not formed too many undesirable dependencies."

Literate Testing: Automated Testing with doctest

03.26.2004 · Posted in Links

Slides from Jim Fulton and Tim Peters’ conference presentation on Literate testing at PyCon 2004.

"Doctest is a system for writing tests within Python documentation strings. The emphasis is on documentation. Tests are provided as example code, set off with Python prompts. Doctest tests lend themselves toward a literate form of test code.

In Python 2.3, a new feature was added to Python to create unit tests from doctest doc strings. This talk provides an overview of doctest, shows how to create unit tests with doctest, and compares and contrasts regular PyUnit unit tests and doctest-based unit tests."


The power of one little automated test

03.25.2004 · Posted in Links

Andy Lester writes: "Automated testing is the #1 investment we can make in software quality today. Here’s a simple example of one simple test accidentally uncovering an existing bug. The code is in Perl, but applies to any project in any language."


STAF: Software Testing Automation Framework

03.23.2004 · Posted in Links

The Software Testing Automation Framework (STAF) is an open source, multi-platform, multi-language framework designed around the idea of reusable components, called services (such as process invocation, resource management, logging, and monitoring). STAF removes the tedium of building an automation infrastructure, thus enabling you to focus on building your automation solution.

STAX is an execution engine which can help you thoroughly automate the distribution, execution, and results analysis of your testcases. STAX builds on top of three existing technologies, STAF, XML, and Python, to place great automation power in the hands of testers. STAX also provides a powerful GUI monitoring application which allows you to interact with and monitor the progress of your jobs.

Jameleon 1.8 has been released

03.23.2004 · Posted in Java

This version fixes a number of bugs present in earlier releases, and adds new features, such as:

– Sets the test case name from script file name, if not supplied
– Displays Total Execution Time for TestResults
– Provides HttpUnit helper to get cell values in a given column
– Adds an expectException
– Adds a MaxElapseTime for each TestCase
– Adds an assert image on HttpUnit Validation pointGeneral description: "Jameleon is an acceptance-level automated testing tool that separates applications into features and allows those features to be tied together independently, creating test-cases. These test-cases can then be data-driven and executed against different environments. Even though it would be possible to write unit tests using Jameleon, Jameleon was designed with integration and acceptance-level testing in mind. Most bugs are found and fixed by good unit tests. However, this does not eliminate the need to test the application as a whole."

Go to the Jameleon home page.
Read the [url=http://sourceforge.net/project/shownotes.php?group_id=84246&release_id=225074]release notes[/url].

A Practical Guide to eXtreme Programming

03.23.2004 · Posted in Links

A Practical Guide to eXtreme ProgrammingThis book doesn’t just introduce key XP principles such as simplicity, communication, and feedback: it shows how to make them work in the real world. Using a start-to-finish case study, this book covers the entire project lifecycle, every key task, and the role of every XP participant—developers, managers, and customers.

Authors: David Astels, Granville Miller & Miroslav Novak
Published: February 2002
See also: http://www.adaptionsoft.com