Ces dernières années, les technologies logicielles ont évolué si rapidement et si largement que les développeurs n'ont plus guère le temps de s'occuper en plus de la qualité des logiciels. C'est pourquoi les tests sont devenus une partie de plus en plus importante du développement de logiciels, afin de soulager les développeurs.
Étant donné qu'à l'heure actuelle, la vie des gens dépend des logiciels informatiques, il est nécessaire qu'une mise en œuvre professionnelle soit effectuée. C'est l'une des raisons pour lesquelles les tests de logiciels sont d'une importance capitale. Les tests doivent être effectués avant l'utilisation du logiciel, car cela permet de détecter les erreurs à temps et de s'assurer que les fonctionnalités du logiciel fonctionnent comme requis. Le test de logiciels est une partie importante de l'assurance qualité des logiciels, une activité visant à évaluer et à améliorer la qualité des logiciels (Cf. F. Okezie et al 2019 p. 1).
Ces dernières années, il arrivait souvent que les logiciels soient presque terminés avant d'être testés, car de nombreuses entreprises ne disposaient pas encore de services de test définis. Après quelques expériences négatives, il existe désormais un consensus sur l'importance de la formation et de la sensibilisation à l'importance des tests de logiciels pendant le développement. Les tests de logiciels sont nécessaires pour répondre à l'exigence d'une qualité de livraison élevée, que le logiciel soit livré à des clients ou à des utilisateurs internes (cf. Witte (2019), p. 4).
Dans le cadre de ce travail, nous nous penchons sur la question de savoir où se situent les différences, les points communs, les problèmes et les limites entre les différents outils de test. En résumé, les outils de test sont comparés entre eux. Les objectifs, la qualité et le temps doivent pouvoir être atteints, tout en tenant compte des aspects économiques.
En outre, différents outils de test sont comparés entre eux au moyen de différents critères. Le chapitre 2 définit précisément les termes pertinents pour ce travail, tels que qualité du logiciel, tests, erreurs, outils de test et effort de test. Le chapitre 3 présente les méthodes et les types de tests de base. Parmi les méthodes de test, on trouve le test statique et le test dynamique. Dans le test statique, l'analyse assistée par des outils ainsi que les tests de groupe structurés - également appelés revues - sont examinés plus en détail. Dans le test dynamique, les procédures de la boîte noire et de la boîte blanche sont expliquées. Les types de tests comprennent le test unitaire, le test d'intégration, le test système, le test d'acceptation, le test fonctionnel, le test non fonctionnel, le test négatif, le test de régression ainsi que le test de bout en bout. Le chapitre 4 explique en détail la gestion des erreurs. Ensuite, le chapitre 5 présente une catégorisation des outils de test. Une distinction est faite entre les outils de test statique et les outils de test dynamique. Le chapitre 6 compare les outils courants entre eux. Il s'agit de définir ce que l'on entend par ces outils de test et comment ils fonctionnent. Comme la licence de trois outils n'était pas accessible, dont "Ranorex", "TestComplete", "UFT (Unified Functional Testing)", il ne sera question dans ce travail que de la description de ces outils. De plus, le chapitre 7 montre où les outils de test peuvent être utilisés selon le type de système. Enfin, le chapitre 8 présente des recommandations aux utilisateurs en tenant compte des connaissances en programmation et des considérations économiques.
Après une recherche approfondie dans la littérature sur les outils de test suivants, le tableau ci-dessous résume les informations nécessaires sur les outils, en fonction de certains critères sélectionnés. Cette analyse peut aider les testeurs à choisir le meilleur outil pour tester les logiciels. Le tableau résume à nouveau les caractéristiques des outils.
Critetères/Outils | TestCafé | Selenium Web-Driver | Appium | Selenium IDE | QF-Test | Ranorex | TestComplete | UFT |
---|---|---|---|---|---|---|---|---|
langage de programmation | JavaScript, Type-Script, CoffeeScript | Java, C#, Perl, Python, JavaScript, Ruby, PHP | Java, C#, Perl, Python, JavaScript, Ruby, PHP | Java, C#, Perl, Python, JavaScript, Ruby, PHP | Java, Python, Groovy, JavaScript | C #, Python, C++, VB.net and XML | VbScript , Delphi, C++, C# und JScripts | VbScri pt |
Plates-formes supportées | Web | Web | Mobile, Windows | Web | Java, Web, Desktop (Win), Mobile (Android) | Mobile, Web, Desktop (Win) | Mobile, Web, Desktop (Win) | Web, Desktop (Win) |
Rapports sur les résultats des tests | oui | oui | oui | oui | oui | oui | oui | oui |
Re- réutilisation | oui | oui | oui | non | oui | oui | oui | oui |
Enregistrement/ Lecture | non | non | non | oui | oui | oui | oui | oui |
facile à apprendre | oui | oui | non | oui | oui | |||
Compétences en programmation | oui | oui | oui | oui | non | non | non | non |
Outils types de test | End-to-End Tests | Funktional Unit Test, End-to-End Test | GUI Test, Functional Unit Test | Functional Unit Test | GUI Test | GUI Test | Funkcional Unit Test, GUI Test, Unit Test | Functional Unit Test, Regression Test |
Licence | gratuite | gratuite | gratuite | gratuite | Pas gratuite | Pas gratuite | Pas gratuite | Pas gratuite |
Sources | DevExpress - TestCafe | Thought-Works - Selenium Documentation (2021) | Tom Christie Appium - Documentation (2014) | Thought-Works - Selnium Dokumentation (2021) | QF-Test Documentation (2020) | Ranorex GmbH - Documentation (2021) | Smart-Bear Software - Documentation (2021) | MicroFocus - Documentation (2021) |
Dans le développement de logiciels, la qualité est l'objectif le plus important de tout projet, c'est pourquoi il est recommandé de choisir un outil en tenant compte de l'ampleur du projet et du coût estimé des tests. La plate-forme sur laquelle le projet sera déployé devrait également être prise en compte dans les critères de sélection d'un outil de test. Sur la base des résultats obtenus dans le cadre de ce travail, Ranorex, TestComplete, UFT et QF-Test sont recommandés pour les tests sur toutes les plates-formes et pour les grands projets. Comme il s'agit d'outils sous licence, le budget alloué aux tests doit être pris en compte. Appium est recommandé pour les applications mobiles, tandis que TestCafe, Selenium Webdriver, Selenium IDE sont disponibles pour les tests web (Cf. F. Okezie et al. 2019 p. 9).
L'objectif de ce travail était de comparer les différents outils de test sur la base de différents critères dans le domaine du test de logiciels. Pour cette comparaison, des outils de test ont été choisis sur Internet et testés au moyen d'un site web de cinéma programmé dans le cadre du module "Technologie web" pendant les études.
Il est indispensable pour un testeur de connaître quelques termes importants du domaine des tests logiciels et leurs définitions. La notion de qualité logicielle en fait partie, car la qualité et son assurance font également partie des tâches du testeur. De même, un testeur doit maîtriser la définition des tests afin de pouvoir effectuer son travail en connaissance de cause. Il doit également connaître la notion d'erreur, qui peut avoir différentes définitions en fonction de ce à quoi l'erreur se rapporte. Comme un testeur n'a qu'un certain temps pour tester dans un projet, il doit être en mesure d'estimer la durée du test. En outre, les principaux types de tests qui se prêtent à l'exécution se distinguent par leurs objectifs. Il s'agit notamment des objectifs et des méthodes des tests fonctionnels, qui consistent à vérifier la fonctionnalité du système telle qu'elle est décrite dans une spécification. Inversement, il y a aussi les tests non fonctionnels, qui s'intéressent à des aspects tels que la convivialité et l'acceptation par l'utilisateur. Pour que les tests puissent être effectués, il faut des procédures permettant de créer des cas de test ou d'obtenir une vue de l'objet du test. Il faut considérer des méthodes telles que la méthode de la boîte noire, qui effectue les tests sur la base de spécifications, et la méthode de la boîte blanche, qui prend le texte du programme comme référence pour les tests. Ces deux méthodes permettent d'observer différentes vues de l'objet du test, qui sont très différentes et donnent une bonne vue d'ensemble du système.
Les tests logiciels constituent une partie importante du cycle de vie du développement logiciel. Ils garantissent que les logiciels mis sur le marché sont exempts d'erreurs. C'est pourquoi un testeur doit pouvoir distinguer les différentes méthodes de test logiciel ainsi que les catégories d'outils et leurs domaines d'application. Les testeurs doivent toujours être conscients de l'utilisation de ces outils dans le processus de développement.
Au cours du travail, il a été constaté que certains outils ne sont adaptés qu'au test d'applications web et que d'autres peuvent être utilisés pour tester des applications web, mobiles et de bureau. De même, la plupart des outils étaient des "outils de capture/reproduction" qui peuvent être utilisés par des utilisateurs sans connaissances en programmation.
Ce qui fait un bon testeur, c'est l'expérience accumulée dans le domaine du test de logiciels, car seule une grande expérience permet à un testeur de développer un bon sens de la recherche d'erreurs dans les logiciels. Une autre condition pour être un bon testeur est d'avoir de nombreuses compétences en programmation, car les scripts sont générés dans différents langages de programmation. Étant donné qu'un testeur est celui qui rapporte au développeur l'erreur causée par un autre, il doit avoir une certaine sensibilité pour convaincre les développeurs de corriger l'erreur qu'il a trouvée.
En raison des points abordés dans ce travail, le test logiciel est devenu incontournable dans le développement de logiciels. En tant que testeur de logiciels, on est responsable de la garantie de la qualité du produit ainsi que de la documentation. Cela permet aux développeurs de se concentrer sur la programmation, la conception et la correction des erreurs dans le programme. Ils ne doivent plus chercher eux-mêmes les erreurs, elles leur sont présentées par les testeurs. C'est pourquoi la collaboration et le soutien mutuel entre eux doivent bien fonctionner.
Ce travail serait utile aux testeurs et aux développeurs pour savoir quel outil est le plus approprié pour un projet donné, davantage d'outils peuvent être comparés et davantage de critères de comparaison peuvent être mis en évidence. Cela permettrait aux testeurs de logiciels de choisir des outils parfaits pour tester les applications. Cela permettrait de gagner plus de temps et de réduire les coûts en choisissant le bon outil de test. On peut en conclure qu'il n'existe pas un seul outil parfait pour les tests, mais que pour un objectif de test donné, des compromis peuvent être faits en fonction de la taille du projet afin de choisir le meilleur outil qui tienne compte des coûts prévus pour les tests et qui permette la plate-forme de l'application et également la langue dans laquelle le projet est développé.
La complète thèse concernant QF-Test peut être trouvée ici (PDF en allemand).
Mémoire de licence : Tests logiciels : Comparaison des outils de test communs, octobre 2021 - Fachhochschule Südwestfalen - Université des sciences appliquées, Iserlohn, Allemagne.