I have worked on two large projects now that both had grown large and complex testing frameworks. When I work on projects, I like to see strong test suites; they help me feel more confident that any changes I make to the code base won't cause regressions/bugs. This is important because in many legacy code bases, features become tangled and disorganized due to deadlines and scope creep. We've all been there, so we know how such things come to be. At first glance, the test suites looked pretty good. Coverage was not documented well, but I could tell that the tests did a good job at covering most important cases and a lot of edge cases. As I started to dig into the test suites, however, I noticed both projects had a common problem -- the complexity of the test suite grew in a different direction than the intention of application it was meant to test. I get frustrated when this happens because such suites leave me confused about things like the true lif...