hbashton / hbashton/DS4Windows

Test coverage gaps surfaced by mutation testing (settings / profile / macro parsing)

Open
#37 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.