Estratégias para solucionar um erro que só acontece em um dispositivo específico

12

Como desenvolvedor Android, o mercado-alvo para o qual eu crio aplicativos é muito fragmentado. Embora eu possa especificar certos requisitos - por exemplo, meu aplicativo suporta apenas a versão Android xx ou superior, às vezes podem ocorrer erros evidentes apenas em um modelo de telefone específico.

Existem estratégias para lidar com erros específicos do dispositivo sem comprar o telefone em questão? Mantemos um conjunto de telefones para teste, mas não podemos dar ao luxo de sair e comprar um novo telefone quando 2 ou 3 usuários relatam que há um bug que ocorre apenas no modelo de telefone.

Tenho certeza de que outros desenvolvedores do Android encontraram problemas semelhantes no passado e estou curioso para saber quais estratégias econômicas estão disponíveis para ajudar a detectar erros específicos do dispositivo.

Atualize para adicionar alguns detalhes:

  • Eu uso o Bugsense para capturar relatórios de erros; portanto, sempre que houver exceções, conhecerei o modelo do telefone, o rastreamento da pilha, o número de vezes que isso aconteceu com meus usuários e alguns outros detalhes.
  • Os usuários podem estar localizados em países diferentes, então não posso assumir que poderei emprestar o telefone deles.

Imagine um cenário como este: 100 usuários instalaram o aplicativo, mas três pessoas reclamaram que um botão não funciona corretamente quando pressionado. Nenhum dos modelos de telefone que tenho para testar apresenta o problema. Não parece haver um emulador para o modelo do telefone com problema.

StackExchange O que diabos
fonte
2
Nossa incubadora local se uniu a uma empresa de telefonia celular local para criar uma biblioteca de telefones celulares para resolver exatamente esse problema - você pode encontrar algo semelhante em sua área (ou sugeri-lo a algumas pessoas apropriadas).
Hannele 28/03
Você levantou sua pergunta e pediu que ela fosse reaberta. Lembre-se de pensar muito na escolha de uma resposta.
Jeffo
para a referência: meta discussão sobre esta questão
mosquito

Respostas:

10

Anos atrás, eu costumava encontrar o mesmo problema no desenvolvimento de software para dispositivos Palm. Existem algumas estratégias óbvias:

  • Ajudar os usuários no teste - tenha um programa de teste beta, faça com que seu aplicativo forneça boas informações sobre erros e tenha uma boa maneira de relatar erros.
  • Usando emuladores específicos do dispositivo

Ambos são bastante limitantes, no entanto. Não há substituto infalível para ter o dispositivo real.

Uma coisa interessante que me deparei é a AppThwack , uma empresa que permite testar remotamente centenas de dispositivos Android reais. Não tenho experiência com isso pessoalmente, mas parece promissor (também é uma forte indicação de que não há uma resposta fácil e barata para o seu problema).


fonte
1
+1 para AppThwack. Eles têm vários dispositivos e você pode direcionar seus testes em determinados pools de dispositivos. Você pode instruir a instrumentação a tirar capturas de tela e obter logs de falha para cada dispositivo. É um bom substituto para não ter todos os dispositivos conhecidos em mãos (=
David Cowden
+1 no "melhor programa de testes", eu tinha um no meu aplicativo Android de rastreamento de bateria. Quando o enviei para um usuário que estava obtendo resultados bizarros e obtive a saída de depuração, foi um momento extremamente WTF: ele de alguma forma estragou o telefone de tal forma que o próprio Android estava relatando 60% da bateria em um minuto, 40% no próximo , 80% no próximo, e ele continuou pulando. Não é possível fazer nada nesse ponto do aplicativo para corrigi-lo, eles precisavam consertar o telefone.
Izkata 30/03
-1

Infelizmente, não há uma resposta fácil para esse problema.

refinar @ dan1111 answer Como os usuários ajudam no teste para o Android

  • adicione muitas instruções de log em seu aplicativo Android que registram informações importantes de contexto à
    • agora abrindo o banco de dados "/data/data/my.namespace.com/databases/myDatabase.db" ou
    • agora chamando webservice "my.server.com/loadingOrder(id=22)"
  • peça ao usuário para instalar o alogcat no dispositivo que pode ler o log de depuração local e instrua-o como configurar o filtro para rastrear a origem do problema e enviar o log para você.
k3b
fonte
qual é o objetivo de instalar o alogcat, enquanto o OP diz que eles já têm algo assim: "use o Bugsense para capturar relatórios de erros; portanto, sempre que houver exceções, conhecerei o modelo do telefone, o rastreamento da pilha, o número de vezes que ele aconteceu com meus usuários e mais alguns detalhes ... "
gnat 27/03