stryker-mutator / stryker-net

Mutation testing for .NET core and .NET framework!
https://stryker-mutator.io
Apache License 2.0
1.75k stars 176 forks source link

Mutation of >= and <= into == #2842

Open jeangsc opened 5 months ago

jeangsc commented 5 months ago

Example:

Code tested: public static bool Is18OrOlder(int age) { return age >= 18; }

Existing tests: [Fact] public void Minor_Test() { Assert.False(AgeControl.Is18OrOlder(0)); }

[Fact] public void Equal_Test() { Assert.True(AgeControl.Is18OrOlder(18)); }

Both of them pass green when >= is replaced by == , the mutation into == should force the programmer to write a test for higher value than 18 in our example

richardwerkman commented 5 months ago

We currently place 2 mutations for >= (<= and >). The <= mutation already forces the programmer to write a test for the value higher than 18.

As far as I know we tackle all edge cases with these 2 mutations. But if we could simplify by just placing 1 mutation that would improve our performance. We could look into, if this mutation covers the same edge cases.