testdriven.com Wrangling quality out of chaos

Archive for September, 2006

Coding Conventions: Make Them Agile (Simple rules let your team deliver high-quality code)

09.26.2006 · Posted in Links

Simple rules let your team deliver high-quality code as efficiently as possible. With this in mind, my agile coding convention consists of these simple rules:

1. Make your code look like other people’s code.
2. Use the simplest design possible.
3. Don’t re-invent the wheel.
4. Document your code.
5. Keep security in mind.
6. Work in increments.
7. Work in iterations.
8. Have your code reviewed.
9. Don’t stay blocked.
10. Do unto others as you would have them do unto you.

Author: Jason Mawdsley
Published: Dr. Dobb’s, September 20, 2006


Fitnesse Selenium Wrapper: natural language acceptance stories

09.25.2006 · Posted in Links

Fitnesse, a wiki encapsulating the Framework for Integration Tests (aka FIT), enables customers to write sentence-like tests which can be mapped to the underlying system. Selenium drives a browser without all of the fragile mouse coordinate testing you get from a lot of testing tools (ala WinRunner).

In order for customers to harness the power of Selenium in the acceptance tests they are writing, this tool uses the DoFixture and the Selenium Remote Control Java API to produce a custom Fitnesse fixture which reads surprisingly well.

OOPLSA Tutorial: Storytelling with FIT

09.24.2006 · Posted in Events

I’ll running our tutorial on Storytelling with FIT at OOPLSA this October. It’s about using FIT to help all the interested parties communicate with each other about what the system is supposed to do. It’s not about implementing Fixtures, although we can cover that too if there’s interest.

We’ve run it a few times now and every session there somebody suddenly gets the point. Don’t take my word for it, here’s one attendee’s opinion.

LiFT – Literate Functional Testing

09.24.2006 · Posted in Java

We are pleased to announce that an initial version of the LiFT framework is now available as open source on java.net.

LiFT is a framework for Literate Functional Testing. LiFT allows writing automated tests in a style that makes them very readable, even for non-programmers. Using the LiFT API, we can write tests that read almost like natural language, allowing business requirements to be expressed very clearly. This aids communication amongst developers and customers, helping give all stakeholders confidence that the right things are being tested.

