Automated verification.
WHAT TEST TYPES EXIST
Unit tests, for logic Interface tests, driving the application Performance tests, measuring specific operations
WHAT FRAMEWORKS ARE AVAILABLE
The long-standing framework, and a newer one using modern language features.
WHAT TO TEST AS UNITS
Business logic and view models, with dependencies substituted.
WHAT TO SUBSTITUTE
Network, storage, time and randomness.
WHY TIME AND RANDOMNESS
Otherwise tests fail intermittently, and intermittent tests get ignored.
WHAT INTERFACE TESTS COST
Slowness and fragility.
WHAT THAT MEANS
Few of them, covering the most important paths.
WHAT MAKES THEM FRAGILE
Locating elements by position or label text that changes.
WHAT TO USE INSTEAD
Accessibility identifiers, set deliberately.
WHAT ELSE THAT ACHIEVES
Better accessibility, since identifiers and labels are needed anyway.
WHAT PERFORMANCE TESTS PROVIDE
A recorded baseline, failing when performance regresses.
WHAT TO RUN AUTOMATICALLY
The suite, on every change.
WHAT TO TEST ON
Several simulator configurations, and a physical device before release.