Description
The reason to write, and run, tests on the code is to detect bugs before the code is being used by the customer. Too often, this purpose is forgotten when deciding how, and what, to test. What makes a good test? What makes a good test-suite? How can you measure it?
By modeling tests as a "classifier", where the label is "buggy" or "not buggy", the general theory of classification can be applied. The basics of the theory, such as precision, recall, and F-score, will be explored, as well as how it applies to test suites. Specific techniques for measuring test quality, using tools such as mutation testing, tracing, and CI systems, will be presented.