Andrey Kucherenko
Creator and curator of training platform for developers - https://startupemulator.com/. Math.random() community leader - https://t.me/mathrandomcommunity Engineer with more than 21 years of experience in IT.
My activities
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.[1] 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 killingthe 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.
Language | Framework |
---|---|
Java | PiTest |
Ruby | Mutant |
PHP | Humburg/Infection PHP |
C# | VisualMutator |
Python | Cosmic Ray/ MutPy |
LLVM | Mull |
and TypeScript
npm install -g stryker-cli
stryker init
stryker run
export class CountService {
sum(a, b) {
return a + b;
}
divide(a, b) {
return a / b;
}
modulo(a, b) {
return a % b;
}
}
describe('Count Service', () => {
let sut;
beforeEach(() => {
sut = new CountService();
})
it('should sum numbers', () => {
expect(sut.sum(2, 2)).toEqual(4);
});
it('should get divided numbers', () => {
expect(sut.divide(2, 1)).toEqual(2);
})
});
Questions?
By Andrey Kucherenko
Creator and curator of training platform for developers - https://startupemulator.com/. Math.random() community leader - https://t.me/mathrandomcommunity Engineer with more than 21 years of experience in IT.