hbashton / hbashton/DS4Windows
Test coverage gaps surfaced by mutation testing (settings / profile / macro parsing)
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 272
- Forks
- 10
- Avg merge
- 13d 5h
- Merged PRs (30d)
- 1
Description
I ran mutation testing over the DS4Windows test suite and it surfaced some real coverage gaps — a fair amount of behaviour in the settings / profile / macro-parsing code compiles fine but isn't actually asserted by any test. Wanted to flag it and offer to fill some of it in, as small focused PRs so they're easy to review.
Rough picture (mutation score = the share of injected faults a test caught):
| area | score | what's mostly unasserted |
|---|---|---|
AppSettingsDTO |
43% | the XML …String setters (bool/enum.TryParse → assign) |
ProfileDTO |
14% | large; lots of logic (comparisons, arithmetic, object init) |
MacroParser |
21% | parse output |
ProfileMigration |
28% | migration steps |
Mapping |
0% | huge file, almost no coverage — probably out of scope for now |
Plan is a few test-only PRs (no behaviour changes, so no perf impact), starting with round-trip deserialization tests for AppSettingsDTO. Happy to do as many or as few as you'd like — this issue can track them. Totally fine to say no, or to point me at an area you'd rather I prioritise.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue identifies AppSettingsDTO, ProfileDTO, MacroParser, and ProfileMigration as coverage targets; begin with round-trip deserialization tests for AppSettingsDTO and its XML …String setters. Done means focused test-only PRs assert the relevant behavior and improve mutation-test detection without changing production behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- testing
- Issue type
- Refactor
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100