Robert Chatley and Tom White gave a presentation on Literate Functional Testing at the Google London Test Automation Conference, the slides and [url=http://video.google.com/videoplay?docid=1505469784301926538&q=label%3Altac]video[/url] are available online.

LiFT: Literate Functional Testing for Java

09.24.2006 · Posted in Links

LiFT is a framework for Literate Functional Testing. LiFT allows writing automated tests in a style that makes them very readable, even for non-programmers. Using the LiFT API, we can write tests that read almost like natural language, allowing business requirements to be expressed very clearly. This aids communication amongst developers and customers, helping give all stakeholders confidence that the right things are being tested.

The Art of Agile Development

09.22.2006 · Posted in Links

James Shore has been writing a book on agile development to be published by O’Reilly. It’s called The Art of Agile Development and is a joint effort between James and chromatic, author of the Extreme Programming Pocket Guide.

Sections of the book have been published to allow Agile developers to be part of the review process.

The book’s aim is to provide an intensely practical reference that shows mainstream development teams how to adopt and use agile software development.

The book is divided in three sections: The Big Picture, Practicing XP, and Beyond XP. Part 2 is the heart of the book, containing all of the practices to form a complete agile methodology; it’s divided into six chapters: Thinking, Collaborating, Planning, Managing Code, Developing, and Deploying.

Authors: James Shore, Shane Warden
Expected date of publication: O’Reilly, November 2007

Upcoming training courses on Applying TDD & Refactoring (London)

09.20.2006 · Posted in Training

Course Summary:
This information-packed and hands-on seminar, led by Craig Larman, shows developers and technical leadership how to do test-driven development (TDD) and refactoring, apply the most popular open-source frameworks for TDD and use them within a popular IDE. TDD is powerful and practical. It’s the practice of always writing test code before the code to be tested. In addition to the obvious benefit that tests actually get written and executed for most code, a more subtle, but important, effect is that when we start by thinking very concretely—with code—in the role of a calling client to the new code, it clarifies our design.

September 21, October 19, December 7, 2006

For more information or to book your seat, visit Skills Matter.Audience:
Developers, chief architects, test engineers, technical leaders.

Skill with an object-oriented language.

Skills Matter
1 Sekforde Street
London EC1R 0BE

Upcoming training courses on Agile Project Management (London)

09.20.2006 · Posted in Training

Course Summary:
This practical, information-packed two-day course on the Application of Agile and Iterative Project Management has been authored by Craig Larman.The course summarises the key research, ideas, and practices of iterative development, for large or small projects, aimed at executive and project leadership.This is a high-impact guide for managers and students to agile and iterative development methods: what they are, how they work, how to implement them – and why you should.

September 19, October 17, December 5, 2006

Click here for more information.

Skills Matter
1 Sekforde Street
London EC1R 0BE

VersionOne global survey on the state of Agile Development

09.19.2006 · Posted in News

VersionOne recently conducted a global survey to highlight the value teams deliver from Agile development. Survey respondents work in companies of all sizes from small and mid-sized organizations to the largest global corporations. This survey summarizes the state of Agile Development in organizations covering every industry vertical from financial services, health care, and education to video games, government, and defense.

Read the results of the survey here.

Pulse Continuous Integration Server 1.1 Final

09.19.2006 · Posted in Advisories

Zutubi is pleased to announce version 1.1 of the Pulse continuous integration server. Pulse makes continuous integration easy by adapting to your existing build environment. The major new feature in Pulse 1.1 is support for distributed building. More than just remote building, Pulse allows you to configure a pool of agent machines to be managed by the master server. Builds can be configured to run against multiple agents in parallel, and can be dispatched to agents based on their capabilities. Other new features in Pulse 1.1 include real time build logs, changelist isolation, LDAP integration, dependent projects, incremental builds, linking to external tools, source code tagging, support for Xcode and much, much more.

Download and try Pulse today with a free 30-day evaluation license.

STAREAST 2007: May 14-18, Orlando Florida

09.14.2006 · Posted in Events

The Greatest Software Testing Conference on Earth!

STAREAST 2007: May 14-18, Orlando Florida

The Rosen Centre Hotel
9840 International Dr,
Orlando, Florida 32819

http://www.sqe.com/stareast/Emerging business needs, new customer demands, and market forces are driving the future of software. Expectations for quality are at an all time high. The STAR conference provides guidance and state-of-the-art best practices, tools, and services to software professionals faced with these quality challenges. We invite you to join us for the largest and most advanced testing forum, providing you with countless networking opportunities, exclusive access to solutions providers, and the chance to get up-close and personal with industry experts. The mission of this must-attend conference, now in its 15th year, is to help you make sense of trends, technologies, and strategies in the testing world today. Find answers to your questions about outsourcing, security, automation, and many of the other hot-topics in the industry. Come see what a STAR experience can do for you and your organization…

Better Software Conference & Expo: June 18-21 2007, Las Vegas, Nevada

09.14.2006 · Posted in Events

Beat the Odds on Your Next Software Development Project!

Better Software Conference & Expo:
June 18-21 2007, Las Vegas, Nevada

The Venetian Resort Hotel Casino
3355 Las Vegas Blvd. South
Las Vegas, NV 89109

http://www.sqe.com/bettersoftwareconf/Top 10 Reasons to Attend the Better Software Conference & EXPO

1) Discover the Latest in Software Development Technologies, Trends, and Practices
2) Learn Innovative Ways to Find the Right Balance of Plan-Driven and Agile Approaches
3) Find New Ways to Wisely Manage Your Software Projects and Teams
4) Discover New Measurement Approaches to Optimize Your Software Investment
5) Solve Your Serious Software Security Issues at the Source of the Problem
6) Gain Access to Leading Industry Experts Delivering the Latest Software Improvement Technologies
7) Benefit from Real-World Experiences of Leading Software Organizations
8) Participate in Networking Opportunities to Enhance Your Conference Experience
9) Attend the EXPO for the Latest Tools and Services to Help You Build and Deliver Better Software
10) Receive the Best Strategic Insight and Tactical Advice for Your Software Development Challenges

