Benchmarks go stale. Unsound shortcuts stay hidden.
One properties file. Bring your own source and sink APIs if you like.
Four mutation schemes, each probing a different blind spot.
A leak at every reachable spot — methods, inner classes, class fields.
Extra hops between source and sink, to outlast shallow analyses.
Source in one callback, sink in the next — onStart, then onResume.
Data shared across visibility scopes, leaked in parent and child.
From the CLI or the GUI — with filters that drop mutants that would waste your time.
APIs that throw are wrapped so mutants stay valid.
The JDK compiler weeds out mutants that won’t build.
Optional: an engine like CrashScope drops leaks that never run.
Check each tool’s report against µSE’s log. Every missed leak points to a soundness issue.