Reasons Why Programmers Do Not Test

by Brian M. Coyner

Some programmers simply refuse to test. This baffles me but it's true. Here are some of their excuses:

  • It's too hard

  • I don't know how

  • I have to get this done now

  • The code I am writing is simple

  • It takes too long

I hear at least one of these excuses per week on my current project. Unfortunately we are not pair-programming, so individual programmers must be self-motivated to write tests. There are only a handful of programmers (less than 3 out of about 30) that actually write tests. I believe pair programming bridges the gap between the testers and non-testers, forcing non-testers to become testing ninjas.

I agree that testing is hard and often takes longer to complete a feature. The benefit of having a complete test suite outweighs the alternative, which is not to write tests at all.

Here are a few ways I try to motivate programmers to write tests (with some success):

  • When they ask for help, I ask them to explain it with a test

  • Sit down with them (temporarily pair up) to implement the feature test-first

  • Constantly praise (to programmers and management) how writing tests makes programming easier and more fun