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

Нельзя полностью протестировать приложение и избавиться от всех багов. Даже если вы думаете, что всё протестировано - это точно не так. В приложении всегда найдутся уязвимые места.

Самые распространенные - это часовые пояса и размер шрифта, это все задается в настройках вашего девайса.

1. Шрифт

Можно свернуть приложение, зайти в системные настройки телефона и изменить размер шрифта. Если выбрать очень большой текст, то, вероятнее всего, в вашем “полностью протестированном приложении” поплывет интерфейс. Ниже на рисунках представлены примеры.

​До изменения шрифта
​До изменения шрифта
После изменения шрифта​
После изменения шрифта​

На данных скриншотах видно, что текст накладывается на текст, становится трудно читать. Ну и вообще смотрится очень некрасиво.

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

На скриншоте выше текст вообще обрезался и его невозможно прочитать (был выбран режим для слепых в специальных возможностях, максимальный размер текста).

2. Дата и время

Если в приложении есть какие-либо таймеры или другая связь со временем, также можно в системных настройках изменить дату, время или часовой пояс, и данные в приложении изменятся.

До перевода​
До перевода​
После перевода​
После перевода​

Изначально было время 10:55, затем было переведено время на 5 часов назад. Счетчики в приложении также изменились. Обычно это работает в offline режиме во многих приложениях.

Многие игры на мобильные телефоны, у которых жизни копятся за определенное время, можно “обмануть”, переведя время. Ниже расписан порядок действий для обхода системы:

1. Открываем игру

2. Отключаем интернет (если возможно играть в режиме offline)

3. Сворачиваем игру

4. Заходим в системные настройки телефона и меняем время (переводим время вперед на определенное количество часов)

4. Заходим в игру

Должны быть все жизни (или сколько вы намотали временем). Но это чревато последствиями: при включении интернета администрация может заметить ваши махинации и, возможно, будут предприняты определенные меры или же просто может произойти какой-либо сбой. Так что лучше проводить все эти махинации offline, а включать интернет через некоторый промежуток времени (когда пройдет то время, на которое вы переводили) или же совсем не заниматься таким, а просто подождать пока жизни сами накопятся :)

3. Другие случаи

Можно вызвать сбой, если на андроиде дать разрешение в приложении на использование чего-либо (например, камера или доступ к файловой системе), затем свернуть приложение и в системных настройках зайти в данное приложение и вручную отключить разрешение.

Если быстро нажимать разные кнопки или же одновременно нажимать, есть вероятность, что в приложении также произойдет сбой. Желательно блокировать такую возможность: добавлять индикаторы загрузки, блокировать UI после нажатия и прочее, чтобы у пользователя не было возможности вызвать сбой приложения.

После поворота девайса приложение может вести себя некорректно или же не совсем четко отрисовываться интерфейс. В таком случае, если ТЗ не требует альбомной ориентации, можно просто заблокировать альбомную ориентацию, по крайней мере на телефонах (из-за неудобного использования и маленького экрана). Многие юзеры часто используют планшеты в альбомной ориентации, поэтому для планшетов, в большинстве случаев, нужно правильно обрабатывать перерисовку экрана при смене ориентации.

Также нужно не забывать про некорректные данные. Нужно лишний раз избегать ввода некорректных данных: делать regex или использовать определенный вид клавиатуры. Например, если требуется ввести диапазон страниц, нужно запрещать вводить буквы (неважно каким способом, главное чтобы работало стабильно и правильно). Стоит помнить, что даже пустая строка, точка или запятая в каком-либо поле могут вызвать некорректное поведение или сбой.

Заключение

Вряд ли обычный пользователь будет заниматься такими вещами, но на всякий случай следует предостеречься: по крайней мере обработать случаи, когда приложение просто падает (закрывается с надписью “произошел сбой” - на Android устройствах, на iOS просто закрывается без каких-либо сообщений). Сбой, crash или падение (можно называть по-разному) является критическим багом. Ниже на рисунке показано диалоговое окно, когда приложение падает (только в кавычках название определенного приложения).

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

В завершенном приложении ни в коем случае не должно быть таких сбоев. Пользователю это не понравится, он может оставить плохие отзывы и удалить приложение. Другие увидят плохие оценки и вовсе не будут устанавливать приложение, что приведет к потере пользователей.

Разработчику ̶т̶р̶у̶д̶н̶о̶ невозможно обработать все условия, особенно когда юзер меняет что-либо в системных настройках, поэтому стоит более ответственно относиться к тестированию и не пропускать важные моменты. Ведь качество приложения очень важно в настоящее время.

P. S. Скриншоты сделаны с приложения Foamline Transport из нашего портфолио:

Начать дискуссию