Хитрости тестирования

Нельзя полностью протестировать приложение и избавиться от всех багов. Даже если вы думаете, что всё протестировано - это точно не так.
В приложении всегда найдутся уязвимые места. Самые распространенные - это часовые пояса и размер шрифта, это все задается в настройках вашего девайса.
1. Шрифт
Можно свернуть приложение, зайти в системные настройки телефона и изменить размер шрифта. Если выбрать очень большой текст, то, вероятнее всего, в вашем "полностью протестированном приложении" поплывет интерфейс. Ниже на рисунках представлены примеры.
До изменения шрифта
После изменения шрифта
На данных скриншотах видно, что текст накладывается на текст, становится трудно читать. Ну и вообще смотрится очень некрасиво.
На скриншоте выше текст вообще обрезался и его невозможно прочитать (был выбран режим для слепых в специальных возможностях, максимальный размер текста).
2. Дата и время
Если в приложении есть какие-либо таймеры или другая связь со временем, также можно в системных настройках изменить дату, время или часовой пояс, и данные в приложении изменятся.
До перевода
После перевода
Изначально было время 10:55, затем было переведено время на 5 часов назад. Счетчики в приложении также изменились. Обычно это работает в offline режиме во многих приложениях.
Многие игры на мобильные телефоны, у которых жизни копятся за определенное время, можно "обмануть", переведя время. Ниже расписан порядок действий для обхода системы:
  1. Открываем игру
  2. Отключаем интернет (если возможно играть в режиме offline)
  3. Сворачиваем игру
  4. Заходим в системные настройки телефона и меняем время (переводим время вперед на определенное количество часов)
  5. Заходим в игру

Должны быть все жизни (или сколько вы намотали временем). Но это чревато последствиями: при включении интернета администрация может заметить ваши махинации и, возможно, будут предприняты определенные меры или же просто может произойти какой-либо сбой. Так что лучше проводить все эти махинации offline, а включать интернет через некоторый промежуток времени (когда пройдет то время, на которое вы переводили) или же совсем не заниматься таким, а просто подождать пока жизни сами накопятся :)
3. Другие случаи
Можно вызвать сбой, если на андроиде дать разрешение в приложении на использование чего-либо (например, камера или доступ к файловой системе), затем свернуть приложение и в системных настройках зайти в данное приложение и вручную отключить разрешение.
Если быстро нажимать разные кнопки или же одновременно нажимать, есть вероятность, что в приложении также произойдет сбой. Желательно блокировать такую возможность: добавлять индикаторы загрузки, блокировать UI после нажатия и прочее, чтобы у пользователя не было возможности вызвать сбой приложения.
После поворота девайса приложение может вести себя некорректно или же не совсем четко отрисовываться интерфейс. В таком случае, если ТЗ не требует альбомной ориентации, можно просто заблокировать альбомную ориентацию, по крайней мере на телефонах (из-за неудобного использования и маленького экрана). Многие юзеры часто используют планшеты в альбомной ориентации, поэтому для планшетов, в большинстве случаев, нужно правильно обрабатывать перерисовку экрана при смене ориентации.
Также нужно не забывать про некорректные данные. Нужно лишний раз избегать ввода некорректных данных: делать regex или использовать определенный вид клавиатуры. Например, если требуется ввести диапазон страниц, нужно запрещать вводить буквы (неважно каким способом, главное чтобы работало стабильно и правильно). Стоит помнить, что даже пустая строка, точка или запятая в каком-либо поле могут вызвать некорректное поведение или сбой.
Заключение
Вряд ли обычный пользователь будет заниматься такими вещами, но на всякий случай следует предостеречься: по крайней мере обработать случаи, когда приложение просто падает (закрывается с надписью "произошел сбой" - на Android устройствах, на iOS просто закрывается без каких-либо сообщений). Сбой, crash или падение (можно называть по-разному) является критическим багом. Ниже на рисунке показано диалоговое окно, когда приложение падает (только в кавычках название определенного приложения).
В завершенном приложении ни в коем случае не должно быть таких сбоев. Пользователю это не понравится, он может оставить плохие отзывы и удалить приложение. Другие увидят плохие оценки и вовсе не будут устанавливать приложение, что приведет к потере пользователей.
Разработчику ̶т̶р̶у̶д̶н̶о̶ невозможно обработать все условия, особенно когда юзер меняет что-либо в системных настройках, поэтому стоит более ответственно относиться к тестированию и не пропускать важные моменты. Ведь качество приложения очень важно в настоящее время.
Спасибо за внимание!