InfoQ

News

Archeology: Testing Sacred Text Found

Posted by Deborah Hartmann on Apr 28, 2007 08:48 PM

Community
Agile
Topics
Agile Techniques
Tags
TDD ,
Testing ,
Fun
Alberto Savoia of Agitar Software has found and translated for the Artima Blog an ancient treasure: "The Way of Testivus - Unit Testing Wisdom From An Ancient Software Start-up," which turned out to be some good advice on developer and unit testing, packaged as twelve fake, pretentious, and somewhat cryptic bits of ancient Eastern wisdom  - but good for a laugh.

Subtitled "Less Unit Testing Dogma, More Unit Testing Karma," the article recounts the tale of a Himalayan expedition that uncovered an unprecedented text:
Among the many amazing things they discovered inside the cave was the most amazing thing: a note left by one of the programmers:
“We have finished the release ahead of schedule – again. All the tests pass, so we are taking the rest of the week off. We are going sailing.”
What was the secret of these ancient programmers? The expeditioners searched each cubicle for clues. In addition to various Dilbert™ calendars, they found “The Way of Testivus”. Who wrote this mysterious booklet?

Is the content of this text responsible for these ancient programmers being able to complete projects ahead of schedule?
The article includes the full text of The Way of Testivus, including explanations and profound poetry for each of the 12 principles:

If you write code, write tests.
Don’t get stuck on unit testing dogma.
Embrace unit testing karma.
Think of code and test as one.
The test is more important than the unit.
The best time to test is when the code is fresh.
Tests not run waste away.
An imperfect test today is better than a perfect test someday.
An ugly test is better than no test.
Sometimes, the test justifies the means.
Only fools use no tools.
Good tests fail.


Here is just a sample from The Way of Testivus:
The pupil asked the master programmer:
“When can I stop writing tests?”

The master answered:
“When you stop writing code.”

The pupil asked:
“When do I stop writing code?”

The master answered:
“When you become a manager.”

The pupil trembled and asked:
“When do I become a manager?”

The master answered:
“When you stop writing tests.”

The pupil rushed to write some tests.
He left skid marks.

If the code deserves to be written,
it deserves to have tests.


Related news:
Good Agile Karma by Gunjan Doshi & Deborah Hartmann.

Related Sponsor

VersionOne is recognized by Agile practitioners as the leader in Agile project management tools. Companies such as Adobe, BBC, CNN, Dow, HP, IBM, Sony and 3M have turned to VersionOne to help deliver greater value to their customers.

No comments

Watch Thread Reply

Educational Content

Bindings, Platforms, and Innovation

This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.

Orchestrating Long Running Activities with JBoss / JBPM

This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.

Neo4j - The Benefits of Graph Databases

This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.

Realistic about Risk: Software development with Real Options

This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.

Communication Flexibility Using Bindings

This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.

Writing DSLs in Groovy

After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.

Scaling Agile with C/ALM (Collaborative Application Lifecycle Management)

IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.

Concurrent Programming with Microsoft F#

Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.