Student - Kevin Patel
Organisation - Checkstyle
Mentors - Roman Ivanov, Ruslan Diachenko, Vyom Yadav
- Mutation Testing is a type of Software Testing that is performed to design new software tests and also evaluate the quality of already existing software tests. Mutation testing is related to modification a program in small ways. It focuses to help the tester develop effective tests or locate weaknesses in the test data used for the program.
-
PIT is a state-of-the-art mutation testing system, providing gold standard test coverage for Java and the JVM. It’s fast, scalable, and integrates with modern test and build tooling.
-
Checkstyle recently introduced a number of new mutators to our mutation testing suite After the creation of a new system, all existing suppressions were killed.
-
For this project, Checkstyle needs these suppressions reviewed to identify if any new tests or test input can be identified to resolve them and show the code is still functionally sound. This may require diving into the logic of the modules to either assist in identifying with a test or leading to resolution on what to do with the suppression.
FindingBugs/error
- Helps to find the bugs in existing source code. ex :- Null pointer Exception in UnusedLocalVariableCheck found because of Mutation.
Test cases
- The good strength of test can be created for ex :- Mutation killed in OneStatmentPerLineCheck, Mutation killed in IllegalInstantiationCheck
Code removal
- Removal of the code which doesn't create a significance in source code for ex :- Mutation in DetailAstImpl, Mutation in ImportOrderCheck
- Pitest really creates a significance value for the source code. but within that their is some disadvantages also their. We have listed all the side effect of Pitest in one issue in provided link with a good description and mentioned Pull request where we found this. Bad Side Effect of Pitest.
- You can find all my work in the Pull Requests submitted to Checkstyle.
Total Mutation :- 571
Killed Mutation :- 424+
Not Possible To cover :- 36
I am really very thankfull to the community to give me the opportunity to be part of this programme. I am very thankfull to all my mentor Roman Ivanov, Ruslan Diachenko, Vyom Yadav for helping me during the programme to figure out the situation where I was stuck and also to help to complete the project.