What is Hopper, what it does and why are we so interested in its results?

Hopper is a software test tool that simulates random user input on mobile devices providing a sometimes meaningful mean time to failure (MTTF) number. It is designed to find bugs and is not intended to run scenario tests or do "specific user things" - it is completely random.

Hopper stresses the entire device and will execute anything accessible through the UI many, many times. It has no knowledge of where it is at any time and has limited ability to detect poor system health. Hopper executes randomly, thus different bugs might be encountered each time the tool runs. Fixing enough bugs to impact MTTF may take many runs. Reproducing specific runs and/or finding the particular bug that caused any specific failure can prove to be difficult.

While Hopper excels at finding system stability bugs quickly, it was never designed to debug or diagnose the source of any particular problem. It utilizes a "system snapshot" log at regular intervals which can help you understand fault.

Determining device MTTF via stress testing and debugging is a simple process: run a stress tool until the device fails, diagnose the failure, fix the bug, and re-start the stress tool. In theory, each time a bug gets fixed, MTTF increases because the tool runs longer without a failure.