Support unavailable
Please try again later

TDM: Test-Driven Madness

by Rob Collins for

Testing anti-patterns: the things to avoid!

Imagine someone who really disliked testing. This is what they might say…

There is much talk of the need for agile development, supported by tests. Agile is great. No tasks set in advance, no Microsoft Project plans to feed with wild guesses. But “supported by tests”? Forget political correctness, let me say it now:

Tests just slow us down.

So much time and money has been wasted. Testing is one of those “sadder investments"**. In this talk, I will explain why most testing should be shunned.

First, I will reluctantly detail the supposed best practices for test-driven development, behaviour-driven development, hiding-to-nothing development, test coverage, white-box testing, pink-box testing, A-B testing, integration testing, not-my-fault injection, regression testing, smoke testing, performance testing, usability testi… Oh, I give up. There are hundreds of ways to waste good development time!

These will all be a mouth-cleansing starter in preparation for the main course: Test-Driven Madness (or TDM, pronounced: “tedium”). This new technique guarantees

  • rapid development
  • job security.

Writing tests takes time: some developers write more test code than functional code. Clearly this doubles the work load and slows down development. Surely testing is the job of the QA department? Unit tests are particularly pointless, since they duplicate what is covered by integration tests. And the number of integration tests can commonly be reduced to just one large test per requirement. If that passes, then all the code must be working. So let’s quickly move on to implement the next feature!

Not writing tests avoids false positives. Look at the trouble that testing caused for food retailers. Do you really want to discover the unimportant small percentage of horsemeat code that might be hidden in your modules, implicitly labelled as lines of good Python? Better you don’t know.

And testing is morally wrong. For many years, people have campaigned against testing on animals. They say it’s cruel, unnecessary, and animals don’t have a choice. In software development, animal testing hasn’t so far been a big problem. But now we have a chance to stop the cruelty of testing on developers, who think they have no choice. You can help these poor sufferers, by joining TDM!

For the sweet trolley of the meal, I will show you hints and tips you wouldn’t want to miss. There are workarounds for many problems. For instance, we will cover the situation when you have some intermittent failures in your code, looking at undervalued techniques in Python for eliminating errors, such as

try:
    do_something_raising_an_intermittent_exception()
except:
    pass

Managers need features. They can enthusiastically put a “New Feature” up on the company web site. They’re not going to get extra customers from putting “Reliable New Feature”. It’s the features that sell a product, and the company needs to make sales to stay in business. Go with the flow: vapourware is king. Reliability can catch up later, preferably when customers are too committed to the product features to be able to back out.

Motivation

Lack of testing in TDM is closely coupled with lack of documentation. Use of Sphinx and other such ‘cool’ tools are really a waste of productive time when you could be adding new features. You know how your code works, and if there is minimal documentation, another advantage is that you will always be the one required to make any changes. Like comprehensive tests, documentation just makes it easier for other developers to take over and put you out of a job. Keep it brief, ignore PEP8, and use single-character global variable names wherever possible. Less typing == more features. Obviously.

In summary, come along and find out why writing tests is such a bad idea. Instead, use TDM, the complete meal, because it works. Mostly.

Change your life with coding TDM, because testing is what customers are for!

============================================

Visit http://www.testdrivenmadness.com to find out about your nearest TDM course (for the low price of $1200/day, courtesy of subsidies from my sponsors, <insert-company-name>, the proud inventors of test-free software.)

All TDM course participants will be eligible for an IT NERD VEST** with a slogan chosen from:

  • I love TDM
  • You nit! Testing??
  • Breathe again — test-free zone.

**(anagram)

in on Tuesday 2 July at 14:30 See schedule

Do you have some questions on this talk? Leave a comment to the speaker!

New comment

Language
EN
Duration
60 minutes (inc Q&A)

Tagged as

bdd XP testing tdm tdd
Our Sponsors
Spotify
Python Experts
SSL Matrix
Wanna sponsor?