Use cases
Wherever the usual way in does not exist.
The pattern is always the same. There is a screen, there is a keyboard, and there is no supported way to automate what is between them. Eight shapes account for most of what people bring us.
The seventh shape
Where recording the mouse and keyboard is not enough.
A macro recorder replays what happened once. It cannot look at the screen, so it cannot tell whether any of it worked. That is fine until the machine does something slightly different, which it will, and the recorder keeps going regardless.
What we replace each with
Why this one is personal
We ran a typing benchmark across five trials and it produced a clean-looking table. Every keystroke had gone into the wrong window. The intended target had lost focus, and nothing in the numbers said so. That is the macro failure mode exactly: the work did not happen, the run reported success, and only a check against the screen could have told the difference. It is why the loop verifies focus and state before it acts, and aborts rather than proceeding when it cannot.
The eighth shape
Testing what the user sees, not what the application says it drew.
A test framework reaches into the program: an accessibility tree, a document model, an automation interface. That is a privileged channel, and what it tests is the program's own account of itself. This reads the screen, from outside, on the hardware the software will actually ship on.
What it catches that an instrumented test cannot
And one measurement nothing else gives you
How long after an input the user can see the result. We take it the same way we take our own figures: a keyboard or pointer action, then the first frame in which the region changes. It is measured at the glass, so it includes the parts a code-level timer never sees, and it is the number a person actually experiences as the interface feeling quick or slow.
The same rig gives you a regression test for it. A build that gets slower to respond fails on a number rather than on somebody's impression.
What it is not
It is slower than an instrumented test and it is not a replacement for unit or integration testing. Use it for the last mile: acceptance on real hardware, and the cases a framework cannot see. It also reads pixels, so a deliberate change to the interface fails the test until the expectation is updated. That is a real cost, and it is the same property that makes it notice a change nobody intended.
Before you plan around any of these
Several of the shapes above touch industrial equipment. The interface must not be relied on where a failure could injure someone or cause serious loss, and it is not a safety instrumented system. The full statement, together with what the interface cannot do at all, is on the safety page.