Avec une variété de termes décrivant les méthodologies de test qui tentent d'être explicites mais qui échouent souvent, le vocabulaire des tests peut parfois être déroutant.
Dans cet article, nous allons clarifier les différences entre les tests fonctionnels de validation et les tests de non-régression (TNR), mais nous devons d'abord établir que la façon dont la catégorie « tests de régression » est désignée peut être interchangée.
En d'autres termes : test de régression = test de non-régression
L'ISTQB préfère le terme de test de régression, mais beaucoup de personnes du milieu utilisent également le terme de test de non-régression (en France en tout cas).
Cependant, avant d'aborder les différences entre les tests fonctionnels de validation et les tests de non-régression, examinons d'abord ce qu'ils sont.
Les tests fonctionnels de validation sont un type de test effectué pour vérifier que chaque fonction ou fonctionnalité de l'application logicielle fonctionne conformément à la spécification des exigences.
Le testeur n'est pas concerné par le code sous-jacent. Les tests fonctionnels de validation portent sur la fluidité mécanique ou sur la vérification du bon fonctionnement de chaque module.
Il est réalisé à l'aide de cas de test qui recréent tous les scénarios possibles, tant négatifs que positifs. Idéalement, les tests fonctionnels de validation commencent au stade initial du développement du produit et vérifient :
Des tests fonctionnels de validation bien exécutés permettent de livrer un produit haut de gamme. Ils aident à produire un produit ou un logiciel sans bug pour assurer la satisfaction de l'utilisateur final.
*Contrairement aux tests de régression, les termes «tests fonctionnels de validation» et « tests non fonctionnels » ne peuvent pas être interchangés. Les tests non fonctionnels consistent à tester l'application à partir d'aspects non fonctionnels tels que les performances, la convivialité, la sécurité, la fiabilité, la charge, le stress, etc. Ils sont effectués en se fondant sur des scénarios réels pour vérifier les performances du système lorsqu'il est conservé dans de telles circonstances.
Régression : une évolution qui ramène à un stade antérieur.
Les tests de régression sont effectués dans le but de détecter toute régression dans une fonctionnalité déjà testée.
Ces régressions dans le code peuvent survenir à la suite de "corrections de bugs", de "nouvelles fonctionnalités ajoutées au code" ou de "changements d'exigences".
L'objectif est de tester tout le code qui pourrait être impacté par les changements récents pour s'assurer qu'aucun nouveau bug n'est introduit.
En résumé, un test de régression sert à vérifier que les modifications avancées sur le logiciel, le site ou l'application mobile, telles que l'ajout d'une nouvelle fonctionnalité ou une mise à jour, n'ont pas impacté les fonctionnalités antérieures existantes.
Le but des tests fonctionnels de validation est de déterminer dans quelle mesure l'application développée correspond aux exigences souhaitées.
Le but des tests de régression est de vérifier que tout changement dans l'application ou les systèmes n'a pas entraîné de rupture de code et que le système fonctionne correctement.
Les tests fonctionnels de validation permettent de comprendre l’ensemble des cas et fonctionnalités, qui n'ont jamais été testés et exécutés auparavant. Les cas de test sont réexécutés lorsque le défaut est relevé par rapport à une exigence. Par la suite, il est corrigé et assigné pour un nouveau test. Lors du nouveau test, si le défaut est résolu, les cas de test liés qui ont échoué plus tôt sont réussis.
La suite de régression contient des cas qui ont été précédemment testés et résolus. Fondamentalement, dans les tests de régression, les cas de test sont exécutés pour s'assurer que les modifications n'ont pas eu d'impact sur les fonctionnalités précédemment testées.
Le processus de test fonctionnel commence par la lecture et la compréhension des exigences par les testeurs, ce qui soulève un écart en cas de divergence dans l'exigence, suivi de l'identification de l'entrée de test. Transmettre les valeurs d'entrée aux systèmes et comparer la sortie avec les résultats attendus.
Si le résultat ne correspond pas, le défaut est signalé et le cas de test est marqué comme ayant échoué.
L'ensemble du processus de test fonctionnel comprend :
Au contraire, le processus de type test de régression est entièrement différent car cette activité n'a lieu que lorsque l'application existante est modifiée ou que de nouvelles fonctionnalités y sont ajoutées.
Les activités impliquées dans ce type de test sont les suivantes :
Les tests fonctionnels de validation sont d'abord effectués manuellement. Une fois qu'une fonctionnalité est stable, les cas de test sont automatisés.
Dans les tests de régression, les cas de test peuvent être exécutés manuellement ou automatiquement. Comme les cas de test sont déjà stables par défaut (puisqu'ils ont déjà passé leur test fonctionnel) dans les tests de régression, ils peuvent être automatisés.
Les cas de test fonctionnels ne nécessitent pas beaucoup de modifications car ils sont moins nombreux et axés sur une fonctionnalité spécifique.
Alors que dans les tests de régression, les scripts de test nécessitent une maintenance plus importante et peuvent contenir des cas de test plus anciens.
Les cas de test peuvent contenir des fonctionnalités qui ont changé, de nouvelles fonctionnalités qui ont été ajoutées ou certaines fonctionnalités qui ont été supprimées, c'est pourquoi la suite de régression doit être mise à jour après chaque version.
Chez Mr Suricate, nous protégeons l’image de marque du client et augmentons son chiffre d’affaires tout en garantissant le bon fonctionnement du parcours utilisateurs et en détectant les bugs avant et après mise en production.