This post originated from an RSS feed registered with Agile Buzz
by Keith Ray.
Original Post: Testable Design
Feed Title: MemoRanda
Feed URL: http://homepage.mac.com/1/homepage404ErrorPage.html
Feed Description: Keith Ray's notes to be remembered on agile software development, project management, oo programming, and other topics.
Roy Osherove writes (with examples) about how design improvements can make software testable. I know some readers will complain that these design changes somehow "weaken" the design, but they need to look at the bigger picture. In each example that Roy gives, the refactored (more easily testable) code has now separated concerns that were tightly-coupled. Tightly-coupled is bad.
Repeat after me: "Tightly-coupled code is bad."
Quote:
Hereâs my current definition of a testable system:
"For each logical part of the system, a unit test can be written relatively easily and quickly that satisfies all the following PC-COF rules at the same time:
Partial runs are possible Consistent results on every test run Configuration is unneeded before run Order of tests does not matter Fast run time"