What Radforge does
Code coverage shows which lines ran. Radforge asks a different question: would the tests fail if covered behavior changed?
New to the approach? Learn how mutation testing works, including how to interpret killed and surviving mutations.
Radforge finds mutation candidates in supported source files and selects tests for each candidate. A mutation can reverse a condition, change a return value, or move a boundary. A test failure kills the mutation. If every selected test passes, the mutation survives and Radforge reports it as a finding.
Local CLI and GitHub App
Section titled “Local CLI and GitHub App”The CLI selects source files, mutation candidates, and tests from your repository. It uploads that plan with a snapshot of Git-tracked files. Radforge executes the mutation tests on hosted infrastructure, so the run does not use your local CPU or memory.
The GitHub App triggers mutation tests for new pull requests in selected repositories. Radforge publishes the result as a GitHub check.
Main workflows
Section titled “Main workflows”rad filetargets one Go, TypeScript, or JavaScript source file.rad planprints a one-file Go, TypeScript, or JavaScript plan without executing it.rad changedtargets Go, TypeScript, or JavaScript source files selected from a Git diff.rad scopetargets an explicit list of Go, TypeScript, or JavaScript source files selected by you or another tool.rad remotesubmits plans and retrieves run status and findings.- The GitHub App starts Go, TypeScript/JavaScript, or Python runs for supported pull requests and publishes GitHub checks.
Choose the workflow that matches your language and source scope.
A survivor means the selected tests did not catch that change. It does not prove that the code is wrong. Review the change, add a test if the behavior matters, and rerun the affected file or Git diff.