testdriven.com Wrangling quality out of chaos

Archive for March, 2006

SwitchUnit plugin for Eclipse

03.29.2006 · Posted in Java

I’ve been working on a little plugin for Eclipse that lets you switch quickly between a class and its test case. If the class/test is not found, the appropriate class creation wizard is opened (which you can turn off in preferences).

Check it out here.


FUTS: Unit Testing Framework for SAS

03.22.2006 · Posted in Links

FUTS is a Framework for Unit Testing SAS® programs. Inspired by testing frameworks such as JUnit and NUnit, FUTS allows SAS programmers to write repeatable test code to test their own work. The core of FUTS is a SAS macro library of assert functions. The assertions allow developers to create tests that compare macro symbols, data sets, and files produced by their SAS code. FUTS also comes with a perl script for batch execution of test suites, automating the process of running tests and reporting results.

FUTS enables SAS programmers to adopt agile methods associated with Test-Driven Development, or Test-First Design. FUTS is also suitable for automating regression tests in any software development lifecycle.

(Free download, registration required)

Test Driven Development with ColdFusion

03.21.2006 · Posted in Links

Just as the picture on the cover of a puzzle defines how the puzzle will look when it’s finished, a unit testing framework is a definition of how the application will work when it is completed. TDD and unit tests are not new topics and are common practices in many programming languages. In TDD, a developer begins by defining how he expects his code to work, and then writes unit tests based on those expectations. The developer does not write any code until the tests are written. Once the tests are completed the developer will frequently run them as he builds an application to receive instant feedback on the code’s current behavior and progress. This can be a very different paradigm for many ColdFusion developers, who are often not accustomed to testing during the development process.

Author: Robert Blackburn
Published: Fusion Authority

ASUnit: AppleScript testing framework

03.21.2006 · Posted in Links

ASUnit is a testing framework for AppleScript, influenced by SUnit, ASTest and the Python unittest module.


– Easy to install, no dependencies, minimal boilerplate code
– Automatic and manual test case registration
– Run in Script Editor, display results in a new document
– Aggregate multiple test scripts

Build a Generic Range Class with .NET 2.0

03.18.2006 · Posted in Links

Find out how to take advantage of the generics capability introduced with .NET 2.0, which provides an elegant solution to performing range checks within your applications.

Discusses how to use Test-driven Development (TDD) to build a Range class that you can use with any type.

Author: Jean-Paul S. Boodhoo
Published: DevX, March 7, 2006

Backwards Is Forward: Making Better Games with Test-Driven Development

03.17.2006 · Posted in Links

We have all experienced how development slows down to a crawl towards the end of a project. We have seen first-hand the difficulty of squashing insidious many-headed bugs. We have wrestled with somebody else’s code, just to give up or fully re-write it in despair. We have sat in frustration, unable to do any work for several hours while the game build is broken. We have seen countless hours of work go up in smoke as code is thrown away and started from scratch for the next project.

Code can get too complex for its own good. Milestone pressures, a fluctuating game industry, growing teams and budgets, and the breakneck pace of hardware change don’t help an already difficult situation.

This is where test-driven development comes in.

