History Of Programmer Test

The ProgrammerTest was previously known as a UnitTest. Compare this to CustomerTest, previously known as AcceptanceTest, previously known as FunctionalTest.
Why do the names keep changing?

Because the XpCelebrity?s grew their process from pre-existing practices with pre-existing names. But careful name selection now teaches ExtremeProgramming faster, without detracting from those tangential practices.

In the beginning, unit test meant tests written to test a unit in isolation.

Programmers started writing them as they wrote code, to avoid bug hunts.

As ExtremeProgramming and similar Agile lifecycles crystalized, they kept the name.

But those steeped in the tradition of formal testing know that a ProgrammerTest is not a UnitTest. The latter has a formal checklist that programmers don't need to worry about, and which testers do. (For more about the difference, see XpVsStandardDefinitionOfUnitTest.)

So, to prevent confusion, name the tests after who specifies them. Programmers write ProgrammerTests, the OnsiteCustomer writes CustomerTests, and the QualityControl department extends both to produce UnitTests and FunctionalTests.

Sorry about the confusion.

Do programmers in the wild really now use the term 'programmer test'?

I'm fairly wild. -- PhlIp

That sounds more like something that's supposed to test the programmer!

I presume because they aren't quite synonyms: A UnitTest measures a unit of software, without specifying why. A ProgrammerTest assists programmers in development, without specifying how.

These things happen. ResourceAcquisitionIsInitialization went through a long episode of this - the name isn't a particularly good description of the idiom, and the idiom itself has a number of hybrids addressing different concerns, plus the usual discord about which names were supposed to apply to which idioms, and vice versa.

That, or perhaps just because the words that make up the names are in the common domain, and thus subject to misinterpretation through lost context. Names like Wiki don't have this problem, except perhaps for a limited audience of Hawaiian programmers. Maybe the tests should be named Fred?

JANICE: Dr. Bob, you've given this hospital a bad name.

DR BOB: You're right. Fred is a terrible name for a hospital. I'll give it a better name. How 'bout Eunice?

-- The Muppet Show

I think JUnit sounds better than JProgrammer. -WayneMiller

Sorry for prolonging the debate, but how about EngineeringTests? to go along with EngineeringTasks? They test the engineering. Then we can keep AcceptanceTests, which I always thought was a perfectly decent name anyway, although CustomerTests seems to be just as understandable. StoryTests? may be another alternative for the-practice-formerly-known-as-AcceptanceTests.


View edit of February 16, 2005 or FindPage with title or text search