- Afin de tester un logiciel, nous avons diff´ erents m´ ethodes comme le test uni- taire, le test d’int´ egration, etc. - Comme le test dans la fa¸con d’humain peut avoir des erreurs et prend beaucoup de temps, pour cette raison le test d’automatisation du web a ´ et´ e d´ evelopp´ e.. - Dans ce travail, nous avons le but de cr´ eer des scripts pour le test d’automati- sation du web sur le produit Flamingo XL d’Anevia. - En plus, le nombre du scripts r´ eussis dois ˆ etre au minimal de 80% des cas de test total.. - 2.5 Test d’automatisation. - 3.3 Exemple de la biblioth` eque utilis´ e dans le projet. - Normalement, le test d’application Web se fait par les humains. - En cons´ equence, il y a une forte possibilit´ e qu’ils fassent des erreurs ou ne respectent pas l’enchaˆınement des ´ etapes de test. - Pour ces raisons, l’utilisation de test d’automatisation est d´ evelopp´ e. - Pour assurer la qualit´ e du Flamingo XL, le test d’automatisation est adapt´ e dans le projet. - principal qui g` ere l’ex´ ecution du test d’automatisation, et le Selenium-RC fonctionne comme un sonde permettant de lancer le test sur l’application Web.. - Compr´ ehension du produit : Pour mieux comprendre et d´ evelopper les scripts de test d’automatisation, nous devons bien comprendre les fonction- nalit´ es et les services fournit par le produit sous test.. - V´ erification des cas de test : Apr` es avoir bien compris le produit, nous devons v´ erifier les cas de test reli´ es avec ce produit. - Comme il existe plusieurs version de produit, donc nous devons valider les ´ etapes dans les cas de test en raison d’assurer la coh´ erence entre le produit sous test et les cas de test utilis´ es.. - S’il y a beaucoup de diff´ erent, il faut mettre ` a jour les cas de test.. - Conception de la structure du codage : Pour que le codage du projet sera bien saisi par tout le monde dans l’´ equipe, il est n´ ecessaire de concevoir la structure des biblioth` eques et des scripts de test. - D´ eveloppement des biblioth` eques et des scripts de test d’automatisa- tion : Nous devons d´ evelopper les biblioth` eques en Python avant de les d´ eployer dans les scripts de test d’automatisation.. - L’objectif g´ en´ eral du projet est de transformer le cas de test du Flamingo XL environ 80. - a utiliser les scripts du test d’automatisation. - Parfois, nous ne pouvons pas transformer le cas de test en script parce qu’il pourra provoquer des probl` emes, par exemple : on peut simuler la rupture de la connexion avec la commande ”sudo ifconfig eth0 down”, mais cette commande peut inciter un probl` eme de connexion sur le serveur. - Donc, il faut ´ eviter de transf´ erer le cas de test comme ¸ca en script.. - Dans cette partie, nous d´ ecrivons les informations reli´ ee au test d’automatisa- tion dans le domaine du streaming. - Qua- tri` emement, on pr´ esente l’outil principal du projet qui nous permet de faire le test d’automatisation, le Testerman. - Figure 2.6: Tableau de l’Acc` es Conditionnel (CAT). - Le mˆ eme cas de test peut ˆ etre ex´ ecut´ e dans des environnements bien diff´ erents. - Des adaptateurs servent d’interm´ ediaire entre le script de test abstrait et le SUT. - Il a ´ et´ e employ´ e pour le d´ eveloppement de test de conformit´ e dans des domaines diff´ erents comme VoIP, IPv6, Digital Mobile Radio, WiMax, LTE, etc. - Il est peut-ˆ etre utilis´ e comme une plate-forme pour d´ evelopper des simulateurs de test (pilotes et stubs) et des prototypes d’applications de r´ eseau. - Testerman a ´ et´ e con¸cu pour ˆ etre multi-utilisateur (client-serveur) avec un d´ epˆ ot centralis´ e des cas de test. - Il est adaptable ` a la plupart des topologies SUT, les contraintes de r´ eseau, et extensible (adaptateurs de test/syst` eme peuvent ˆ etre. - une multi-plate-forme : nomm´ e QTesterman qui fournit un IDE pour concevoir, ex´ ecuter, contrˆ oler et analyser les suites de test.. - Le serveur Testerman : un front-end pour les clients qui est responsables de la cr´ eation, de l’ex´ ecution et de contrˆ ole de test ex´ ecutables (TE) d’une source ATS ´ ecrit par l’utilisateur. - Une ”probe” est le mot pour appeler un adaptateur de test (un adaptateur syst` eme). - Cependant, une fois d´ eploy´ e, un agent peut ˆ etre utilis´ e par n’importe quel TE, afin de d´ eployer dynamiquement n’importe quel nombre de sondes en fonction de sa configuration d’adaptateur de test d´ efinie.. - Dans le domaine des. - Le test manuel et le test d’automatisation. - Les diff´ erences entre le test manuel et le test d’automatisation sont d´ ecrits dans le tableau suivant. - Test manuel Test d’automatisation. - Pour tester ces applications, nous pouvons utiliser des outils de test d’auto- matisation afin de minimiser le coˆ ut et le temps. - Dans [12] montre qu’il existe plusieurs outils de test d’automatisation et dans [14] repr´ esente des r´ esultats de performances de 2 outils int´ eressants : Selenium et Watir.. - ”Selenium” est un des outils open-source pour les tests d’automatisation qui fournit un framework de test pour tester une vari´ et´ e d’applications dans presque toutes les langages. - Son principale caract´ eristique est l’ex´ ecution de cas de test sur multi-navigateur. - S´ el´ enium Web Driver, qui prend en charge tous les navigateurs pour l’ex´ ecution de test.. - Capacit´ e d’enregistrement : d´ efinit l’efficacit´ e de l’outil dans le terme de la capacit´ e d’enregistrement des cas de test.. - Facilit´ e d’apprentissage : la facilit´ e de la compr´ ehension du fonctionnement des logiciels de test est v´ erifi´ ee sur la base de 3 param` etres . - Rapport de test : est pr´ esent´ e dans un format bien structur´ e o` u nous nous sommes en mesure de comprendre ce que l’outil de test veut illustrer.. - Premi` erement, la capacit´ e d’enregistrement, le Selenium est plus efficace que le Watir parce qu’il soutien plusieurs fonctions sans avoir recours ` a d’autre plugin. - En plus, le Testerman est disponible pour le Python donc le Selenium est l’outil de bon choix pour d´ evelopper le test d’automatisation.. - Ce stage a pour but de d´ evelopper les scripts de cas de test pour pouvoir les utiliser avec les outils de tests d’automatisation. - La cr´ eation de nouveau scripts afin de tester de nouveau cas de test ne pose aucun probl` eme. - Pourtant, le probl` eme de l’utilisation seulement de script ATS est apparaˆıt, s’il y a des changements de l’interface de l’application Web ou dans le syst` eme sous test (SUT) dans les cas de test existant. - Dans la figure 3.1, vous pouvez voir qu’il y a 5 cat´ egories de services de Fla- mingo XL. - Concernant le langage sp´ ecifique utilis´ e dans ce projet est le Python, nous de- vons v´ erifier s’il est d´ ej` a install´ e dans le syst` eme d’exploitation utilis´ e. - Il existe 8 types de localisateur d’´ el´ ement dans le Selenium : 1. - Cependant, il y a une possibilit´ e qu’il existe plusieurs ´ el´ ements ayant le mˆ eme nom de l’attribut ”name”. - Commandes dans le Selenium-RC. - Elle simule la mˆ eme action d’actualisation que celle de l’utilisateur lorsqu’il clique sur le bouton. - La commande ”close” est utilis´ ee pour simuler l’action de l’utilisateur lorsqu’il clique sur le bouton ”Fermer” dans la barre de titre d’une fenˆ etre ou un onglet.. - Figure 3.3: Exemple de la biblioth` eque utilis´ e dans le projet. - Ces scripts sont utilis´ es pour le test d’automatisation. - La figure 3.4 montre les ´ etapes du d´ eveloppement des biblioth` eques et des scripts ATS pour le test d’automatisation. - V´ erifier le cas de test : Tout d’abord, nous devons v´ erifier si le cas de test utilise le type d’exigence g´ en´ eral ou sp´ ecifique. - S’il utilise l’exigence sp´ ecifique, nous passons ` a l’autre cas de test. - Comme nous avons dit au paravent, que les produits d’Anevia partagent quelques fonctions entre eux, donc nous devons chercher s’il y a une biblioth` eque qui existe pour la fonction dans le cas de test.. - Valider les ´ etapes : Supposons qu’il existe d´ ej` a la biblioth` eque pour l’ac- tion dans le cas de test, nous devons valider si les ´ etapes ou les localisateurs d’´ el´ ements dans la biblioth` eque sont correctes. - S’ils se corres- pondent, nous pouvons commencer ` a ´ ecrire le script ATS de ce cas de test.. - eque : Dans la premi` ere ´ etape, nous ´ ecrivons le nouveau biblioth` eque lorsqu’il n’existe pas encore. - Apr` es la cr´ eation, c’est n´ ecessaire de rev´ erifier les ´ etapes du cas de test afin d’avoir la confiance que le biblioth` eque est bien suivi les ordres de l’action.. - V´ erifier le script ATS : Comme il y a le partage de fonctions entre les produits d’Anevia, alors il y a parfois le partage de cas de test. - Apr` es avoir v´ erifi´ e qu’il n’y y a pas encore de script ATS pour le cas de test, nous cr´ eons un nouveau en utilisant la biblioth` eque qu’on a cr´ e´ e ou celle qui existe d´ ej` a.. - Si le r´ esultat est ”fail”, il y aura le message d’erreur dans le journal de l’ex´ ecution de Qtesterman. - En plus, il faut que nous mettons ` a jour la biblioth` eque ou le script ATS pour qu’on puisse valider le cas de test.. - Comme nous ne pouvons pas montrer les informations du projet, donc nous avons fait quelques fonctions du test d’automatisation avec le site IFI-Formation ` a distance. - L’objectif du projet est de transformer 80% des cas de test aux scripts ATS. - Le nombre total de cas de test du Flamingo XL est 139, donc 80% de ce nombre est 112. - Comme nous avons expliqu´ e qu’on ne peut pas transformer tous les cas de test en script ` a cause de son exigence ou son ´ etape qui peut influencer l’erreur, nous avons enlev´ e 50 des cas de test (45 des cas de test doivent ˆ etre tester ` a la main et 5 des cas de test ne peuvent pas tester parce qu’il n’existe pas de fonctions ` a tester dans la version actuelle de Flamingo XL). - Par cons´ equent, le nombre total de cas de test qu’on peut transformer en script devient 89, alors le minimal de script est 72 des cas de test.. - Pourtant, l’avantage de processus du test d’automatisation est d’ex´ ecuter un ensemble de test par une seule commande d’ex´ ecution. - contraire, les scripts des ”Streaming Settings” et ”Web Radio” ont beaucoup de cas de test ´ echou´ es.. - En cons´ equence, nous pouvons dire qu’on a besoin pas mal de d´ ebit afin de valider les cas de test sur la diffusion de la vid´ eo. - pourcentage de test sont pass´ e, donc nous devons valider le reste de 34 pourcentage. - Normalement, pour faire les cas de test d’environ 90 cas de test, ¸ca prend environ 4 homme-jour (manday). - Appliquant le test d’automatisation,ce travail prend environ 2 homme-jour : un demi-jour pour l’ex´ ecution de test d’automatisation et le reste pour valider les cas de test ´ echou´ e ` a la main. - Ce r´ esultat montre que l’utilisation de test d’automatisation peut diminuer le temps pour tester l’application Web. - Afin de r´ eussir ce projet, nous avons ´ ecrit des biblioth` eques sur les services de Flamingo XL et 89 scripts ATS pour les cas de test. - Dans ce projet, nous avons appris le test d’automatisation en utilisant les outils Testerman et Selenium-RC. - Nous trouvons qu’on peut ´ ecrire des scripts de test en diff´ erents langages par l’utilisation de Selenium-IDE. - Par contre, nous ne pouvons pas les ex´ ecuter comme un ensemble de test. - Nous trouvons que le Testerman est un outil qui permet de d´ evelopper des scripts de test d’automatisation sur plusieurs types du SUT. - Pourtant, le langage disponible pour d´ evelopper des scripts du test d’automatisation avec Testerman est seulement le Python. - Apr` es avoir re¸cu le r´ esultat, nous d´ eduisons que cette ver- sion de Selenium prend moins de temps pendant l’ex´ ecution parce qu’il n’attend pas que la page Web soit charg´ e compl` etement afin de continuer ` a lancer la commande qui est suivant de la charg´ e une page Web. - Concernant le temps pour d´ evelopper les biblioth` eques et les scripts ATS, nous pensons que le test d’automatisation n’est pas toujours bien pour tester une application Web. - Autrement dit que l’utilisation du test d’automatisation sur l’application Web est bien pour des sites web qui ont plusieurs versions et tous sont bas´ es dans la mˆ eme structure.. - log("%s.%s %s". - length = len("%s.%s %s". - self.selenium.send(["waitForPageToLoad", "30000"]). - <?xml version="1.0". - <metadata version="1.0">. - self.selenium.send(["send_keys", "name=username", username]). - self.selenium.send(["send_keys", "name=password", password])