I’ve been a big fan of #MutationTesting since I discovered PIT. As I dive deeper into #Rust, I wanted to check the state of mutation testing in Rust.
I’ve been a big fan of #MutationTesting since I discovered PIT. As I dive deeper into #Rust, I wanted to check the state of mutation testing in Rust.
#AWS (#Amazon)
#Google (yeah, they have very talented developers, but still a big #privacy
)
#Zoom, #MicrosoftTeams
Meta (#Facebook)
#AI/ #GenAI/ #GenerativeAI
privacy
code quality (#UnitTesting, #MutationTesting)
CI/CD
LAMP
Hamburg (relocation possible to some extent)
Position: Full-stack web developer
Backend: #PHP (#Laravel)
Frontend: #HTML, #CSS, #JavaScript (#VueJS)
nice to have: #openSource
#a11y
#UX
In a previous life, I was a big fan of #mutationtesting.
I found these two crates in #Rust for this:
* cargo-mutants: https://mutants.rs/
* mutagen: https://github.com/llogiq/mutagen
Has anybody any experience with any of them? Or something else?
Fun fact about #MutationTesting in #PHP: code that follows FP-style with strong types and low CCLOC generates much less mutants, and is therefore much faster to check!
For example:
* https://github.com/Roave/BackwardCompatibilityCheck/actions/runs/6274521918/job/17040089494 - 1.75m MT run
* https://github.com/maglnet/ComposerRequireChecker/actions/runs/6253376694/job/16978645679 - 18.25m MT run
The second codebase is also much smaller than the second, yet takes much more time! The coding style uses a lot of loops and conditionals though, and the number of mutants generated increases geometrically with code complexity.
#TCR (Test && Commit || Revert) makes for very cheap #MutationTesting. I wasn't sure whether the thing I had done was covered by tests, since I didn't know enough about my tools to write a failing test. (forgetting to add a mandatory relation on create should generate a `not null violation` - programming error). So made it work by clicking around, debugging and modifying. Removed the code that made it work and got a bunch of failing tests. TCR reverted my removal and I'm back! #MyElixirStatus
Pitest 1.10.0 has just been released. It includes some major internal changes which should improve support for quarkus and roboelectric projects.