September 10, 2024
Mutator
-
Fix NPE when creating value ranges in EMS that involve infinity.
Mutator
-
Java 11 support.
-
Advanced equivalent-mutant suppression (EMS).
Mutator
-
Shading of plugin dependencies to avoid compatibility issues.
-
Separation of major.jar (mutator plugin) and major-rt.jar (runtime
configuration).
-
Prevent a runtime exception for statement-deletion mutants in dead code.
Mutation analyzer
-
All Ant dependencies now live in lib/ant to avoid polluting the
mutation analyzer's classpath with mutator classes.
Documentation
-
Added missing images (doc/img) to properly render doc/major.html.
Mutator
-
Added logging of character offset (in addition to line number) for each mutant.
-
Fixed incorrect log lines for "COR" mutants that mutated identifiers
to TRUE or FALSE.
Mutator
-
Migrated mutator to being a (Java-8) javac plugin.
-
Support automated AST refactoring to address code-too-large errors
when mutating large methods or declarations.
-
Fine-grained logging of mutant generation and mutant context.
-
Various bug fixes and improvements to mutation operators.
Mutation analyzer
-
Allow individual preprocessing and analysis runs.
-
Persist preprocessing results (coverage information) for reuse.
-
Support inclusion/exclusion of individual mutants and/or tests.
Mutator
-
Fix for type casts: propagate type information such that the type of
the type cast expression matches the type of the mutated expression.
Mutator
-
Export more fine-grained AST context information for mutants.
Mutation analyzer
-
Smaller memory footprint for the Ant-based analyzer.
-
Properly label mutants that time out to avoid rerunning them again.
Mutator
-
Don't apply the EVR mutation operator to null expressions.
Mutation analyzer
-
Added a new command-line analyzer (beta version).
Mutator
-
Export of AST context information: for each generated mutant, what is
its parent context, data type context, and children context.
Mutation analyzer
-
Smaller documentation improvements.
Mutator
-
Fix for the EVR mutation operator: EVR can't be applied to a return
statement of a method whose return type is void.
Mutation analyzer
-
Major's kill matrix now provides the kill reason (assertion,
exception, timeout) for each mutant-test execution.
-
Added a new configuration option (timeoutOffset) to define a minimal
test timeout regardless of the runtime of that test on the original
version of the code.
Major's DSL (MML)
-
Support for targeting a set of overloaded methods (by name)
or a particular method (by signature).
-
Support for enabling/disabling the LVR mutation operator for specific
types of literals (numerical, boolean, and String literals).
-
Support for enabling/disabling the STD mutation operator for specific
types of statements (method call, assignment, increment, decrement,
break, continue, return)
Mutator
-
Fix for the COR mutation operator: ternary operators, whose
conditions have no logical connectors, are now properly mutated.
For example, isFlag() in int a = isFlag() ? 1 : -1
is replaced by true and false.
-
New EVR (Expression Value Replacement) operator:
replaces an expression (in an otherwise unmutated
statement) with a default value.
Mutation analyzer
-
Support for Java 8.
-
Support for parameterized unit tests, when running test methods in
isolation (i.e., sort="sort_method").