Are Open Source Software Tools Better than Commercial?

09.12.2006 · Posted in News

More and more developers are using development tools produced by the open source community like JUnit, MySQL, Eclipse, PHP or JBoss. A recent poll asked to compare the quality of open source and commercial software development tools. And the winner is… not obvious ;o)

Open source versus commercial tools 2006 (2004 answers)
Same quality: 38% (32%)
There is no easy answer to this question: 22% (24%)
Superior in quality: 20% (26%)
Inferior in quality: 12% 13%
I do not use open source tools: 6% (4%)
I do not use commercial tools: 2% (1%)
Participants: 524 (312)

Source: http://www.methodsandtools.comFor many participants, there is no difference in perceived quality between open source and commercial tools for software development. For 22% of the participants, it was difficult to give a precise answer. Diversity exists in both worlds and it is not easy to give a clear indication when you have experiences giving opposite indications. Things have not changed a lot since our 2004 poll, even if the usage of open source tools has surely increased in the mainstream development shop. This may be a reason of the 6% decline in percentage in the "OS software is better than commercial" category, as open source has been more used and could revealed some limits.

The claim that open source software is as good as commercial one seems easy to understand. Besides their open source label, there is little difference in the available support infrastructure between products like JBoss, PHP or MySQL and their commercial competitor. Backed by large companies like IBM, products like Apache or Eclipse will surely receive more testing than a small project in SourceForge. For open source software development tools, a large user base also increases the probability that associated professional services are created to provide commercial support and that the quality of the software is "commercially" managed.

For 20% of the participants, open source development tools are superior in quality to commercial ones. Besides the results of our informal pool, there have been some studies to compare the quality of open source and commercial products. Part of these studies have investigated a claim by many open source software advocates that their code quality was higher. Peer review and the amount of feedback from users are quoted as allowing open source software to achieve high quality results. When it decided to release some software in the open source world the NASA gives "to increase NASA software quality via community peer review " as its first motivation (see references). But if the size of the development team and a smaller user base could be a problem for small vendors, larger commercial organisations could also have implemented internal peer review and they have also a user community with adequate feedback channels. So why could the feedback loops and quality perception be better in the open source community?

Several factors could influence this perception:

– Developers and users (not customers!) have a higher sense of product’s ownership. They feel that they both contribute to something special and it is not "just a job" or "just a product"

– The relationship between users and developers are less confrontational because
a) money is not the matter
b) expectations are often different: the product is "younger" and… there is not a marketing organisation sometimes over-selling the benefits ;o)
c) open source organisations seems to have a better responsiveness to customers request/bugs as the process is more collaborative than confrontational

Some references on the quality of open source software:


JsTester 1.2 Released

09.12.2006 · Posted in Advisories

Dear TestDriven Community,
I’m pleased to announce that JsTester version 1.2 has been released.

Download | Documentation | Changes

JsTester allows validation of javaScript code inside java. It provides a group of assert methods like JUnit’s Assert, it also supports the validations described in http://javascript.crockford.com/remedial.html, and the ability to use your own validations (unary & binary predicates).


Added support for TestNG and JUnit 4
Updated the howto

Use jstester-1.2-jdk14 with JUnit 3.x and TestNG
Use jstester-1.2-jdk15 with JUnit 3.x/4.x and TestNG

Javadoc-JUnit: JUnit test documentor

09.11.2006 · Posted in Links

Javadoc-Junit is an Ant task which extends the optional JUnit Task and includes some Javadoc informations in the resulting JUnit test report.

The javadoc information is not directly retrieved from the test class source files, because the sources doesn’t need to exist during running the tests and generating the test reports.

