Hi Diffblue team!
I frequently catch myself writing only “good weather tests” for my modules, but skipping out on edge cases – e.g. tests passing in
null or values outside the method’s domain, covering exception cases. These “bad weather tests” are tedious to write, and usually I would want them to look similar to my existing good weather tests, and just modify a few mocks or input values. So whenever I force myself to write them, it ends in a boring copy-paste exercise, playing around with inputs to cover unexpected scenarios.
Hence my idea: Could the Diffblue Cover plug-in be extended by a mutation mode, where I could right-click on an existing test and select “Generate more tests like this”? Diffblue would use my existing test as a harness and try various mutations, e.g. different values for literals it finds in the existing test, with the goal of covering previously uncovered branches. This would also have the benefit that my good weather tests can serve as a template, giving me control of how I want the generated tests to look.
Let me know what you think!