Go Assembly Mutation Testing
9 months ago
- #Cryptography
- #Testing
- #Go
- The Go cryptography standard library emphasizes extensive testing to maintain security.
- Testing assembly code is challenging due to its constant-time nature, making traditional code coverage ineffective.
- For Go 1.26, a mutation testing framework is being introduced to identify untested assembly code paths.
- Mutation testing modifies the program to check if tests fail, ensuring code paths are effectively tested.
- The framework mutates assembly instructions to simulate different flag conditions, revealing untested scenarios.
- Initial testing on arm64 P-256 assembly uncovered untested instructions, highlighting the need for better test coverage.
- The mutation testing tool is integrated into the Go assembler, allowing targeted mutations during testing.
- The project is supported by Geomys, funded by companies like Smallstep, Ava Labs, and Tailscale.