Go-fuzz: Randomized testing for Go
github.com
github.com
Dmitry Vyukov gave a great talk at Gophercon on go-fuzz and other dynamic analysis tools for go. Slides: http://go-talks.appspot.com/github.com/dvyukov/go-fuzz/slide...
The last thing I'm waiting for is mutation testing. There is this library: https://github.com/StefanSchroeder/Golang-Mutation-testing, but it hasn't received a lot of attention yet.
Mutation testing alters your code to verify that your test suite covers all potential simple programming mistakes. For example:
if val < otherVal {
could be mutated to if val <= otherVal {
If the test suite doesn't fail after this change, it means that the test coverage is missing a potential off-by-one error. Fuzzing is good for directly finding problems using randomized processes, and mutation testing is good for finding shortcomings in your test suite.Sadly, some people refuse to handle its results, which I simply cannot comprehend.