Stratégies pour résoudre une erreur qui ne se produit que sur un appareil spécifique

12

En tant que développeur Android, le marché cible pour lequel je crée des applications est très fragmenté. Bien que je puisse spécifier certaines exigences - par exemple, mon application ne prend en charge que la version Android xx ou supérieure, des erreurs peuvent parfois se produire qui ne sont évidentes que sur un modèle de téléphone spécifique.

Existe-t-il des stratégies pour gérer les erreurs spécifiques à l'appareil, sans acheter le téléphone en question? Nous maintenons une suite de téléphones pour les tests, mais nous ne pouvons pas nous permettre d'acheter un nouveau téléphone lorsque 2 ou 3 utilisateurs signalent qu'il y a un bug qui ne se produit que pour leur modèle de téléphone.

Je suis sûr que d'autres développeurs Android ont rencontré des problèmes similaires dans le passé, et je suis curieux de savoir quelles stratégies rentables sont disponibles pour aider à éliminer les bogues spécifiques aux appareils.

Mettez à jour pour ajouter quelques détails:

  • J'utilise Bugsense pour capturer les rapports de bogues, donc chaque fois que des exceptions sont levées, je connais le modèle du téléphone, la trace de la pile, le nombre de fois où cela est arrivé à mes utilisateurs et quelques autres détails.
  • Les utilisateurs peuvent être situés dans différents pays, je ne peux donc pas supposer que je pourrai jamais emprunter leur téléphone.

Imaginez un scénario comme celui-ci: 100 utilisateurs ont installé l'application, mais trois personnes se sont plaintes qu'un bouton ne fonctionne pas correctement lorsqu'il est enfoncé. Aucun des modèles de téléphone que j'ai pour tester ne connaît le problème. Il ne semble pas y avoir d'émulateur pour le modèle de téléphone à problème.

StackExchange What The Heck
la source
2
Notre incubateur local s'est associé à une société de téléphonie mobile locale pour créer une bibliothèque de téléphones portables pour résoudre exactement ce problème - vous pourrez peut-être trouver quelque chose de similaire dans votre région (ou le suggérer à certaines personnes appropriées).
Hannele
Vous avez défendu votre question et demandé qu'elle soit rouverte. Veuillez vous assurer de réfléchir autant au choix d'une réponse.
JeffO
pour la référence: méta discussion de cette question
gnat

Réponses:

10

Il y a des années, je rencontrais le même problème lors du développement de logiciels pour les appareils Palm. Il existe quelques stratégies évidentes:

  • Demander aux utilisateurs d'aider avec les tests - avoir un programme de test bêta, demander à votre application de fournir de bonnes informations sur les erreurs et d'avoir un bon moyen de signaler les bogues.
  • Utilisation d'émulateurs spécifiques à l'appareil

Les deux sont cependant assez limitatifs. Il n'y a aucun substitut infaillible pour avoir l'appareil réel.

Une chose intéressante que j'ai rencontrée est AppThwack , une entreprise qui vous permet de tester à distance des centaines de vrais appareils Android. Je n'ai aucune expérience avec cela personnellement, mais cela semble prometteur (c'est aussi une forte indication qu'il n'y a pas de réponse facile et bon marché à votre problème).


la source
1
+1 pour AppThwack. Ils ont des tonnes d'appareils et vous pouvez diriger vos tests vers certains pools d'appareils. Vous pouvez demander à l'instrumentation de prendre des captures d'écran et vous obtenez des journaux de plantage pour chaque appareil. C'est un très bon substitut pour ne pas avoir tous les appareils connus sous la main (=
David Cowden
+1 pour le "meilleur programme de test", j'en avais un pour mon application Android de suivi de batterie. Quand je l'ai envoyé à un utilisateur qui obtenait des résultats bizarres et a obtenu la sortie de débogage, c'était un moment extrêmement WTF: il avait en quelque sorte foiré son téléphone de telle sorte qu'Android lui-même rapportait 60% de batterie une minute, 40% la suivante , 80% le suivant, et il ne cessait de sauter. Je ne peux rien faire à ce stade de l'application pour le réparer, ils devaient réparer leur téléphone.
Izkata
-1

Malheureusement, il n'y a pas de réponse facile à ce problème.

pour affiner @ dan1111 answer Demander aux utilisateurs d'aider avec les tests pour Android

  • ajoutez de nombreuses instructions de journal dans votre application Android qui enregistrent des informations de contexte importantes à la
    • ouverture de la base de données "/data/data/my.namespace.com/databases/myDatabase.db" ou
    • appelant maintenant webservice "my.server.com/loadingOrder(id=22)"
  • demandez à l'utilisateur d'installer alogcat sur l'appareil capable de lire le journal de débogage local et de lui indiquer comment définir le filtre pour suivre la source du problème et vous envoyer le journal.
k3b
la source
quel est l'intérêt d'installer alogcat, alors qu'OP dit qu'ils ont déjà quelque chose comme ça: "utilisez Bugsense pour capturer les rapports de bugs, donc chaque fois que des exceptions seront levées, je connais le modèle du téléphone, la trace de la pile, le nombre de fois est arrivé à mes utilisateurs, et quelques autres détails ... "
gnat