Ответ 1
Я основываю этот совет на факте, что вы столкнулись с крахом, связанным с увольнением пользовательского интерфейса, и что ваши клиенты находятся в производстве, поэтому нет возможности специально настроить систему на то, чтобы разобраться в проблеме.
Я предлагаю использовать ваше приложение и делать заметки о всех событиях, когда события касания приводят к отклонению диалога, меню или popover. Затем выясните, какие другие события касания могут произвести тот же эффект, и какие события касания прослушиваются, но не логически, что вы ожидаете от пользователя.
Например, для popover вы обычно касаетесь пункта меню popover, и он отклоняется. Но как насчет того, чтобы снова нажать заголовок popover (чтобы отключить его), или нажмите за пределами popover (что означает, что вы отключите popover)?
Другим примером является то, что пользователь должен сделать выбор в меню, но есть кнопка возврата, которую они могут нажать, чтобы выполнить резервное копирование. Возможно, вы не используете систему таким образом, но пользователи могут нажать в таких местах.
Наконец, если вы выполняете автоматизацию пользовательского интерфейса, вы можете попробовать Monkey Testing. То есть напишите script (или загрузите одну из реализаций с открытым исходным кодом), которая случайным образом нажимает на экран. Пусть он запускается в вашем приложении и видит, что он трясет - обычно он находит проблемы с touch в даже надежных приложениях.