automated regression testing
Ce didacticiel explique les défis des tests de régression automatisés. Nous découvrirons également le processus et les étapes d'automatisation des tests de régression:
Nous apprendrons comment automatiser les cas de test de régression en commençant par les identifier, en sélectionnant un outil pour faire l'automatisation, en faisant l'analyse des coûts, du temps et des efforts, en écrivant des scripts et enfin en les livrant à l'équipe de test manuel afin qu'elle puisse exécuter les cas de test. de n'importe où n'importe quand.
Si vous vous demandez pourquoi seule la suite de tests de régression, c'est parce que la suite de tests de régression est le premier candidat pour l'automatisation car c'est l'ensemble des cas de test qui sont répétitifs et prennent du temps. Ainsi, les automatiser vous économiserait en effet beaucoup de ressources et prendrait moins de temps aussi.
Vous obtiendrez des rapports rapides sur les cas de test de régression et vous pourrez également utiliser ces étapes pour automatiser d'autres suites de tests.
=> Cliquez ici pour la série complète de tests de régression.
Ce que vous apprendrez:
- Test de régression automatisé
- Tests automatisés: défis dans un environnement agile
- Étapes pour automatiser les tests de régression
- Conclusion
Test de régression automatisé
Récemment, lorsque j'ai voulu démarrer mon nouveau projet de test automatisé avec quatre ressources, j'ai pensé appliquer l'une des méthodologies Agile. Mais je n'ai pas pu continuer car une série de questions ont été soulevées dans mon esprit.
Les questions étaient comme:
- Est-il possible d'utiliser des méthodologies Agile dans les tests automatisés?
- Puis-je utiliser des outils traditionnels?
- Dois-je avoir recours à des outils open source?
- Quels sont les défis auxquels je dois faire face si j'implémente l'automatisation dans l'environnement Agile?
Dans cet article, analysons certains des défis auxquels nous sommes confrontés lors de la mise en œuvre de l'automatisation avec des méthodologies Agile. Les tests de régression automatisés dans l'environnement Agile présentent un risque de devenir chaotique, non structuré et incontrôlé.
Les projets agiles présentent leurs propres défis à l'équipe d'automatisation. La méthodologie Agile met l'accent sur la collaboration d'équipe et la livraison fréquente d'un produit. Des facteurs tels que la portée du projet peu claire, les itérations multiples, la documentation minimale, les besoins d'automatisation précoces et fréquents et l'implication active des parties prenantes, etc., exigent de nombreux défis de la part de l'équipe d'automatisation.
Tests automatisés: défis dans un environnement agile
Il existe plusieurs défis Agile pour l'équipe d'automatisation. Cependant, un quelques-uns d'entre eux sont exposés ci-dessous.
Défi 1:Phase d'exigence
Le développeur d'automatisation des tests capture les exigences sous la forme de «user stories», qui sont de brèves descriptions des fonctionnalités pertinentes pour le client.
Chaque exigence doit être priorisée comme suit:
Haut: Ce sont des exigences essentielles à la mission qui doivent absolument être remplies dans la première version
Moyen: Ce sont les exigences qui sont importantes, mais qui peuvent être contournées jusqu'à leur mise en œuvre.
Faible: Ce sont les exigences qui sont agréables à avoir mais qui ne sont pas critiques pour le fonctionnement du logiciel.
Une fois les priorités établies, les «itérations» de publication sont planifiées. Normalement, chaque itération de version Agile prend entre 1 et 3 mois pour être livrée. Les clients / logiciels prennent la liberté d'apporter trop de modifications aux exigences. Parfois, ces modifications sont si volatiles que les itérations sont annulées. Ces changements constituent des défis plus importants dans la mise en œuvre du processus de test Agile Automation.
logiciel de gestion informatique et outils de surveillance
Défi 2:Sélection des bons outils
Les outils traditionnels de dernière minute avec des fonctionnalités d'enregistrement et de lecture obligent les équipes à attendre que le logiciel soit terminé. De plus, les outils d'automatisation de test traditionnels ne fonctionnent pas pour un contexte Agile car ils résolvent des problèmes traditionnels qui sont différents des défis auxquels sont confrontées les équipes d'Agile Automation.
L'automatisation dans les premières étapes d'un projet agile est généralement très difficile, mais à mesure que le système se développe et évolue, certains aspects s'installent et il devient approprié de déployer l'automatisation. Le choix des outils de test devient donc critique pour récolter les bénéfices d'efficacité et de qualité de l'agilité.
Défi 3:Phase de développement du script
Les testeurs d'automatisation, les développeurs, les analystes commerciaux et les parties prenantes du projet contribuent tous ensemble aux réunions de lancement où des «User-Stories» sont sélectionnées pour le prochain sprint. Une fois que les «User-Stories» sont sélectionnées pour le sprint, elles sont utilisées comme base pour une série de tests.
Au fur et à mesure que la fonctionnalité augmente à chaque itération, des tests de régression doivent être effectués pour s'assurer que les fonctionnalités existantes n'ont pas été affectées par l'introduction de nouvelles fonctionnalités à chaque cycle d'itération. La échelle des tests de régression grandit à chaque sprint et garantit que cela reste une tâche gérable et l'équipe de test utilise l'automatisation des tests pour la suite de régression.
Défi 4:La gestion des ressources
L'approche Agile nécessite un mélange de compétences de test, c'est-à-dire que des ressources de test seront nécessaires pour définir des scénarios et des cas de test peu clairs, Test manuel aux côtés des développeurs, rédigez des tests de régression automatisés et exécutez les packages de régression automatisés.
Au fur et à mesure de l'avancement du projet, des compétences spécialisées seront également nécessaires pour couvrir d'autres domaines de test qui pourraient inclure l'intégration et les tests de performance.
Il devrait y avoir un mélange approprié de spécialistes du domaine qui planifient et rassemblent les exigences. Le défi de la gestion des ressources est de trouver des ressources de test avec de multiples compétences et de les allouer.
Défi 5:la communication
Une bonne communication doit exister entre les Test d'automatisation l'équipe, les développeurs, les analystes commerciaux et les parties prenantes. Il doit y avoir une interaction hautement collaborative entre le client et les équipes de livraison. Une plus grande implication du client implique plus de suggestions ou de changements de la part du client. Et cela implique plus de bande passante pour la communication.
Le principal défi est que le processus doit être capable de capturer et de mettre en œuvre efficacement tous les changements et l'intégrité des données doit être conservée. Dans les tests traditionnels, les développeurs et les testeurs sont comme l'huile et l'eau, mais dans un environnement agile, la tâche difficile est qu'ils doivent tous deux travailler ensemble pour atteindre l'objectif.
Défi 6:Réunion Scrum quotidienne
La réunion Scrum quotidienne est l'une des activités clés du processus Agile. Les équipes se rencontrent pendant 15 minutes de sessions debout. Quelle est l'efficacité de ces réunions? Dans quelle mesure ces réunions aident les développeurs à pratiquer l'automatisation? etc., sont discutés lors de cette réunion.
Défi 7:Phase de sortie
Le but du projet Agile est de livrer un produit fonctionnel de base le plus rapidement possible, puis de passer par un processus d'amélioration continue. Cela signifie qu'il n'y a pas de phase de sortie unique pour un produit. Le défi réside dans les tests d'intégration et les tests d'acceptation du produit.
Étapes pour automatiser les tests de régression
Le processus à suivre pour automatiser la régression peut être précisément divisé en les étapes suivantes:
Ces 7 étapes sont expliquées ci-dessous en détail en termes simples pour vous faciliter la compréhension.
1. Identification
#1) Identifiez le cas de test qui devrait faire partie de la suite de tests de régression.
- Pour commencer à automatiser les cas de test de régression, la toute première chose à faire est d'obtenir les cas de test de régression identifiés et correctement définis avec toutes les étapes, données et conditions préalables.
- Pour vous assurer que vous disposez d'une suite de tests de régression efficace, n'oubliez pas d'inclure:
- Cas de test avec des défauts récurrents.
- Cas de test qui couvrent des scénarios de bout en bout.
- Des cas de test plus visibles pour les utilisateurs finaux.
- Cas de test sur les valeurs limites.
- Bon mélange de cas de test positifs et négatifs.
- Cas de test complexes.
#deux) Identifiez le outils d'automatisation qui correspondent le mieux à vos besoins et au comportement de votre application. Une fois les cas de test de régression identifiés et prêts pour l'automatisation, identifiez les outils qui correspondent le mieux à vos cas de test.
La meilleure façon d'identifier les outils est de faire une matrice avec les outils et vos exigences, puis de garder une trace de quel outil répond à quelles exigences.
Lecture suggérée => Liste des principaux outils de test d'automatisation
# 3) Identifiez le Langage de programmation que vous souhaitez utiliser. Avec autant d'outils disponibles sur le marché, plusieurs langues sont prises en charge par ces outils. Il est donc important d’identifier le langage de programmation dans lequel vous souhaitez écrire vos scénarios de test d’automatisation.
Exemple :Supposons que nous ayons un projet dans lequel nous souhaitons automatiser une suite de tests de régression pour une application basée sur un navigateur.
Comme expliqué ci-dessus, nous identifierons les cas de test.
- Supposons que notre scénario de test soit 'Vérifiez qu'un utilisateur peut se connecter avec succès en utilisant un nom d'utilisateur et un mot de passe valides'.
Ensuite, nous identifierons les outils d'automatisation.
- Un scénario de test basé sur un navigateur peut être automatisé avec ' Sélénium ',' Ranorex »,« TestComplete ». Décidons de l’outil Selenium qui répond le mieux aux exigences.
Maintenant, identifions un langage de programmation.
- Nous voulons utiliser ' Java »Comme langage de programmation car c'est un langage hautement pris en charge.
2. Analyse
#1) Fais Coût Analyse. Il est très important de travailler dans les limites du budget. Ainsi, après la phase d’identification, vous aurez une idée du nombre de cas de test à automatiser et des outils pouvant être utilisés.
Toutes les conclusions de la phase d'identification vous aideront à établir un budget approximatif et ainsi, vous pourrez obtenir toute approbation, etc., si nécessaire.
#deux) Fais ressources et efforts analyse pour voir si vous avez les ressources pour y travailler. Parallèlement à l'analyse des coûts, il est très important de faire une analyse des ressources et des efforts pour une meilleure allocation des ressources et une utilisation efficace de leur temps sur le projet.
Lors de l'estimation des ressources et des efforts, assurez-vous de tenir compte des risques comme, si quelqu'un tombe malade, ou si certains cas de tests nécessitent plus de ressources pour l'exécution, etc.
# 3) Fais Temps Analyse. Une analyse du temps est nécessaire pour vous assurer que vous pouvez terminer le projet d'automatisation dans les limites du budget et des délais. Tout en travaillant sur l'analyse du temps, il sera utile de préparer un tableau chronologique pour suivre les progrès au cours du développement.
Pour une meilleure analyse de la chronologie du projet:
- Identifiez les tâches et sous-tâches de vos projets.
- Hiérarchisez les tâches et les sous-tâches.
- Dessinez un diagramme de Gantt ou un diagramme de réseau pour une meilleure représentation de la chronologie.
Exemple :En partant de notre exemple en tenant compte de la phase d'identification, l'explication de cette phase est donnée ci-dessous:
Analyse des coûts:
Supposons que le coût approximatif de ce projet soit de X $.
Ressource et effort:
Pour cela, un cas de test doit être automatisé de bout en bout et nous avons besoin d'une ressource à plein temps pendant environ 24 heures et nous avons également besoin d'une ressource supplémentaire pour examiner le travail. Ainsi, nous avons besoin de 2 ressources et l'estimation de l'effort est d'environ 40 heures.
Analyse du temps:
Pour cela, dessinons un petit diagramme de Gantt pour voir la chronologie.
3. Formation / Embauche
#1) Si certaines ressources nécessitent formation , puis planifiez leur formation. Parfois, vous pouvez avoir des ressources de test manuel qui sont intéressées par l'écriture de cas de test d'automatisation ou certaines personnes ont travaillé sur l'automatisation mais des outils différents et sont disposées à apprendre l'outil que vous avez sélectionné pour votre automatisation.
Dans ce cas, identifiez ces ressources et planifiez leur formation afin qu'elles puissent commencer à travailler sur l'automatisation des cas de test de régression.
#deux) Si nous avons besoin de plus de ressources, travaillez sur le embauche plan. Lorsque vous avez effectué l'analyse des ressources pour les efforts et si vous n'êtes pas en mesure de satisfaire les besoins avec les ressources déjà disponibles, prévoyez d'embaucher de nouvelles ressources avec les compétences appropriées requises pour le projet dans le budget.
Exemple:
Supposons que nous ayons déjà une ressource qui connaît les concepts Java et souhaite apprendre Selenium. Ensuite, nous organiserons une formation sur le sélénium pour cette personne.
Si nous n'avons aucune ressource disponible pour l'automatisation. Ensuite, nous embauchons une personne ayant une certaine expérience dans l'automatisation de tels cas de test à l'aide du sélénium et de Java.
4. Cadre et lignes directrices
#1) Une fois que l'outil et les ressources sont prêts, essayez de trouver un cadre ou décider lequel utiliser à partir des cadres existants. Plusieurs frameworks déjà construits peuvent être utilisés ou vous pouvez créer votre framework à partir de zéro.
Lors de la sélection ou de la création d'un framework, assurez-vous que vous impliquez les composants sur, les cas de test, les journaux, les rapports, l'entrée, la connexion à la base de données, etc.
#deux) Décidez de l'autre outils de soutien que vous souhaitez utiliser. Comme le développement d'un script d'automatisation est une tâche de développement qui implique l'écriture de code, il serait bien préférable de trouver les autres outils de développement qui seraient nécessaires pour prendre en charge l'écriture de vos scripts.
Par exemple , Certains outils qui peuvent être utiles incluent git, GitHub, Jenkins, etc.
# 3) Décrivez le des lignes directrices pour écrire des scripts d'automatisation. Il est nécessaire de décrire les directives afin que toutes les ressources travaillant sur le projet soient synchronisées et utilisent les mêmes conventions de dénomination, les mêmes procédures pour l'archivage / l'extraction de code et le même langage de programmation.
comment ouvrir le fichier eps sous windows
Exemple:
Cadre: Décidons de BDD (développement axé sur le comportement) pour les tests d'automatisation.
Outils de soutien: Les outils dont nous avons besoin pour prendre pleinement en charge l'automatisation seront GitHub, Jenkins, Log4J, Cucumber et JUnit.
5. Scripts d'automatisation
Commencez à écrire des scripts d'automatisation. Une fois que nous avons tout, c'est-à-dire l'outil, le langage de programmation, les compétences requises et les cas de test qui doivent être automatisés, nous pouvons commencer à écrire des scripts d'automatisation.
Lors de l'écriture de scripts, nous devons nous assurer que:
- Les directives sont suivies.
- Nous utilisons les outils.
- Les cas de test sont modulaires.
- Nous devrions pouvoir réutiliser les composants s'ils sont requis dans plusieurs cas de test.
Nous devons également nous assurer que le code est correctement maintenu dans l'outil de contrôle de version et que tous les membres de l'équipe peuvent collaborer facilement.
Exemple:
Écrivons de vrais scripts pour exécuter ce scénario de test. Un échantillon des scripts peut être affiché comme ci-dessous.
Tout d'abord, le scénario du concombre pour ce cas de test ressemblerait à ceci:
Fonctionnalité: vérifier la fonctionnalité de connexion
En tant qu'utilisateur, je souhaite me connecter à l'application
Aperçu du scénario: connexion à l'application
Étant donné que j'ouvre une application
Lorsque j'entre le nom d'utilisateur «»
Et j'entre le mot de passe ''
Et je clique sur le bouton de connexion
Ensuite, je vais à la page d'accueil
Exemples:
| nom d'utilisateur | mot de passe |
| testuser1 | password1 |
| testuser2 | password2 |
Après le fichier de fonctionnalités, nous implémenterons la définition d'étape pour les étapes mentionnées dans le fichier de fonctionnalités.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
En fin de compte, l'implémentation réelle de la classe de fonctionnalité de connexion ressemblerait à ceci:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Révision
(image la source )
# 1) Examen du code: Une fois qu'un développeur d'automatisation a terminé d'écrire des scripts d'automatisation, il est très important de passer par les différents niveaux de révision du code.
Les revues de code aident à
- Identifier les fausses vérifications.
- Recherche de points d'optimisation de code.
- Trouver de meilleures façons de mettre en œuvre la fonctionnalité pour une utilisation efficace des ressources.
Les revues de code exposent également le travail d'un développeur aux autres développeurs et lui donnent une perspective différente et des possibilités d'amélioration également.
# 2) Examen des cas de test: En plus de la révision du code, la révision du cas de test est également très importante. Nous devons nous assurer que les scripts de test d'automatisation, lorsqu'ils sont exécutés, exécutent le même ensemble d'actions et de vérifications que nous attendons des cas de test manuels.
Ainsi, l'examen des cas de test d'automatisation avec des analystes commerciaux ou des experts de test aide à renforcer la confiance dans les tests d'automatisation de ces cas de test.
Exemple:
Pour notre exemple, disons que pour la révision du code, nous avons reçu des commentaires tels que 'Rechercher un élément par identifiant et non par nom'. Ici, nous allons en tenir compte et modifier notre script en conséquence.
En outre, un examen de test peut être effectué pour ajouter des étapes de test si vous êtes sur la page d'accueil après une connexion réussie. Ensuite, nous ajouterions ceci à nos scripts également.
7. Livrer
Livrer les cas de test, afin que n'importe qui puisse les exécuter à tout moment. Une fois que les scripts d'automatisation sont prêts à être utilisés, il est très important de proposer un plan de livraison pour les scripts d'automatisation.
Ce plan est nécessaire car nous voulons nous assurer que l'automatisation des cas de test ne limite pas son exécution à un ensemble spécifique de personnes ou de compétences. Tous les membres de l'équipe ou du projet doivent être autorisés à exécuter les cas de test.
L'un des plans de livraison possibles est de fournir un travail Jenkins qui peut être déclenché pour exécuter les cas de test automatisés.
Exemple:
Dans notre cas, supposons que nous ayons livré le scénario de test à l'aide d'un travail Jenkins. Ce travail Jenkins, prend le code de GitHub, le construit et exécute les cas de test sur une machine différente.
Une fois le travail réussi, il vous montre le rapport de test généré. Toute personne ayant accès à Jenkins peut exécuter cette tâche. En outre, ce travail peut être planifié pour s'exécuter à une heure spécifique.
Conclusion
Si nous pouvons relever ces défis de manière bien optimisée, alors les tests de régression automatisés dans l'environnement Agile sont une excellente opportunité pour l'AQ de prendre la direction des processus agiles. Il est mieux placé pour combler le fossé entre les utilisateurs et les développeurs, comprendre ce qui est nécessaire, comment cela peut être réalisé et comment cela peut être assuré avant le déploiement.
La pratique de l'automatisation doit avoir un intérêt direct dans les deux, le résultat, tout en continuant à garantir que l'ensemble du système en évolution répond aux objectifs de l'entreprise et est adapté à l'objectif.
L'automatisation d'un cas de test de régression est toujours utile car c'est le meilleur candidat pour démarrer tests d'automatisation . Vous pouvez suivre les étapes mentionnées ci-dessus pour automatiser n'importe quelle suite de tests et pas seulement la régression.
Les tests d'automatisation sont également très utiles et rentables et l'investissement en temps dans les tests d'automatisation se limite uniquement à l'écriture de scripts et à leur maintenance. Ainsi, les tests d'automatisation doivent être correctement planifiés et planifiés pour un projet réussi.
A propos de l'auteur: J.B.Rajkumar a plus de 15 ans d'expérience dans les domaines académique et logiciel. Il a travaillé en tant que formateur en entreprise, responsable des tests, responsable QA et directeur QC.
Faites-nous part de vos commentaires / suggestions sur cet article.
=> Visitez ici pour la série complète de tests de régression.
lecture recommandée
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Téléchargement de l'e-book 'Testing Primer'
- 4 étapes pour développer l'état d'esprit des tests agiles pour une transition réussie vers un processus agile
- Défis des tests manuels et automatisés
- Différence entre un nouveau test et un test de régression avec l'exemple
- 5 défis et solutions de test mobile
- Test SaaS: défis, outils et approche de test
- Top 10 des outils de test de régression les plus populaires en 2021