Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
diem
Diem’s mission is to build a trusted and innovative financial network that empowers people and businesses around the world.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
There’s some ‘got’ and ‘want’ pointers in https://github.com/golang/go/wiki/TestComments .
But yeah, I didn’t even realize this was a very Google thing :).
Does anyone have experience with Gopter, a Golang Property Based testing library? https://github.com/leanovate/gopter
Go tests and benchmarks are so easy to write and run: just add TestFoo and BenchmarkFoo functions to a bar_test.go file, and "go test" does the rest. It's currently doable, but it requires a 3rd party library (go-fuzz) and a bit of fluffing around. This will make fuzz testing an equally first-class citizen with standard Go tooling (just add FuzzFoo), and as such we'll probably see a lot more people testing with fuzzing.
I used go-fuzz in GoAWK and it found several bugs (see https://benhoyt.com/writings/goawk/#fuzz-testing), and almost everyone who's done fuzz testing has similar reports. Certainly go-fuzz has found many, many bugs in Go itself: https://github.com/dvyukov/go-fuzz#trophies
For what it's worth, I wrote an article for LWN about the upcoming support for built-in fuzzing in Go: https://lwn.net/Articles/829242/ (of course, if you want full details, read the full proposal).
Fuzzing is still very relevant in Rust. It tends to find panics rather than segfaults, but that's still bugs.
Just to add, we're a heavy user of fuzzing in Diem[1] and we found a good number of bugs thanks to it : )