There is one tool that I haven’t found an open source project for or a commercial product. I think that it would be quite useful in creating dependable software. I would like to see for evaluating unit tests. It would be something like a Lint or Static analysis tool – but for the tests themselves.
Some of the features that I would imagine that would make this tool useful in evaluating tests for the particular cases:
- Seek out infinite loop cases
- Check bounds on parameters
- Duplicate test cases [are there redundant test cases]
- If exceptional cases are tested
- Evaluate for bad parameters
- Evaluate potential recursion issues.
This would differ from a code coverage tool, because a coverage tool is only effective for evaluating what isn’t covered by tests. The tool I’m suggesting would be responsible for making sure that the tests are effective, and would handle potential pitfalls in input and common programmatic areas.
My question to the reader: Does this already exist? Are there any new open source projects starting up that are designed to tackle this problem?
If not – how hard would it be to adapt existing analysis tools/testing frameworks, and where would you approach starting the development?