Idées pour tests

BooleanneBooleanne Membre
février 2014 modifié dans Apple Developer Programs #1

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.


  • AliGatorAliGator Membre, Modérateur
    Je confirme à  100% les suggestions de samir.

    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 !


  • J'en parlerai dans mon SmallTalk CocoaHeads demain soir d'ailleurs (mais il faut venir à  Rennes pour le voir ;))




     


    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.



  • je crois que je ne comprendrais pas le dixième de ce qui s'y dit...




     


    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.

  • BooleanneBooleanne Membre
    février 2014 modifié #7

    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 😉 


     


  • AliGatorAliGator Membre, Modérateur
    C'est le but de mon SmallTalk de demain : présenter les bouchons à  ceux qui ne savent pas ce que c'est (c'est quoi un bouchon, ça sert à  quoi, ça marche comment, dans quel cas on peut en avoir besoin ?) puis présenter du code d'exemple de ma lib (chaque exemple tient en 5-6 lignes de code max).

    Donc au contraire ne sois pas timide c'est ouvert à  tous ;)
  • BooleanneBooleanne Membre
    février 2014 modifié #9


    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 ...     ::)


  • AliGatorAliGator Membre, Modérateur

    Et puis, c'est déjà  pas facile de me faire monter en Bretagne aux beaux jours, alors... ces temps-ci ...     ::)

    Je vois pas du tout de quoi tu parles... :P
  • 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 ?

  • AliGatorAliGator Membre, Modérateur
    Bah avec Automator tu peux lui demander d'enregistrer ce que tu fais il me semble (très pratique pour le rejouer ensuite et ainsi pouvoir rejouer exactement le même scénario plusieurs fois et observer si les leaks sont toujours au même endroit, ce genre de choses)


  • Bah avec Automator tu peux lui demander d'enregistrer ce que tu fais il me semble...




     


    Voilà  exactement ce que je cherche. En plus du reste sur lequel je reviendrai un peu plus tard. Merci !

  • AliGatorAliGator Membre, Modérateur
    Si ça t'intéresse, à  défaut de vidéo, mes slides sur ma présentation de OHHTTPStubs viennent d'être publiées : http://fr.slideshare.net/CocoaHeadsRNS/cocoaheads-rennes-16


  • Si ça t'intéresse, à  défaut de vidéo, mes slides sur ma présentation de OHHTTPStubs viennent d'être publiées : http://fr.slideshare.net/CocoaHeadsRNS/cocoaheads-rennes-16




     


    Merci. Je vais essayer de trouver un peu de temps pour ça.

  • AliGatorAliGator Membre, Modérateur
    Tu sais, le SmallTalk durait 15mn, mais vu que c'est pas une vidéo et donc qu'il n'y a pas mon blabla de grand bavard, tu peux visionner toutes les slides en 3mn :D


  • Tu peux visionner toutes les slides en 3mn 




     


    Oui, mais après, le temps que j'assimile... :)

Connectez-vous ou Inscrivez-vous pour répondre.