testdriven.com Wrangling quality out of chaos

Archive for December, 2006

MoreUnit 0.7 released

12.24.2006 · Posted in Java

A new version of the Eclipse plugin MoreUnit has been released with bug fixes and new features. Enjoy.

moreUnit is an Eclipse plugin to assist developers in writing more unit tests. It currently:

– Decorates classes which have a test case.
– Marks methods in the editor which are under test.
– Jumps to a test case in the editor via the menu or a shortcut
– Generates a test method stub for the method under cursor-position in the editor via the menu or a shortcut.

Settling the score, Raking Java, Grand integration

12.23.2006 · Posted in Blogosphere

Jay Flowers finds ways to promote the growth of unit tests in Playing for Real, More Than a Scoreboard.

While Apache has just released version 1.7 of Ant, JRake is starting to earn attention: "JRake is the latest entry in build tools for Java that is based on a scripting language. JRake leverages JRuby and the Rake build tool for Ruby to make building, running tests, and deploying web applications quick and easy." (JRake: Build, Test, and Deploy Java applications without XML, InfoQ)

Rick Hightower writes the steps to setting up [url=http://www.thearcmind.com/confluence/display/SHJFT/TestNG%2C JMock and Spring integration tests]TestNG, JMock and Spring integration tests[/url].Jee Wartac has also been blogging about Shale Mock Objects.

"I believe that the agile community is at a crossroads: It has reached the chasm point in Geoffry Moore’s technology adoption curve and is looking over the precipice. Although some techniques, such as test-first design, refactoring, and daily stand-up meetings seem to have crossed the chasm it is not clear yet whether agile methodologies — or even the concept of agile software development in general — is going to succeed in the long term. Clearly a critical success factor will be our ability to attract traditionalists to our way of thinking. From what I’ve seen over the past few months, I believe that we are struggling if not out-right failing to do so. One of our problems is that traditionalists see that many self-declared agilists only seem to talk about being agile but they don’t actually live up to their lofty ideals." (Dr. Dobb’s, An Agile New Year’s Resolution for All of Us)

"Previous criticisms of Agile by Steve Yegge and Joel Spolsky have been discussed previously on InfoQ, and such criticisms aren’t new. What is new is the extent to which the agile community itself is questioning the current direction of Agile." (Reflections on the Growth of Agile, InfoQ)

Trail Ridge Consulting conducted an independent global survey of the agile software development community to determine the project management tooling that companies are using to support their agile processes. The report is here.

Gary Pollice wrote a review of Organizational Patterns of Agile Software Development.

Mock testing examples and resources

12.23.2006 · Posted in Links

In my experience, stubs are more useful than mocks when it comes to unit testing. You should still use a mock library or framework even when you want to use stubs, because these libraries make it very easy to instantiate and work with stubs.

Author: Grig Georghiu
Posted: December 15, 2006

JRake: Java build tool

12.23.2006 · Posted in Links

JRake is a Java build tool. It is based on Ruby to allow for arbitrarily complex things in a well-known scripting language with lots of supporting libraries.

EclEmma rocks!

12.22.2006 · Posted in Advisories

I had a difficult time finding an open-source code coverage plugin for Eclipse that works with our codebase. EclEmma is the only one that worked right out of the box. Thanks!

David Vydra
Google Checkout Team
Founder, testdriven.com

froglogic Announces Automated Java Testing Tool Squish/Java

12.19.2006 · Posted in Advisories

Hamburg, Germany – 2006-12-19 froglogic GmbH today announced the first
preview of Squish/Java. Squish/Java is a new edition of the powerful,
platform-independent testing framework Squish. This new edition
features the automatic creation and execution of tests for Java Swing,
AWT, SWT and RCP/Eclipse applications.

Squish started out as a professional automated GUI testing tool for
applications based on different GUI technologies such as Qt, Tk and
XView. Earlier this year froglogic released Squish/Web, a new edition
for testing Web and Ajax applications in different browsers.

The new Squish/Java edition takes advantage of Squish’s mature testing
framework while adding support for the standard Java GUI technologies
Swing, AWT, SWT and RCP/Eclipse.

"With Squish/Java we created a very powerful solution which combines
the advantages of the Squish testing framework with Java’s widespread
popular language and GUI features in one tool. By dynamically wrapping
Java API it is possible to access every Java function. This allows for
development of sophisticated automated tests", explained Koos Vriezen,
froglogic’s Java Chief Engineer.

Squish offers a versatile testing framework with a choice of popular
test scripting languages (Python, JavaScript, Tcl and Perl) extended
by test-specific functions, open interfaces, add-ons, integrations
into test management systems, an IDE that supports the creation and
debugging of tests and a set of command line tools facilitating fully
automated test runs.

Similar to pre-existing Squish editions, tests for Java applications
can be automatically recorded or written manually. Using Squish Spy,
verification and synchronization points can be inserted as easily as
in every other edition by visually exploring the structure of a Java

Squish/Java is already in use at customers who have already been
testing other ports of their application using the respective Squish
edition for a while. Now they are able to utilize Squish to test the
Java version of their application.

Previews of Squish/Java are available now. If you are interested in
Squish/Java, or any other Squish edition, please contact
squish@froglogic.com. For more information, visit

About froglogic

froglogic GmbH is a software company based in Hamburg, Germany. Their
flagship product is Squish, a professional automated testing tool for
GUI applications based on Qt, Tk or XView and for HTML-based web
applications running in different web browsers. froglogic also offers
Qt consultancy services and other Qt-based development tools such as
the Tcl/Tk/Qt migration framework Tq. More about froglogic at

Unit test enthusiasts, Painful critters, Retirement plans

12.13.2006 · Posted in Blogosphere

"You’d think that life was good and code was well tested. You might think so — I know that I did — but reality shows a jarring disconnect between all of the enthusiasm for unit testing and the amount, and quality, of test code actually written. Why do I say this?" (simonpeter.org)

"Many developers seem to look upon software build tools with disdain. They see them as painful creatures put on the earth to gnaw at their patience. The developer just wants to get on with Real Work (coding), and not have to deal with such annoying details. This attitude arises for a few reasons" (Learn Your Build Tool. Well.)

Does the rise of "Agile religion" signal that the moment has arrived to retire the "Agile" label? (Debating Agility at ThoughtWorks)Jay Flowers follows up on his earlier article, A Tune-Up for TDD? in Refinements, Clarifications, and Simplifications of a Tune-Up.

"I have been working for some time on getting my organization to adopt TDD. I began with manipulation." (Tipping TDD, Jay Flowers)

"Current SOA processes and guidance generally encourage a phase-based approach to SOA implementation, fully understanding the problem and defining the solution before implementation begins. Digital Focus, an east-coast firm specializing in Agile software development and integration, is convinced that Agile development practices are equally suited to implementing SOA." (InfoQ Interview: Using Agile for SOA)

George Malamidis simplifies his mocking: "Up until recently (a few hours ago, that is…), I lived with the notion that Mock Objects are a necessary evil. You don’t exactly like them, but you can’t really do without them. They have obvious advantages, but something about them never felt quite right." (From Mocks to Expando)

Mockrunner 0.3.8 is out.

Dave walks through the installation of Continuous Integration with Hudson on Glassfish.

"The best way to use multiple versions of IE on one machine is via virtualization. Microsoft has recently made Virtual PC 2004 a free download; we’ve taken advantage of that by releasing a VPC virtual machine image containing a pre-activated Windows XP SP2, IE6 and the IE7 Readiness Toolkit to help facilitate your testing and development." (IE6 and IE7 Running on a Single Machine, IEBlog)

IntelliJ IDEA announces that the Early Access Program for TeamCity 1.2 and Agra (1.5) is open.

Agile Web Development with Rails, Second Edition

12.13.2006 · Posted in Links

Agile Web Development with Rails, Second EditionThe definitive, Jolt-award winning guide to learning and using Rails is now in its Second Edition. Rails is a new approach to web-based application development that enables developers to create full-featured, sophisticated web-based applications using less code and less effort. Now programmers can get the job done right and still leave work on time.

NEW IN THE SECOND EDITION: The book has been updated to take advantage of all the new Rails 1.2 features. The sample application uses migrations, Ajax, features a REST interface, and illustrates new Rails features. There are new chapters on migrations, active support, active record, and action controller (including the new resources-based routing). The Web 2.0 and Deployment chapters have been completely rewritten to reflect the latest thinking. Now you can learn which environments are best for your style application, and see how Capistrano makes managing your site simple. All the remaining chapters have been extensively updated. Finally, hundreds of comments from readers of the first edition have been incorporated, making this book simply the best available.

Rails is a full-stack, open-source web framework that enables you to create full-featured, sophisticated web-based applications with a twist…you can create a full Rails application using less code than the setup XML you’d need just to configure some other frameworks.

With this book, you’ll learn how to use Rails Active Record to connect business objects and database tables. No more painful object-relational mapping. Just create your business objects and let Rails do the rest. You’ll learn how to use the Action Pack framework to route incoming requests and render pages using easy-to-write templates and components. See how to exploit the Rails service frameworks to send emails, talk to web services, and interact dynamically with Javascript applications running in the browser (the "Ajax" architecture).

You’ll see how easy it is to deploy Rails. You’ll be writing applications that work with your favorite database (MySQL, Oracle, Postgres, and more) in no time at all.

Authors: Dave Thomas, and David Heinemeier Hansson with Leon Breedt, Mike Clark, James Duncan Davidson, Justin Gehtland, and Andreas Schwarz
Published: Pragmatic Programmers, December 13, 2006
750 pages


KJam: build tool

12.13.2006 · Posted in Links

KJam is a program construction tool, like make. KJam recursively builds target files from source files, using dependency information and updating actions expressed in a user-provided jamfile, which is written in KJam’s own interpreted language.

KJam is modelled after Jam/MR, a build tool developed by Chris Seiwald of Perforce Software. It operates in a way very similar to Jam and its interpreted language is also very similar. KJam was developed in an effort to make significant improvements to Jam while still maintaining its powerful minimalist design. KJam eliminates a number of Jam’s legacy features, and concentrates on features designed to make it more useful and more manageable for larger and more complex projects.

AdventNet QEngine: Automated Web testing

12.13.2006 · Posted in Links

AdventNet QEngine is an Automated Testing Tool for Functional Testing, Performance Testing, Load Testing, Stress Testing, Web Services Testing, Server Performance Monitoring & Regression Testing to run tests from command line for all test types.

QEngine runs in both Windows/Linux platforms. Allows record/playback in MSIE, Firefox and Mozilla browsers. Allows multiple team members to access, create, modify and execute test suites from any geographic location.

(Commercial tool)

Unit Testing Best Practices

12.12.2006 · Posted in Links

I was recently compiling a list of Test-driven Development (TDD) "Best Practices" for my client project’s wiki site and thought this would probably be useful to the community at large. I’ve been an avid practitioner and proponent of test-driven development for a few years now and have found it to be one of the most important practices I’ve adopted. If practiced correctly, it will have a significantly positive impact on the design and quality of your code.

– Test Behavior, Not Methods
– Apply the "Too Simple to Break" Rule
– Use Object-Oriented Best Practices In Your Test Cases
– Use Appropriate Method Names
– Don’t Use Try/Catch Blocks to Catch Unexpected Exceptions
– Don’t Rely on Visual Inspection
– Use A Code Coverage Tool
– Use The Appropriate Tool for the Testing Scenario

Author: Bob McCune
Posted: December 9, 2006

Automated Smoke Tests With Selenium, Cargo, TestNG and Maven

12.08.2006 · Posted in Links

we frequently deploy newer releases to QA. Before making a release, we do a "smoke test" where one of us runs through the major functional areas of the application. Sometimes we encounter bugs at this stage. The development web server is Jetty, but all deployments from QA upwards happen on Tomcat – minor incompatibilities between Jetty and Tomcat are identified very late, usually when the smoke test is run right after a deployment.

I devised a mechanism to run a automated smoke test, and I will describe the process here.

Author: Binil Thomas
Published: December 8, 2006

Venkat Subramaniam and Andrew Hunt Talk Agile

12.08.2006 · Posted in Links

Carl and Richard talk with Venkat Subramaniam, who has had a string of successful dnrTV episodes, and Andrew Hunt about Agile dos and dont’s. Agile Methodology can be overwhelming, and these guys introduce a much-needed dose of reality.

Date: December 5, 2006
Presented: .NET Rocks
Duration: 1 h 13 mn

Ron Jeffries on Running Tested Features [Video]

12.05.2006 · Posted in Links

Ron Jeffries’ upcoming book looks at how tracking "Running Tested Features" is the essential element of Agility, from which all other practices and activities necessarily follow. Deborah Hartmann interviews Ron who takes to the whiteboard to explain how, when supported by XP’s "simple design" practice, RTF helps teams deliver consistently without building up costly technical debt.

Presentator: Ron Jeffries
Posted: InfoQ, November 30, 2006

A Canary in a Coal Mine [Video]

12.05.2006 · Posted in Links

Scrum co-creator Ken Schwaber spoke at Agile2006 on code quality as a corporate asset. InfoQ presents video of his talk, The Canary in the Coalmine. Schwaber discussed how a degrading core codebase paralyses a team and negates any Agility gained through process improvement. He proposed strategies for management to identify, track and stop this downward spiral.

Presentator: Ken Schwaber
Presented: November 2006

Using JMock with Test Driven Development

12.05.2006 · Posted in Links

Applying Mock objects effectively is a key factor when performing Test Driven Development (TDD). In this article I’ll introduce the basics of using JMock, a Mock object framework, in conjunction with Test-Driven Development. To illustrate the technique I will work through a case study, the creation of a cache component by means of test-first development with JMock.

Author: Paolo Caroli
Published: TherServerSide, December 2006

Pulse Continuous Integration Server 1.2 M3

12.05.2006 · Posted in Tools

This is the third milestone in the 1.2 series. New features include customizable build columns, manual release support, post stage actions, P4Web integration, LDAP group integration, executable projects, and reporting of "broken since" builds for test failures.

Pulse home page.

Improve your code quality [Chat]

12.02.2006 · Posted in Links

What is code quality exactly? You may not know how to define it, but you know it when you see it. One thing is sure, though, high code quality usually correlates to fewer defects. Ensuring the quality of your Java code is a two-step process: write tests at all levels, early and often; and continually monitor quality metrics. Andrew Glover brings his considerable expertise as a consultant focused on improving code quality to this moderated chat.

Date: November 17, 2006
Hosted by: IBM developerWorks

Implementing Lean Software Development: From Concept to Cash

12.02.2006 · Posted in Links

Implementing Lean Software Development: From Concept to CashIn 2003, Mary and Tom Poppendieck’s Lean Software Development introduced breakthrough development techniques that leverage Lean principles to deliver unprecedented agility and value. Now their widely anticipated sequel and companion guide shows exactly how to implement Lean software development, hands-on.

This new book draws on the Poppendiecks’ unparalleled experience helping development organizations optimize the entire software value stream. You’ll discover the right questions to ask, the key issues to focus on, and techniques proven to work. The authors present case studies from leading-edge software organizations, and offer practical exercises for jumpstarting your own Lean initiatives.

* Managing to extend, nourish, and leverage agile practices
* Building true development teams, not just groups
* Driving quality through rapid feedback and detailed discipline
* Making decisions Just-in-Time, but no later
* Delivering fast: How PatientKeeper delivers 45 rock-solid releases per year
* Making tradeoffs that really satisfy customers

Implementing Lean Software Development is indispensable to anyone who wants more effective development processes–managers, project leaders, senior developers, and architects in enterprise IT and software companies alike.

Authors: Mary & Tom Poppendieck
Published: Addison-Wesley Professional, September 7, 2006