// c'est plus une liste de tâches plus que tout en ce moment
Introduction
Entrées de texte
Autres entrées (case à cocher, commutateurs, commandes mutuellement exclusives)
Gestion des erreurs (exceptions, accidents, alertes, affichage des erreurs)
Navigation (push, pop, onglets, modal, rotation d'écran)
Contexte (état enregistré, carte de tremplin)
Connectivité (WiFi, bord lent, 2G, 3G, 4G, intermittent, zéro-octets, mode hors ligne) et connectivité matérielle (USB, NFC, Bluetooth, WiFi)
Localisation (du texte et des images, dans divers paramètres sur la langue du téléphone par rapport à la langue de l'application par rapport à la région actuelle)
Interruptions (appels acceptés, refus d'appels, envoi / réception de SMS, cycle d'alimentation, redémarrer, envoyer / recevoir la notification, les alertes, la mémoire faible, l'écran d'accueil, les applications de commutation, le mode plan, hors de stockage): devrait signifier que l'application peut s'arrêter, s'arrêter elle-même et récupérer à l'écran correct et dans le bon état quand il est interrompu ou être interrompu par toute moyenne. Répondre aux applications de la notification .
Stockage (est tout stocké correctement, sans risques, au bon endroit)
Sécurité (votre application stockant les informations de paiement ou les détails de la carte de crédit? Votre application utilise-t-elle des protocoles réseau sécurisés? Sécurité pour l'exécution des applications BRASCE DANS LES CONSÉRATIONS DE SÉCURITÉ ET DES RAPPORTS D'ERREURS AUTRÉCINATION AUTRÉCINATIONS CERTIFICATIONS ET Autorisations Lockt Automatic Application Lock Out lors de l'entrée en continu invalide)
Accessibilité (boutons logiciels, zoom, tailles de police, texte à la parole, ...)
Performances (utilisation de la batterie, utilisation du processeur, utilisation de la mémoire (et fuites), gestion de stockage (disque vs carte), réactivité, taille de l'écran, temps de lancement de l'application, temps sur l'écran de lancement, écran de charge lourde / YOU devrait répandre des charges, une appuye sur la clé continue) Tout ce qui se passe devrait être traité en douceur avec une belle réaction rapide et claire.
Travail de fond (faire du travail en dehors du fil principal pour ne pas bloquer l'interface utilisateur, mais aussi avoir un travail massif lorsque l'application est "inactive" ou en arrière-plan, drainant la batterie / données / etc.)
Intégration (la caméra, le GPS, le Bluetooth fonctionnent-ils très bien avec l'application)
Compatibilité vers l'arrière, compatibilité matérielle: vérifiez toutes les versions de tous les appareils si possible. L'application doit être instalable et entièrement utilisable (sauf si les fonctionnalités ne sont pas disponibles sur cet appareil)
Images: Taille et poids corrects sur tous les appareils et orientations. Pas étiré, pas pixélé, pas trop HD, etc.
Social: la sécurité et les politiques de confidentialité sont disponibles, l'utilisateur peut se déconnecter ou retirer. Les utilisateurs sont invités à ce qui peut se passer lorsqu'ils donnent des droits et quand cette chose (publications / partages / goûts) se produit.
Annonces (affichées / cachées quand elles le devraient, afficher le contenu approprié)
Fuseaux horaires: appels à distance / heures vs heure du téléphone vs temps de région actuel => Utilisez UTC partout de toute façon, se transformez en temps local dans la vue
Magasins: l'application est visible uniquement dans les magasins que vous souhaitez / avez besoin (iOS AppStore, Playstore, Android Market, etc.), et n'est visible que sur des appareils compatibles. L'application de tablette ne doit pas être visible dans le magasin de smartphones. La page de magasin est à jour avec les mises à jour de la version, description, nom / numéro, testeurs informés avant la version,
Chèques de pré-libération / chèques de pré-magasin (afin que l'examen du magasin ne passe)
Les icônes de l'application sont disponibles dans tous les formats requis; Des icônes de magasin sont disponibles; Toutes les images d'applications sont disponibles dans tous les formats (1x, 2x, 3x, etc.)
Compatibilités du système d'exploitation, compatibilités de plate-forme transversale (cela fonctionne-t-il sur iOS / Android / Windows Phone comment devrait-il?)
Compatibilités de version: cela fonctionne-t-il dans iOS 9, 10, 11, 12? Testez votre cible et toutes les versions que vous êtes censé prendre en charge
Cela fonctionne-t-il sur tous les appareils sur toutes les versions? : iPhone, iPad, iPhone X, iPhone #S et aussi Android (Omegalul)
Orientations (messages d'erreur, vidéos, écran d'éclat, navigation et écrans réguliers dans toutes les orientations, sur toutes les tailles de périphérique)
Sound (s'arrête en arrière
Notifications (sont envoyées quand elles le devraient, sont riches? Linés en profondeur? Modifier le badge? Badge se mises à jour lorsque l'application est lue? Geofendend? Platform spécifique / spécifique à la fonctionnalité. Plus pour rechercher @pushwoosh pour des exemples)
Gestes
// la liste de choses réelle que je ne veux pas oublier
De quoi s'agit-il? Il s'agit de tester votre application de manière approfondie et complètement. Cette liste comprendra autant d'éléments que possible que vous devez tester. Beaucoup dont vous avez probablement déjà testé, certains auxquels vous n'avez peut-être pas pensé. Il s'agit de cocher toutes les cases et de valider le fait que vous avez effectivement testé X&Y, mais que vous avez également décidé d'ignorer Z. Beaucoup des éléments de la liste de contrôle peuvent ne pas s'appliquer à vous, car votre application n'a pas cette fonctionnalité spécifique ou n'utilise pas de technologie spécifique. Vous pourriez également vouloir simplement ignorer certains tests pour une raison quelconque, et c'est bien. C'est à vous de découvrir et de décider; Tant que vous avez pris une décision, cela signifie que vous avez lu la liste, accepté le prix et les conséquences des (pas) tests et que vous êtes prêt à partir!
Si vous pensez à votre projet, vous avez probablement des oeillères. Les oeillères du programmeur ou du propriétaire sont les pires, car vous savez ce que l'application est censée faire et, inévitablement, vous testerez à l'intérieur de ces limites. Les utilisateurs peuvent utiliser votre application non pas comme vous le pensiez, et ce serait un problème UX. Nous ne sommes ici que sur les tests, en nous assurant que votre application fonctionne hors ligne, ou sur une batterie faible, ou lors du refus des droits d'accès dont vous avez réellement besoin. Certaines choses que les utilisateurs pourraient faire que vous avez tenues pour acquises au cours de toutes ces semaines de tests. Il s'agit principalement de «penser hors des sentiers battus» ou de ce que j'aime l'appeler: faire le meilleur travail possible en tant que testeur.
Voici un tweet assez célèbre qui illustre ce que je veux dire.
L'ingénieur QA entre dans un bar. Commande une bière. Commandes 0 bières. ORDERS 999999999 BÉRIEURS. Commande un lézard. Ordre -1 bières. Ordonne un sfdeljknesv.
- Bill Sempf (@Sempf) 23 septembre 2014
C'est drôle (ou du moins j'aime à le penser) et c'est vrai. Cet exemple simple illustre beaucoup de choses à vérifier dans votre application.
Toute la liste semble assez écrasante et c'est normal. Je veux que ce soit aussi complet que possible. Comme je l'ai dit plus tôt, le but est de vous informer des nombreuses possibilités. C'est à vous de décider si un élément mérite d'être testé pour votre cas spécifique. Si c'est ou non est votre décision, tant que vous avez pris la décision et que vous en êtes conscient. C'est le but de cette liste.
Vous pouvez utiliser cette liste comme vous le souhaitez, car tant que vous l'utilisez, vous améliorerez la qualité du logiciel que vous expédiez. Le fait que vous utilisiez cette liste est bien plus important que la façon dont vous utilisez cette liste. Il pourrait s'agir d'une procédure pas à pas approfondie et régulière, d'une liste de contrôle préalable, ou même aussi simple qu'une lecture rapide avant d'aller au lit. Tant que vous le lisez et sachez qu'il est là, ce sera utile d'une manière ou d'une autre.
En tant que note rapide mais très importante, n'oubliez pas que beaucoup de ces tests peuvent être effectués en utilisant des tests unitaires classiques et des tests d'interface utilisateur. Cela devrait déjà couvrir la grande majorité des éléments importants à tester. Le reste peut être testé manuellement si nécessaire. Cela signifie que vous pouvez rédiger des suites de tests et l'utiliser à divers endroits de votre application pour assurer une stabilité à long terme. Tester tout cela manuellement serait un cauchemar ; Si vous ne savez pas comment rédiger des tests unitaires ou des tests d'interface utilisateur, recherchez-le. Il y a beaucoup à apprendre là-bas qui vous fera économiser énormément de temps, d'argent et évitera l'épreuve des tests manuels.
J'écris surtout ceci seul, la seule aide / inspiration que j'ai obtenue était de parcourir Internet (voir le chapitre suivant, ID) sur divers sujets. Malheureusement, je suis limité par mes propres connaissances et expérience, ce qui signifie qu'il y a certainement beaucoup de contenu dans les domaines dans lesquels vous, cher lecteur, avez beaucoup d'expérience. C'est là que Github entre en place; Vous pouvez demander librement une demande de traction, modifier mon contenu ou ajouter le vôtre. Je vais l'examiner et le validerai au mieux de ma connaissance, probablement avec l'aide de la communauté. Des trucs comme la sécurité, le cryptage, le réseautage, ce sont des domaines où je manque le plus. Étant donné que je suis un Joe moyen, c'est probablement là que la plupart des gens manquent de compétences, et où votre application sera le plus vulnérable / manque également. Cela signifie que ce sont des domaines (ceux dans lesquels vous êtes faible) doivent être triples et vous devriez certainement y consacrer une attention supplémentaire!
D'autres façons de contribuer / de dire merci seraient les suivantes:
Après tout, je passe beaucoup de temps pour vous faire économiser tout le temps, cela doit valoir quelque chose de ce qui précède: D
Et enfin, je tiens à remercier Michael Hunter pour son incroyable liste de contrôle, ce qui m'a inspiré à démarrer ma propre liste de contrôle spécifiquement autour du développement mobile (iOS, Android, Windows Phone). Il semble que beaucoup de temps et des efforts aient été consacrés à cette version de la liste, ce qui, je sais, n'est même pas la première version. C'est un excellent travail et si vous êtes en dehors du mobile, je vous suggère fortement d'aller le vérifier. Mon seul espoir est, un jour, d'atteindre une liste de contrôle d'une qualité similaire. À partir de là, j'ai trouvé plusieurs listes de contrôle sur Internet, la plupart très incomplètes, mais celle qui s'est démarquée est la liste de contrôle frontale de David Dias, qui m'a également inspiré de nombreuses façons pour améliorer la mienne. S'il vous plaît, allez le voir aussi, cela vaut la peine d'être répandu!
Les entrées de texte sont disponibles dans de nombreuses saveurs, taille et cas d'utilisation. De toute évidence, vous ne traitez pas les champs password de la même manière que vous traitez un autre champ, et il existe de nombreux champs à de nombreuses fins différentes. Cette liste doit les couvrir toutes, ou du moins la plupart d'entre elles. Le test de votre entrée se fera à travers plusieurs aspects. Vous devez vous assurer que la validation fonctionne dans la logique et l'interface utilisateur, que le TextField gère toutes sortes de stress et d'entrées, et que, le cas échéant, le formatage fonctionne correctement. Tous ceux ensemble devraient finalement vous fournir un champ de texte de travail.
Vous n'avez pas encore terminé si vous n'avez pas traité toutes les entrées et situations suivantes, lors de la validation des entrées de texte. Notez que ceux-ci s'appliquent également à la plupart des autres types d'entrée (mot de passe, e-mail, numéros, etc.). Si vous avez affaire à tout type d'entrée de chaîne, considérez la liste suivante ainsi que la liste pertinente.
aBCd 1234 #@ !? ;) $= § :grinning: ou :-) ou? ou U+1F60A 123 t , " , ... string.Empty nullVous n'avez pas encore terminé si vous n'avez pas essayé de saisir des données de la manière suivante:
Et ce n'est que pour une entrée de texte dans un écran de votre application. Vous devez valider soigneusement chaque champ de saisie de texte, tout au long de l'application. Et cela ne mentionne même pas le formatage des entrées, comme l'ajout d'espaces automatiquement entre les entrées, ni forcer certains caractères à être colorés ou changés en majuscules.
Vous n'avez pas encore terminé si vous n'avez pas testé soigneusement toutes vos entrées de numéro avec
0 13.37 ou 13,37 (Gardez le séparateur en fonction des paramètres régionaux!) -1337 10^20 "124" 12.23 vs 12,23 10.234,96 vs 10,234.96 13.37 € contre € 13.37 13.34 au lieu de 13.3389 13.00 ou seulement 13 , ou autre chose entièrement? 4000 mais pas 3999.99 , ou puis-je également taper 4000.56 ? 12345 devient 0,12345 ou ,12345 ou autre chose? Est-il reformaté à 0,12 ? -1 , 0 , -1000 , 234940 ) Vous n'avez pas encore terminé si vous n'avez pas testé soigneusement toutes vos entrées de messagerie avec
@ @ . personnage . , - , _ , etc.) ù , à , etc. Tu n'as pas encore fini si
Tu n'as pas encore fini si tu ne l'as pas
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Les entrées ne sont pas toujours du texte sous forme, il existe d'autres façons de donner leur entrée. Et il y a donc d'autres façons d'oublier des trucs!
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Tu n'as pas encore fini si
La gestion des erreurs est le pilier d'une application en bonne santé. Cela vous aidera à suivre les problèmes (d'autres outils vous aideront également) et donc à corriger les bogues. Mais vous ne voulez pas que ce soit un obstacle pour votre utilisateur et son expérience de votre application. Il y a un bon équilibre à atteindre entre le bon UX, le suivi des bogues et la notification de l'utilisateur Un problème s'est posé.
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Tu n'as pas encore fini si
Tu n'as pas encore fini si