To achieve this design goal, the needed javadoc informations are retrieved during a separate javadoc task with a special doclet. The javadoc informations are then serialized to files and stored with the class files themself. In this way only the class files with the serialized javadocs are needed to generate the javadoc-junit test reports.

testifIE: UI test automation tool for IE

09.11.2006 · Posted in Links

testifIE is an open-source based UI test automation offering for Microsoft Internet Explorer, offering record-and-playback functionality. Test cases can be recorded using testifIERecorder, or manually developed in simple XML, or in Java.

Testcase operations include execution of user actions, page state/element validation, and execution of plug-n-play custom hooks/code.

The testifIE runtime is integrated with junit, Apache Ant, and automates IE using Jiffie and JaCoB projects.

testifIE is trivial to install, easy to operate, and test cases are simple to maintain, thereby significantly reducing the total cost of Internet Explorer-based UI test automation.

Confix: make input file generator

09.11.2006 · Posted in Links

Confix does what is otherwise the job of the package maintainer: write input files for Automake and Autoconf. By examining the package source, it determines how to shape configure.in and the different Makefile.am files in the package in order to perform a clean build.

Imperfectly Agile: You Too Can Be Agile!

09.11.2006 · Posted in Links

People new to the idea of agile software development think that you can only be agile with small, co-located teams where you have no political constraints. Yes, that’s ideal, but most teams aren’t lucky enough to be in that situation. Does that mean they should give up on agile techniques? No! It means that they need to be smart about how they apply agile concepts and be as agile as possible given their current situation. Scott Ambler explores strategies that people have used when they found themselves in not-so-ideal situations.

Author: Scott Ambler
Published: Dr. Dobb’s, September 08, 2006


Avignon IE 1.2.5 Released

09.09.2006 · Posted in Advisories

Avignon is an open source tool that supports writing customer tests before coding has begun. The core module provides the ability to run tests through JUnit. Additional modules include more specialized components for testing HTTP applications through either IE or Firefox, .NET WinForm applications, and Java Swing Applications. The latest version of AvignonIE adds the ability to test file uploading and downloading.

Specter: A behaviour driven development framework for the Boo programming language

09.06.2006 · Posted in Links

Specter is an object-behaviour specification framework. It enables behaviour driven development by requiring developers to write executable specifications for their objects, before actually implementing them.

Technologically this is similar to test driven development, however the shift in nomenclature removes the psychological barrier of writing "tests" for code that does not exist.

Existing projects implementing this idea include RSpec for Ruby and NSpec for .NET.

junit-objects: regression & profiling framework for Java objects

09.06.2006 · Posted in Links

junit-objects is different from Junit in that it allows you to assert the state of objects and design patterns rather than the result of method calls. It should be seen as a replacement for previous unit testing frameworks.

* junit-objects focuses on testing objects: their structure, state and behavior.
* An object’s state is asserted with testing protocols.
* JO greatly reduces the amount of code in a unit-test in this manner; allowing you to "bolt on" (and reuse) assertion sequences anywhere, with no change to your test methods.
* When an object changes state (its properties and behavior), you can assert that the change is deterministic and well-behaved.
* JO profiles let you assert design patterns and anti-patterns to keep your objects consistent and well-behaved.
* Also use JO profiling to root out design entropy (let JO suggest where objects may benefit from using a particular design pattern).

Test Harness: Harness with GUI and control mechanism for Java

09.06.2006 · Posted in Links

You want to write tests, but hesitate because it will all be a bunch of hardly interpretable logprints in the end anyway? The Test Harness is developed to make it easier for us who like full control over testing, but want to be able to give the test environment to someone else to run from time to time. This is achieved by providing a very simple Java-based framework for writing the tests, while still providing a intuitive GUI to present results and manage what tests to run.

The test-cases are bundled in test-case folders and loaded into the GUI point-n-click style. And even though the test-cases are written in Java, the multitude of libraries available for that language makes it very easy to write tests to test anything from actual Java-code to SQL-databases or embedded systems. Pretty much every system than can communicate via a Java-compatible interface e.g. sockets, serial etc. can be tested with this harness.