# Done-Test Checks: Standalone and Installed Applications

**Check library, version 1.** Rows to lift into the [done-test template](https://mangrove.co.uk/templates/done-test-template.md). Covers desktop, mobile and anything else that runs on a machine you do not control. Take what applies, delete the rest, and put a number in every threshold.

## The problem this solves

A web application can be fixed in an afternoon. An installed one cannot: the version in the field stays there until the user acts, and every version you have ever shipped is still running somewhere. So the checks that matter are less about features and more about **install, update and recovery**, which are precisely the ones a feature demo skips.

## Install and update

| ID | Check | Evidence | Pass |
|---|---|---|---|
| I1 | Installs cleanly on every platform and version in [the named matrix], performed by the client on their own machine | Live install by client | |
| I2 | Uninstalls completely, leaving [defined residue: user data kept or removed as specified] | Live | |
| I3 | Update from the previous released version preserves user data and settings | Live upgrade from [version] | |
| I4 | Binaries are signed and pass the platform's security gate without a warning to the user | Live install, no warning shown | |
| I5 | A released version can be rolled back or pinned if a defect is found post-release | Documented and demonstrated | |

**On I3.** Test the upgrade path, not just the clean install. Clean installs always work; upgrades are where the data loss is.

## Runtime

| ID | Check | Evidence | Pass |
|---|---|---|---|
| U1 | Behaves correctly with no network and with an intermittent one: [defined offline capability], no data loss, and reconciliation on reconnect | Live with network disabled | |
| U2 | Starts in under [N]s on the minimum specified hardware | Timed live on that hardware | |
| U3 | Memory and CPU stay within [N] over a [N]-hour session, with no leak | Profiler output over the period | |
| U4 | Survives being force-quit mid-operation without corrupting local data | Live force-quit | |
| U5 | Respects platform conventions the spec names: [permissions, notifications, background behaviour, dark mode] | Live | |

## Support and diagnosis

The rows that decide whether the client can support the thing or has to call you.

| ID | Check | Evidence | Pass |
|---|---|---|---|
| Z1 | Crashes are reported to [named service] with a stack trace and version, and a test crash appears there within [N] | Test crash shown arriving | |
| Z2 | A user can produce a diagnostic bundle in [N] steps, and it contains what support needs without personal data | Live | |
| Z3 | The running version is visible to the user and to support | Live | |
| Z4 | Local data is stored in [named location] in [named format] and can be backed up and restored by the user | Live backup and restore | |
