Estrategias para solucionar un error que solo ocurre en un dispositivo específico

12

Como desarrollador de Android, el mercado objetivo para el que creo aplicaciones está muy fragmentado. Si bien puedo especificar ciertos requisitos, por ejemplo, mi aplicación solo es compatible con la versión de Android xx o superior, a veces pueden ocurrir errores que solo son evidentes en un modelo de teléfono específico.

¿Hay alguna estrategia para manejar errores específicos del dispositivo, sin comprar el teléfono en cuestión? Mantenemos un conjunto de teléfonos para realizar pruebas, pero no podemos darnos el lujo de comprar un nuevo teléfono cuando 2 o 3 usuarios informan que hay un error que solo ocurre en su modelo de teléfono.

Estoy seguro de que otros desarrolladores de Android han encontrado problemas similares en el pasado, y tengo curiosidad por saber qué estrategias rentables están disponibles para ayudar a eliminar errores específicos del dispositivo.

Actualice para agregar algunos detalles:

  • Utilizo Bugsense para capturar informes de errores, por lo que cada vez que se produzcan excepciones sabré el modelo del teléfono, el seguimiento de la pila, la cantidad de veces que le ha sucedido a mis usuarios y algunos otros detalles.
  • Los usuarios pueden estar ubicados en diferentes países, por lo que no puedo asumir que alguna vez podré tomar prestado su teléfono.

Imagine un escenario como este: 100 usuarios han instalado la aplicación, pero tres personas se quejaron de que un botón no funciona correctamente cuando se presiona. Ninguno de los modelos de teléfono que tengo para probar experimenta el problema. No parece haber un emulador para el modelo de teléfono con problemas.

StackExchange What the Heck
fuente
2
Nuestra incubadora local se asoció con una compañía local de telefonía celular para crear una biblioteca de teléfonos móviles para resolver exactamente este problema: es posible que pueda encontrar algo similar en su área (o sugerirlo a algunas personas apropiadas).
Hannele
Usted defendió su pregunta y solicitó su reapertura. Asegúrate de pensar lo suficiente en elegir una respuesta.
JeffO
para la referencia: meta discusión de esta pregunta
mosquito

Respuestas:

10

Hace años, me encontraba con el mismo problema al desarrollar software para dispositivos Palm. Hay un par de estrategias obvias:

  • Hacer que los usuarios ayuden con las pruebas : tenga un programa de pruebas beta, haga que su aplicación brinde buena información sobre errores y tenga una buena manera de informar errores.
  • Usar emuladores específicos del dispositivo

Sin embargo, ambos son bastante limitantes. No hay un sustituto seguro para tener el dispositivo real.

Una cosa interesante que encontré es AppThwack , una compañía que te permite probar de forma remota cientos de dispositivos Android reales. No tengo experiencia con esto personalmente, pero parece prometedor (también es una fuerte indicación de que no hay una respuesta fácil y barata a su problema).


fuente
1
+1 para AppThwack. Tienen toneladas de dispositivos y puede dirigir sus pruebas a ciertos grupos de dispositivos. Puede indicar a la instrumentación que tome capturas de pantalla y obtendrá registros de fallos para cada dispositivo. Es un buen sustituto para no tener todos los dispositivos conocidos a la mano (=
David Cowden
+1 para el "mejor programa de prueba", tenía uno para mi aplicación de Android de seguimiento de batería. Cuando lo envié a un usuario que estaba obteniendo resultados extraños y obtuve la salida de depuración, fue un momento extremadamente WTF: de alguna manera había estropeado su teléfono de tal manera que el propio Android informaba 60% de batería en un minuto, 40% al siguiente , 80% el siguiente, y seguía saltando. No se puede hacer nada en ese punto de la aplicación para solucionarlo, necesitaban reparar su teléfono.
Izkata
-1

Lamentablemente, no hay una respuesta fácil a este problema.

para refinar la respuesta de @ dan1111 Hacer que los usuarios ayuden con las pruebas para Android

  • agregue muchas declaraciones de registro en su aplicación de Android que registren información de contexto importante a la
    • ahora abriendo la base de datos "/data/data/my.namespace.com/databases/myDatabase.db" o
    • ahora llamando al servicio web "my.server.com/loadingOrder(id=22)"
  • solicite al usuario que instale alogcat en el dispositivo que pueda leer el registro de depuración local e indique cómo configurar el filtro para rastrear el origen del problema y enviarle el registro.
k3b
fuente
cuál es el punto de instalar alogcat, mientras que OP dice que ya tienen algo así: "use Bugsense para capturar informes de errores, así que cada vez que se produzcan excepciones sabré el modelo del teléfono, el seguimiento de la pila, la cantidad de veces que le ha sucedido a mis usuarios, y algunos otros detalles ... "
mosquito