Unit testing frameworks like JUnit are a popular and effective way to prevent developer bugs. We are investigating two ways of building on these frameworks to prevent more bugs with less effort. First, characterization tools summarize observations over a large number of executions, which can be checked by developers, and added to the test suite if they specify intended behavior. Second, theories are developerwritten statements of correct behavior over a large set of inputs, which can be automatically verified. We outline an integrated toolset for characterization and theory-based testing, and frame further research into their usefulness. Categories and Subject Descriptors D.2.5 [Software Engineering]: Testing and Debugging—tools General Terms Verification, Human Factors Keywords Theories, JUnit, testing, partial specification