JanusGraph / JanusGraph/janusgraph
Add support for mutation testing
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
Mutation testing can uncover ineffective tests or uncovered conditions without significant manual effort by mutating source code before running the tests and seeing if they still pass.
Per [Wikipedia](https://en.wikipedia.org/wiki/Mutation_testing):
> Mutation testing (or Mutation analysis or Program mutation) is used to design new software tests and evaluate the quality of existing software tests. Mutation testing involves modifying a program in small ways. Each mutated version is called a _mutant_ and tests detect and reject mutants by causing the behavior of the original version to differ from the mutant. This is called _killing_ the mutant. Test suites are measured by the percentage of mutants that they kill. New tests can be designed to kill additional mutants. Mutants are based on well-defined _mutation operators_ that either mimic typical programming errors (such as using the wrong operator or variable name) or force the creation of valuable tests (such as dividing each expression by zero). The purpose is to help the tester develop effective tests or locate weaknesses in the test data used for the program or in sections of the code that are seldom or never accessed during execution. Mutation testing is a form of white-box testing.
There is a list of [mutation testing tools](https://en.wikipedia.org/wiki/Mutation_testing#External_links) at the bottom of that article.
Here are [a few examples](https://github.com/louismrose/java-mutation-examples) of running various mutation testing tools for Java projects.
Contributor guide
Research direction
Start by reviewing the mutation-testing overview in the issue and the linked Java mutation examples, then compare the listed mutation-testing tools with JanusGraph's Java testing setup. Define which tool or integration is intended and what mutant-killing results would count as done; the issue does not name files, tests, or an entry point.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100