security-credentials-hibp
PIT mutation report for security-credentials-hibp, rendered from the module’s
mutations.xml. See Architecture → Quality
for the cross-module comparison and all modules.
53%
mutation coverage
68%
test strength
38/74
mutations killed
18
survived
17
no coverage
Mutators
Kill rate per mutation operator — where the test suite is strong and where mutants slip through.
| Mutator | Killed | Total | Kill rate |
|---|---|---|---|
NegateConditionals | 16 | 26 | |
NullReturnVals | 7 | 14 | |
ConditionalsBoundary | 1 | 13 | |
Math | 10 | 13 | |
VoidMethodCall | 0 | 3 | |
BooleanTrueReturnVals | 1 | 2 | |
BooleanFalseReturnVals | 1 | 1 | |
PrimitiveReturns | 1 | 1 | |
EmptyObjectReturnVals | 1 | 1 |
Surviving mutants 35
Each row is a real gap: a bytecode change the tests did not catch. Class · line · operator.
| Class | Line | Mutator | Mutation |
|---|---|---|---|
HaveIBeenPwnedCompromisedPasswordChecker | 111 | NegateConditionals | negated conditional (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 112 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 115 | ConditionalsBoundary | changed conditional boundary (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 115 | ConditionalsBoundary | changed conditional boundary (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 115 | NegateConditionals | negated conditional (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 115 | NegateConditionals | negated conditional (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 116 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 119 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 121 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 124 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 127 | VoidMethodCall | removed call to java/lang/Thread::interrupt (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 128 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::lambda$usingJdkHttpClient$0 (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 132 | NullReturnVals | replaced return value with null for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::usingJdkHttpClient (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 154 | VoidMethodCall | removed call to java/util/Arrays::fill |
HaveIBeenPwnedCompromisedPasswordChecker | 155 | NegateConditionals | negated conditional |
HaveIBeenPwnedCompromisedPasswordChecker | 156 | VoidMethodCall | removed call to java/util/Arrays::fill |
HaveIBeenPwnedCompromisedPasswordChecker | 168 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 170 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 170 | NegateConditionals | negated conditional |
HaveIBeenPwnedCompromisedPasswordChecker | 172 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 172 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 177 | ConditionalsBoundary | changed conditional boundary (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 177 | NegateConditionals | negated conditional (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 180 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 191 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 191 | Math | Replaced integer subtraction with addition |
HaveIBeenPwnedCompromisedPasswordChecker | 191 | NegateConditionals | negated conditional |
HaveIBeenPwnedCompromisedPasswordChecker | 196 | BooleanTrueReturnVals | replaced boolean return with true for com/svenruppert/vaadin/security/credential/compromised/hibp/HaveIBeenPwnedCompromisedPasswordChecker::equalsIgnoreCaseRange (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 211 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 213 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 213 | ConditionalsBoundary | changed conditional boundary |
HaveIBeenPwnedCompromisedPasswordChecker | 216 | NegateConditionals | negated conditional |
HaveIBeenPwnedCompromisedPasswordChecker | 217 | NegateConditionals | negated conditional |
HaveIBeenPwnedCompromisedPasswordChecker | 221 | NegateConditionals | negated conditional (no coverage) |
HaveIBeenPwnedCompromisedPasswordChecker | 241 | Math | Replaced integer multiplication with division |