TDD and Coupling

Listen to this post

In TDD, the test suite can serve as a tool for quantitatively analyzing the qualities present (or absent) in the production code.

One example: A test will need to access the production entity that it is testing, obviously. However, sometimes a test needs to access another entity or entities as well, even though they are not currently under test. We sometimes refer to these collectively as a “fixture” for the test.

Some tests have no fixture. The entity in question can be tested entirely on its own. Business rules are often like this. Some tests have a small fixture of an entity or two. Some have large fixtures of many entities.

Fixtures are a measurement of coupling. Look at a given test suite, total the size of the fixtures overall, and divide by the number of tests. This is a measurement of the coupling in the system being tested. Is it large? There is a lot of coupling.

This is not to say that all coupling is bad. But a large average should raise a concern and indicate that coupling is an issue worth looking into.

This is just one example. Tests not only provides a mechanism for analyzing the problem, but also the quality of the solution, and this analysis can be far more concrete than we usually experience. Numbers are numbers.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.