Home > Articles > Programming > Java

Test-Driven Development from a Conventional Software Testing Perspective, Part 3

  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Test-Driven Development: A Practical Guide

Like this article? We recommend
Test-Driven Development: A Practical Guide

After practicing TDD himself, Jonathan Kohl was ready to weigh in with his thoughts. In part 3 of this series, he talks about some of the controversy surrounding TDD and some TDD-related challenges, and provides thoughts for the future of testers working in this area.

The Need for Skepticism

After first learning about TDD from an expert programmer (described in part 1 of this series), and trying it out myself in test automation projects (described in part 2), I was in a position to think reflectively about what I had experienced.

In an industry that seems to look for silver-bullet solutions, it’s important for software testers to be skeptics. We should be skeptical of what we’re testing, but also of the methodologies, processes, and tools on which we rely. Most importantly, as testers we should be skeptical of our own testing practices, and strive for improvement.

One way in which we can strive to improve our own testing is by learning about other testing ideas. Test-driven development (TDD) is one area from which software testers of all kinds of backgrounds and skill sets can learn. I’ve seen some programmers make enormous improvements by using TDD in the work that they deliver. But I’ve also seen programmers place too much trust in TDD alone for testing, and be shocked when their software fails when run through basic, manual functional tests. Testers and developers can learn a lot from each other.

TDD is only part of the testing picture—it doesn’t encompass all testing, nor does it replace other testing techniques. Test-driven development requires skill, and as with any other activity, it can easily be performed badly.

I was once lamenting to a TDD developer about how hard it is to write automated functional tests. I complained about dependencies, buggy test code, timing issues, design considerations, how to test the test code, etc. The developer smiled and said, "All of those things exist in automated unit test development. It’s just as hard to do well as automated functional testing is."

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Related Resources

 Big Nerd RanchAsk Big Nerd Ranch: Blocks in Objective-C
By Big Nerd Ranch on June 24, 2010 No Comments

Adam Preble answers a question about blocks.

Danny KalevYves Smith: Suspicions that The Fed is manipulating Wall Street
By Danny Kalev on May 24, 2010 No Comments

Yves Smith, the nom de plume of the creator of Naked Capitalism and one of the most savvy and respected members of the blogosphere. In professional life Yves is known as Susan Webber. Yves recently gave an interview to an Israeli financial newspaper in which she claims that a federal team unofficially called "the plunge protection team" is manipulating the stocks on Wall Street.

 Big Nerd RanchAsk Big Nerd Ranch: Rotating an iPhone View Around a Point
By Big Nerd Ranch on May 20, 2010 No Comments

Brian Hardy answers a question about view rotation.

Sample code for this article is available in the Big Nerd Ranch github repository. The sample application demonstrates several techniques illustrated here, and works on iPhone or iPad.

Q. On iPhone OS, how can I rotate a view around an arbitrary point?

A. By default, views in Cocoa Touch (and Cocoa) are configured to rotate around their center point. While this is commonly useful (think of a UIActivityIndicatorView), often you will want to use a point other than the center. There are (at least) two ways of doing this. You can change the anchorPoint property of the view's layer. Alternatively, you can wrap the view in a superview, with the superview's center located at the point you want to rotate around. In either case, the mechanism for rotation is the same. Both techniques are discussed here.

See All Related Blogs

Informit Network