Break an application four ways and find each cause from evidence

short · 40 min · Objective 3.1

Task

Produce four distinct application faults on the guest -- a missing runtime, a permissions failure, a corrupt per-user configuration and a failed installation -- and diagnose each from the evidence rather than from knowing. The second-account test appears in every one of them, which is the point.

Steps

  1. Install an application that needs a runtime, remove the runtime, and record the symptom and the exact error in lab/apps/faults.csv with header fault,symptom,exact_error,evidence_source,cause.
  2. Restrict permissions on an application's installation folder or its data folder, reproduce the failure, and add the row.
  3. Rename or corrupt the application's per-user configuration folder, reproduce, and add the row.
  4. Run an installation that fails -- insufficient space or a locked file -- capture the installer log, and add the row naming the log line that gave the reason.
  5. For each fault, run the second-account test and record the result in lab/apps/scope.csv with header fault,works_in_new_profile,conclusion.

Verify

awk -F, 'NR>1 && NF>=5 {n++} END {print n" fault(s)"}' lab/apps/faults.csv
awk -F, 'NR>1 && $3!="" {n++} END {print n" fault(s) with exact error text"}' lab/apps/faults.csv
awk -F, 'NR>1 {print $4}' lab/apps/faults.csv | sort -u | wc -l
awk -F, 'NR>1 && NF>=3 {n++} END {print n" scope test(s)"}' lab/apps/scope.csv
awk -F, 'NR>1 {print $2}' lab/apps/scope.csv | sort -u | wc -l

Four faults with exact error text from at least two distinct evidence sources, and scope tests producing at least two different answers. If the new profile behaves identically for all four, one of the faults is not the kind you think it is.

Notes

Rename rather than delete when testing a configuration folder. The application rebuilds it, and the original settings are recoverable if the fault turns out to be elsewhere -- which is also the right habit on a real machine.

This is an independent study companion for CompTIA A+ Core 2 220-1202 and is not produced by or endorsed by CompTIA.