Authors: Noel Llopis and Sean Houghton
Published: March 12, 2006
[url=http://www.testdriven.com/search.php?query=llopis&action=results]Other articles by Noel Llopis[/url]


Completing the NUnit Project Template for .NET, Part 2

03.16.2006 · Posted in Links

In this article, I will complete the project template by demonstrating how to modify the supporting script to add a reference to import the nunit.framework.dll, how to define the wizard launching file, add the VSDir file entries, and we will take our new test library, created by the template, for a spin around the block.

Author: Paul Kimmel
Published: CodeGuru, April 27, 2004

Creating an NUnit Project Template for .NET, Part 1

03.16.2006 · Posted in Links

Many of you have read or heard me talk about NUnit, the open source testing tool from www.nunit.org. And, long-time readers of this column or my books will know that I have written about project templates in .NET before. In this two-part article, I would like to combine both technologies and demonstrate a practical application for project templates that incorporate a NUnit project with TraceListeners yielding a new project template, the Test Project.

Author: Paul Kimmel
Published: CodeGuru, April 12, 2004

In pursuit of code quality: Resolve to get FIT

03.16.2006 · Posted in Links

Whereas JUnit assumes that every aspect of testing is the domain of developers, the Framework for Integrated Tests (FIT) makes testing a collaboration between the business clients who write requirements and the developers who implement them. Does this mean that FIT and JUnit are competitors? Absolutely not! Code quality perfectionist Andrew Glover shows you how to combine the best of FIT and JUnit for better teamwork and effective end-to-end testing.

Author: Andrew Glover
Published: February 28, 2006

Automated Code Coverage and Unit Tests

03.13.2006 · Posted in Blogosphere

I recently changed jobs and found myself switching toolset. I am now using Visual Studio 2005, C#, NUnit, NCover, NCoverExplorer and TestDriven.net. This is a great combination if you need to learn how much of your code is exercised by your tests. I have written a short and simple overview of why I think it’s so great here: Automated Code Coverage and Unit Tests

Evaluation of Test Driven Development Adoption

03.13.2006 · Posted in News

At the beginning of this year, Methods & Tools run a poll on its web site to examine the way unit testing is performed in software development organizations. Here are the results:

Unit testing is not performed 13%
Unit testing is informal 46%
Unit tests cases are documented 11%
Unit tests cases and their executions are documented 16%
We use a Test Driven Development approach 14%

Participants: 460

These results do not claim any scientific value, but they give some information on the adoption of TDD in organizations. The rate of adoption of TDD could be considered as encouraging for a relatively young approach. This rate could also be put in perspective with a poll on agile approaches targeting a similar audience. In this poll run at the beginning of 2005, 40% of the participants have adopted and deployed, partially or completely, agile practices. This should mean that around 1/3 of agile practitioners are using TDD.Unit testing is still performed informally by a majority of participants. This is symptomatic of the small consideration that is given to the testing activities in most software development projects. When the pressure to deliver is big, testing informally makes it easier to execute poorly without being noticed as you don’t have to provide evidence of your activity. It is however recognized that unit testing is an important building block of system quality and that it costs more to correct errors discovered in later project phases. Good documentation of unit tests allows also to improve maintenance when the original developer has left the project or the company, because it can limit the occurrence that the correction introduced a negative side-effect.

From this point of view, it is already encouraging to see that 41% of the participants are documenting their unit testing efforts. These percentages are already important, as we know that documentation is not the preferred activity of software developers. They could be explained by the emergence of a wide range of open source unit testing frameworks in the xUnit family. They are the tools that should lead to more and more repeatable unit tests.

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

NTest 1.0 – Automated Unit Testing for .NET

03.12.2006 · Posted in Tools

Incenteus is glad to announce the first release of NTest.

NTest is an automated unit testing tool that tests class modules written on the Microsoft® .NET Framework that unlike other tools on the market, is capable of generating complete test cases for your .NET application, and allows you to interact with your code to create and run tests quickly.

NTest is also capable of generating NUnit compatible test cases as well as running them.

For more info, please visit Incenteus products.

ObjectiveView – Free Software Development Magazine

03.08.2006 · Posted in News

Issue 9 of ObjectiveView magazine is now out – with articles on Ruby, Rails, AspectJ and Ajax. Of particular interest to test-driven development fans is the Rails article, which desribes how to do TDD using Rails.

Issue 8 also contains two articles of interest to TDDers: Unit Testing by Elfreide Dustin, and Combining TDD with more traditional UML approaches by Matt Stephens.

See Objective View’s home page.

Integrating Extreme Programming and Contracts

03.07.2006 · Posted in Links

One could think that contracts are not needed when Unit Tests are written to the extent demanded by XP. However, we believe that contracts and unit tests supplement each other. They are indeed a means to achieve those goals, where it would be hard with Unit Tests alone.

Authors: Hasko Heinecke & Christian Noack
Published: May 1, 2001


Avignon: acceptance testing process automation

03.07.2006 · Posted in Links

Avignon is an acceptance testing framework written by Narti Kitiyakara for the Cyndrus ADS project. For programming teams that use the eXtreme Programming (XP) methodology, Avignon lets customers express acceptance tests in a non-ambiguous manner before development starts. Avignon now supports (to various degrees, but fuller support is coming) HTML testing through Microsoft’s Internet Explorer, Java Swing application testing and Microsoft .NET WinForm applications.

Using JConsole to Monitor Applications

03.07.2006 · Posted in Links

The Java 2 Platform, Standard Edition (J2SE) 5.0 release provides comprehensive monitoring and management support. It not only defines the management interfaces for the Java virtual machine, but also provides out-of-the-box remote monitoring and management on the Java platform and of applications that run on it. In addition, JDK 5.0 includes the Java Monitoring and Management Console (JConsole) tool. It uses the extensive instrumentation of the Java virtual machine to provide information on performance and resource consumption of applications running on the Java platform using Java Management Extension (JMX) technology.

The article describes how JConsole can be used to observe information about an application running on the Java platform. The article first gives an overview of the J2SE 5.0 monitoring and management architecture and how JConsole plugs into the architecture. It then describes how to use JConsole to access several core monitoring and management functionalities provided by the Java platform.

Author: Mandy Chung
Published: Sun Developer Network, December 2004

iValidator: XML-based Test Automation in Complex Environments

03.07.2006 · Posted in Links

Developers are more and more confronted with growing software complexity and a strong movement towards increased accountability. Tools like JUnit are well established in professional software development. iValidator is designed to run integration tests with large test scenarios for J2EE based applications.

Such mission critical software usually consists of many interacting components and subsystems. To test the integration of these subsystems it is necessary to implement extensive test scenarios. The sensible approach is to use a descriptive process to assemble small self-contained test units into complex scenarios.

iValidator is equally suitable for black box and white box tests. Especially server applications can be tested at any desired level of complexity.

Although applicable iValidator is not designed for unit and gui tests.

Test-first development with FitNesse: Learn how FitNesse can solve your quality problems

03.07.2006 · Posted in Links

This article describes how the open source wiki FitNesse can be used to implement a real test-first development process by bringing customer, requirements engineer, developer, and tester together. Requirements get more precise, change is minimal, and test data is removed from the JUnit tests, making them much cleaner and easier to maintain.

Author: Stephan Wiesner
Published: JavaWorld, February 20, 2006

Practices of an Agile Developer: Working in the Real World

03.06.2006 · Posted in Links

Practices of an Agile Developer: Working in the Real WorldThis isn’t academic fluff; follow these ideas and you’ll show yourself, your teammates, and your managers real results. These are the proven and effective agile practices that will make you a better developer.

This book will help you improve many different areas of your career:

* Beginning and Feeding Agility
* Delivering What Users Really Want
* Using personal Agile techniques for Coding, Debugging, and Feedback
* Using collaborative techniques for better Teamwork
* Moving to Agility

These practices provide guidelines that will help you succeed in delivering and meeting your user’s expectations, even if the domain is unfamiliar. You’ll be able to keep normal project pressure from turning into disastrous stress while writing code, and see how to effectively coordinate mentors, team leads, and developers in harmony.

You can learn all this stuff the hard way, but this book can save you time and pain. Read it today, and you’ll be a better developer. Today.

Authors: Venkat Subramaniam & Andy Hunt
Published: The Pragmatic Programmers, April 2006
189 pages


Ship it! A Practical Guide to Successful Software Projects

03.06.2006 · Posted in Links

Ship it! A Practical Guide to Successful Software Projects"Any process that prohibits any other best practices from being introduced is almost certainly a bad process."

* Use the right tools to guide and protect your project, and tame those that can hurt you
* Effectively manage features and issues to keep both users and managers happy
* Improve everyone’s communication and collaboration using simple techniques
* Recognize how great developers and great managers work in concert — and how to fix it when they don’t
* Know how to answer the Frequently Asked Questions and fix the common problems that everyone faces on modern projects

Authors: Jared Richardson and Will Gwaltney
Published: June 2005

Tags: ,

Enterprise Integration with Ruby

03.06.2006 · Posted in Links

Enterprise Integration with RubyTypical enterprises use dozens, hundreds, and sometimes even thousands of applications, components, services, and databases. These run on heterogeneous operating systems and hardware, they use databases and messaging systems from various vendors, and they were written in different programming languages. And it’s your job to make them work together.

This book shows you how the power and elegance of Ruby can greatly simplify your job. Use it as a glue language to bind your enterprise applications using technologies including:

* Oracle, MySQL, and friends: use relational databases directly, and via mapping layers such as ActiveRecord.
* LDAP: Harness the power of directory services.
* XML Documents: create, validate, and read XML documents for easy information interchange
* Sockets, HTTP, and REST: sometimes the low-level communications protocols are the simplest way to get things moving.
* XML-RPC, SOAP, CORBA, RMI and others: and sometimes you need the high-level protocols to get the job done

This isn’t a book full of theory. Maik builds real life applications to illustrate all the techniques and technologies. It isn’t a love fest either: Maik isn’t afraid to point out the weaknesses in the approaches and in the libraries he’s describing.

Author: Maik Schmidt
Published: The Pragmatic Programmers, April 2006
360 pages


Balancing Agility and Discipline: A Guide for the Perplexed (Paperback)

03.06.2006 · Posted in Links

Balancing Agility and Discipline: A Guide for the Perplexed (Paperback)In the last few years, two ostensibly conflicting approaches to software development have competed for hegemony. Agile method supporters released a manifesto that shifts the focus from traditional plan-driven, process-based methods to lighter, more adaptive paradigms. Traditional methods have reasserted the need for strong process discipline and rigorous practices. True believers on both sides have raised strident, often antagonistic, voices. We wrote this book for the rest of us, those caught in the middle of the method wars simply trying to get our projects completed and accepted within too-tight schedules and budgets. We hope to clarify the perplexity about the roles of discipline, agility, and process in software development. We objectively compare and contrast the traditional, plan-driven approaches to the newer, agile approaches and present an overview of their home grounds, strengths, and weaknesses. We then describe a risk-based approach to aid in balancing agility and discipline within a software development project.

– The first chapter sets the stage for what follows. It introduces the main points and provides an executive summary of the book.
– Chapter 2 compares the agile and plan-driven approaches and provides insight into the type of projects where each has been most successful (their home grounds).
– Chapter 3 provides an experiential introduction to the approaches by describing how both a typical and not-so-typical day might be spent using each.
– Chapter 4 presents two project case studies that illustrate the limits of pure agile and pure plan-driven implementations and the benefits of integrating the approaches.
– Chapter 5 describes a risk-based approach for making methodology decisions that integrate agile and plan-driven practices, and illustrates it with representative examples.
– Chapter 6 summarizes the material and offers some final observations.

Authors: Barry Boehm, Richard Turner
Published: Addison-Wesley Professional; 1st edition (August 15, 2003)

Tags: ,