Idées pour tests
Bonjour à tous,
je cherche une idée, mais peut-être existe-t-il déjà des outils, pour mes procédures de test.
Je passe énormément de temps sur les tests de mes applis, et j'essaye de ne rien oublier. A chaque fois, je re-teste presque tout, du coup, ça s'accumule au bout d'un moment, en ajoutant Ipad, Iphone 3.5, Iphone 4, Retina ou non, IOS 6, IOS 7, bref, ça commence à en faire un paquet. Et encore, je viens juste de laisser tomber l'IOS 5.
Du coup, ce que j'aimerais avoir comme outil, c'est un truc où je peux aligner des lignes de tests en clair, par exemple, "Envoyer sur Flickr", "Ajouter une image de la caméra", etc. Qu'ensuite, à partir de cette liste, en DEBUG, ça m'affiche l'opération à réaliser dans une alerte, ou autre.
Le top du top serait que je prévois d'incrémenter une variable qui affiche automatiquement le test suivant quand je suis passée sur la routine en question.
Et encore mieux, ce serait que je puisse dire tout de suite si l'opération a fonctionné ou non, et que ça me fasse un log des process à revoir.
Je peux écrire une routine spécifique, mais peut-être il y a plus simple ?
Comment vous faà®tes vos tests, vous ?
Merci d'avance.
Réponses
Bonjour,
Pour les tests logiques XCTest, pour les tests fonctionnels ( ton cas) j'utilise UIAutomation.
Tu peux faire pleins de chose avec ( prendre des screens shots de ton appli pendant les tests par exemples,...)
https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/_index.html
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html
Merci Samir, super. Je vais me pencher là -dessus.
Tests Unitaires ou Fonctionnels
C'est tester tes méthodes. C'est tester que quand tu appelles la méthode M avec tels paramètres, ça retourne bien telle réponse comme attendu, etc. Ca se fait avec XCTest, et ça devrait maintenant être un réflexe pour tout le monde que d'écrire des Tests Unitaires au moins pour les méthodes clés comme les méthodes d'interaction avec les WebServices par exemple.
J'en parlerai dans mon SmallTalk CocoaHeads demain soir d'ailleurs (mais il faut venir à Rennes pour le voir )
Tests Applicatifs ou UI : c'est ce que tu veux faire, et en plus de confirmer la solution de UIAutomation préconisée par samir, j'ajouterai qu'il y a des outils supplémentaires disponibles :
- Par exemple tu peux faire du MonkeyTest (aussi appellé "Stress Test"), dont le principe est simple : c'est un script qui va faire des interactions aléatoires pour taper/swiper/double-taper/... un peu n'importe où partout dans ton app comme un singe, et vérifier que ça ne plante pas
- Tu peux aussi tester des solutions comme Gherkin / Cucumber qui permettent d'écrire des tests en langage un peu naturel, genre "Quand je suis sur tel écran et que je tap sur tel bouton, je dois avoir tel autre écran qui s'affiche au bout de maximum 1 seconde" (bon en anglais, mais c'est l'idée). Perso je n'ai jamais eu l'occasion d'utiliser / de mettre ce genre de solution en place, mais ça me semble quand même intéressant et j'aimerai bien avoir l'occasion creuser la question un jour !
Rennes n'est pas si loin, un jour certainement j'irais y faire un tour, mais pour le moment, je crois que je ne comprendrais pas le dixième de ce qui s'y dit, alors, je ne préfère pas, je reviendrais en pleurant
Sinon, merci pour tous ces détails. Je vais m'y mettre parce que franchement, les tests comme je les fais actuellement, je trouve ça hyper lourd.
Au contraire, la librairie OHHTTPStubs ( Normalement @Aligator vas présenter sa lib OHHTTPStubs) est vraiment facile u'utilisation et très pratique.
Exemple dans un test unitaire :
1. Si tu veux tester une des tes méthodes de ta classe métier qui encapsule les apples Web service, au lieux d'utiliser réellement le réseaux ( une vraie requête http) et attendre le callback ensuite tester que ta méthode fait bien son travail, tu vas tout simplement utiliser la lib pour qu'elle te fournisse la réponse ( un fichier JSON de test par exemple) à la place de ton serveur. C'est très pratique parce que les tests unitaires doivent s'exécuter rapidement et sans contraintes extérieures....
Donc je raconte ça pour te dire que la présentation ( à mon avis) vas tourner autour des choses simples mais très pratiques et qui sont facile à comprendre... après y aura pas que ça .
( Bon je t'incite pas a aller à Rennes mais plutôt te dire que cette lib est vraiment facile d'utilisation et pratique.
Mon problème, c'est souvent le manque de vocabulaire. Même si cela paraà®t simple, j'apprends beaucoup sur le tas et la théorie me fait souvent défaut. Mais merci du conseil. Je saurais quand je serai prête 😉
Donc au contraire ne sois pas timide c'est ouvert à tous
Ce n'est pas de la timidité, mais je connais mes limites. Cela dit, je ne doute pas que ce soit super intéressant, mais, bon, Rennes, c'est pas si loin, certes, mais c'est quand-même pas la porte à côté. Et puis, c'est déjà pas facile de me faire monter en Bretagne aux beaux jours, alors... ces temps-ci ... ::)
Me revoilà sur e sujet, parce que je suis en train de me battre avec les commandes de script, et je me demande juste une chose : il n'existe pas un équivalent d'enregistrement macro qui créerait un script automatiquement en fonction des opérations que l'on effectue sur le device ... ou bien il faut vraiment tout coder étape par étape ?
Voilà exactement ce que je cherche. En plus du reste sur lequel je reviendrai un peu plus tard. Merci !
Merci. Je vais essayer de trouver un peu de temps pour ça.
Oui, mais après, le temps que j'assimile...