Стратегии для устранения ошибки, которая происходит только на определенном устройстве

12

Как разработчик Android, целевой рынок, для которого я создаю приложения, очень фрагментирован. Хотя я могу указать определенные требования - например, мое приложение поддерживает только версию Android xx или выше, иногда могут возникать ошибки, которые очевидны только для одной конкретной модели телефона.

Существуют ли какие-либо стратегии для обработки ошибок, связанных с конкретным устройством, без покупки соответствующего телефона? Мы поддерживаем набор телефонов для тестирования, но не можем позволить себе выйти и купить новый телефон, когда 2 или 3 пользователя сообщают, что существует ошибка, возникающая только для их модели телефона.

Я уверен, что другие разработчики Android сталкивались с подобными проблемами в прошлом, и мне любопытно, какие экономически эффективные стратегии доступны, чтобы помочь устранить специфичные для устройства ошибки.

Обновление, чтобы добавить несколько деталей:

  • Я использую Bugsense для записи отчетов об ошибках, поэтому всякий раз, когда выдаются исключения, я буду знать модель телефона, трассировку стека, количество раз, которое это происходило с моими пользователями, и некоторые другие подробности.
  • Пользователи могут находиться в разных странах, поэтому я не могу предположить, что когда-нибудь смогу позаимствовать их телефон.

Представьте себе такой сценарий: 100 пользователей установили приложение, но три человека пожаловались, что кнопка не работает должным образом при нажатии. Ни одна из моделей телефона у меня для тестирования не испытывала проблемы. Похоже, что для проблемной модели телефона эмулятор отсутствует.

StackExchange, что, черт возьми
источник
2
Наш местный инкубатор совместно с местной компанией сотовой связи создал библиотеку мобильных телефонов, чтобы решить именно эту проблему - вы можете найти что-то похожее в вашем регионе (или порекомендовать это некоторым подходящим людям).
Ханнель,
Вы встали на свой вопрос и попросили, чтобы его снова открыли. Пожалуйста, убедитесь, что вы уделили много внимания выбору ответа.
JeffO
для справки: мета обсуждение этого вопроса
комнат

Ответы:

10

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

  • Попросите пользователей помочь с тестированием - имейте программу бета-тестирования, ваше приложение должно дать хорошую информацию об ошибках и иметь хороший способ сообщать об ошибках.
  • Использование эмуляторов для конкретного устройства

И то и другое довольно ограниченно. Там нет верной замены для фактического устройства.

Одна интересная вещь, с которой я столкнулся, - AppThwack , компания, которая позволяет вам удаленно тестировать сотни реальных устройств Android. У меня нет опыта лично, но это выглядит многообещающе (это также убедительный признак того, что нет простого, дешевого ответа на вашу проблему).


источник
1
+1 за AppThwack. У них есть тонны устройств, и вы можете направить свое тестирование в определенные пулы устройств. Вы можете поручить инструментарию делать скриншоты, и вы получаете журналы сбоев для каждого устройства. Это довольно хорошая замена того, что не все известные устройства под рукой (=
Дэвид Кауден,
+1 за «лучшую программу тестирования», у меня была одна для моего приложения Android для отслеживания заряда батареи. Когда я отправил его пользователю, который получал странные результаты и получил результаты отладки, это был крайне неприятный момент: он каким-то образом испортил свой телефон так, что сам Android сообщал о 60% заряда батареи в одну минуту, 40% в следующую. , 80% следующий, и он просто продолжал прыгать вокруг. В этот момент в приложении ничего сделать нельзя, чтобы исправить это, им нужно было починить телефон.
Изката
-1

К сожалению, нет простого ответа на эту проблему.

уточнить @ dan1111 ответить Помощь пользователей в тестировании на Android

  • добавить много операторов журнала в вашем Android-приложении, которые регистрируют важную контекстную информацию
    • сейчас открывается база данных "/data/data/my.namespace.com/databases/myDatabase.db" или
    • теперь вызывает веб-сервис "my.server.com/loadingOrder(id=22)"
  • попросите пользователя установить alogcat на устройстве, которое может прочитать локальный журнал отладки, и указать ему, как установить фильтр для отслеживания источника проблемы и отправить вам журнал.
k3b
источник
какой смысл устанавливать alogcat, в то время как OP говорит, что у них уже есть что-то подобное: «используйте Bugsense для захвата отчетов об ошибках, поэтому всякий раз, когда выдаются исключения, я буду знать модель телефона, трассировку стека, сколько раз он случилось с моими пользователями, и еще несколько деталей ... "
gnat