Skip to main content

Tests unitaires

Une mauvaise configuration des règles dans une application peut entraîner des retards dans le traitement des dossiers. Lorsqu’une erreur se produit, il est possible que des dossiers doivent être réaffectés par les utilisateurs ou réparés par un administrateur. Prenons par exemple le cas d’un dossier qui doit être routé au service de gestion des commandes. Si le dossier est routé à la place au service de la comptabilité, un comptable doit le rediriger vers le service de gestion des commandes. Le comptable perd du temps à rerouter la tâche (assignment) tandis que le service de gestion des commandes n’a pas de dossier à traiter. La réaffectation du dossier entraîne donc un retard pour le client.

error_customer_delay

Pour éviter les erreurs de configuration telles que des tâches mal routées, les développeurs testent leurs applications. La façon la plus simple de tester une application est d’effectuer des tests unitaires (unit testing) sur des règles individuelles. Les tests unitaires permettent la livraison continue des applications en contrôlant la qualité des plus petites unités de fonctionnalité. Dans une application Pega, l’unité la plus petite est une règle individuelle.

Le but des tests unitaires est de vĂ©rifier que chaque Ă©lĂ©ment de l’application, par exemple une table de dĂ©cision ou une report definition, fonctionne comme prĂ©vu. Le test unitaire rĂ©duit le risque de voir une erreur de configuration dans une règle se propager Ă  d’autres règles de l’application et entraĂ®ner des retards importants dans le traitement des dossiers. 

Utilisez les tests unitaires pour limiter les erreurs de configuration. En effectuant des tests unitaires des règles individuelles, vous vous assurez que chaque règle fonctionne comme prévu lors de sa configuration. Prenons l’exemple d’un arbre de décision qui évalue une propriété. Comme le montre l’image suivante, l’application lit la propriété à partir d’une data page issue d’une report definition. Si l’arbre de décision (decision tree) renvoie un résultat incorrect alors que la data page contient les bonnes données, vous pouvez déterminer que l’erreur provient de l’arbre de décision.

isolate_cause_of_error

Vérifiez vos connaissances avec l’interaction suivante.

Test unitaire de règles individuelles

Vous pouvez tester une règle avec des donnĂ©es de test que vous indiquez en cliquant sur Actions > Run dans la barre d’outils du formulaire de règles dans Dev Studio. 

Note: Pour certains types de règles, comme celles relatives aux fichiers binaires, Pega ne propose pas d’option de test unitaire. Si la règle ne peut pas faire l’objet d’un test unitaire, l’option Run n’apparaît pas.

L'affichage de la fenĂŞtre  Run Rule varie selon le type de règle. Par consĂ©quent, l'exĂ©cution d'une règle varie selon son type. En gĂ©nĂ©ral, cependant, les règles sont exĂ©cutĂ©es en utilisant les donnĂ©es d’une page de test que vous dĂ©finissez.

Lorsque vous exĂ©cutez la règle, le système utilise la rĂ©solution de règle. Si vous soumettez une règle Ă  un test unitaire et qu'il existe une version supĂ©rieure de la règle, le système exĂ©cute la version supĂ©rieure de la règle.

Enregistrer un test unitaire pour les tests automatisés

Une fois le test exĂ©cutĂ©, vous pouvez Ă©galement le convertir en dossier de test rĂ©utilisable que vous pouvez exĂ©cuter Ă  tout moment. Un dossier de test identifie une ou plusieurs conditions vĂ©rifiables qui permettent de dĂ©terminer si une règle renvoie un rĂ©sultat attendu. La crĂ©ation d’un dossier de test rĂ©utilisable prend en charge le modèle de livraison continue, en offrant un moyen pĂ©riodique de tester les règles afin d’identifier les effets des règles nouvelles ou modifiĂ©es. ExĂ©cutez un dossier de test chaque fois qu’une modification du code pourrait affecter une fonctionnalitĂ© existante. Pour plus d'informations sur l'utilisation des dossiers de test unitaire, consultez la rubrique Understanding unit test cases de Pega Community.

Tip: Vous pouvez automatiquement exécuter un test unitaire enregistré à partir de la règle ou du test unitaire à l’aide de la fonction de test PegaUnit.

Pour créer un dossier de test, vous devez convertir un test dans la fenêtre Run Rule et définir les résultats indiquant un test unitaire abouti. Chaque résultat attendu consiste en une assertion qui décrit une ou plusieurs conditions à tester, ainsi que le résultat attendu pour chaque condition. Les dossiers de test prennent en charge plusieurs types d'assertions conçus pour tester divers aspects de l'exécution des règles. Les assertions disponibles pour un dossier de test varient selon le type de règle testé.

Note: Pour une explication complète concernant les types d’assertions pris en charge et leur utilisation, consultez l’article de Pega Community intitulé Defining expected test results with assertions.

Quelques exemples d’assertions et de diffĂ©rentes façons dont elles peuvent ĂŞtre utilisĂ©es sont fournis dans le tableau suivant :

Type d’assertion Utilisation Exemple
PropriĂ©tĂ© (property) Teste la valeur de la propriĂ©tĂ© spĂ©cifiĂ©e. NĂ©cessite la page sur laquelle la propriĂ©tĂ© est dĂ©finie, une opĂ©ration de comparaison et une valeur de comparaison. pxUrgencyWork est Ă©gal Ă  10
Résultat de décision (decision result) Teste la valeur renvoyée par une règle de décision. Nécessite des valeurs pour chaque propriété d’entrée requise par la règle de décision afin de renvoyer le résultat attendu. Quand Referred by employee est faux, renvoyer RecruitingWB
Temps d’exécution prévu (expected run time) Teste si une règle s’exécute dans un laps de temps autorisé. Nécessite une opération de comparaison et une durée autorisée exprimée en secondes. Le temps d’exécution attendu est inférieur ou égal à trois secondes.
Page Vérifie la présence d’une page en mémoire. Nécessite le nom de la page ainsi qu’une opération de comparaison. La page D_CoursesList ne contient aucune erreur.

Lorsque vous avez obtenu l’ensemble des résultats escomptés, enregistrez la configuration du dossier de test. Vous pouvez accéder à un dossier de test enregistré à partir de la règle. La règle répertorie tous les dossiers de test enregistrés pour cette règle ainsi que le statut de chaque dossier de test en fonction de sa dernière exécution. Si vous exécutez à nouveau un dossier de test et qu'il échoue, ouvrez le résultat et identifiez chaque assertion qui a renvoyé un résultat inattendu. Si un dossier de test renvoie les résultats attendus, le statut Passed s’affiche en vert.

Vous pouvez grouper des dossiers de tests unitaires dans une suite de test afin d’exĂ©cuter des dossiers de tests et des suites de test dans un ordre dĂ©terminĂ©. Lorsque vous exĂ©cutez des suites de test en bloc, le traitement se fait sĂ©quentiellement et non en parallèle. 

Préparer des dossiers de test

L’enregistrement d’un dossier de test nécessite l’accès à un ruleset configuré pour stocker les dossiers de test. Vous ne pouvez pas enregistrer de dossiers de test dans un ruleset qui n’a pas été configuré pour stocker des dossiers de test.

Avant d’enregistrer un test unitaire, rapprochez-vous de votre administrateur système pour identifier un ruleset configurĂ© pour stocker les dossiers de test. Veillez attentivement Ă  la portabilitĂ© et Ă  l’indĂ©pendance des tests, car ils ne doivent ni dĂ©pendre d’un autre dossier de test ni interfĂ©rer avec des tests ultĂ©rieurs. Lorsque l’application de dĂ©veloppement est dĂ©ployĂ©e dans l’environnement de production, vous pouvez migrer l’application sans inclure les dossiers de test.

Tip: Utilisez la fonction Cleanup pour restaurer une page système de clipboard ou pour rĂ©tablir un changement survenu dans les donnĂ©es ou les instances de travail pendant l’exĂ©cution du test. L’onglet History restitue l’historique des modifications. 

Exécuter un dossier de test

Dans Dev Studio, la page d’accueil Unit testing rĂ©pertorie tous les dossiers de test dĂ©finis pour une application donnĂ©e, en indiquant le statut de chaque dossier de test Ă  l’issue de sa dernière exĂ©cution. Dans la page d’accueil, vous pouvez Ă©galement crĂ©er des suites de test composĂ©es d’un ou plusieurs dossiers de test connexes. Les suites de dossiers de test unitaire de Pega exĂ©cutent plusieurs dossiers de test dans l’ordre que vous avez indiquĂ©. 

Tip: Dans le menu Configure , sĂ©lectionnez Application > Quality > Automated Testing > Unit Testing pour accĂ©der Ă  la page d’accueil.
Unit testing page

Vérifiez vos connaissances avec l’interaction suivante.

Bonnes pratiques pour la configuration des tests unitaires

Les tests unitaires automatisĂ©s produisent des rĂ©sultats exploitables. Par ailleurs, l’exĂ©cution et la gestion d’un test automatique prennent moins de temps qu’un test manuel. Veillez Ă  ce que le test soit mis au point en mĂŞme temps que les règles de votre application Pega Platform™. Vous pouvez dĂ©cider de rĂ©utiliser des dossiers de test durant le dĂ©veloppement continu, tandis que les autres Ă©quipes peuvent exploiter vos suites de test. 

Quand créer des tests unitaires automatisés

Lorsqu’un test renvoie un résultat attendu, il convient de configurer un test unitaire automatisé comme le suggère la table des priorités ci-dessous.

Priorité élevée Priorité faible
Tests ayant des résultats prévisibles Tests soumis à des modifications fréquentes nécessitant une maintenance des dossiers de test
Tests qui doivent ĂŞtre exĂ©cutĂ©s frĂ©quemment Tests faciles Ă  tester manuellement 
Tests qui allègent l’effort personnel lors des tests de logique complexe Tests trop complexes pour être automatisés
Tests contenant des règles largement utilisées au sein de l’application Tests contenant une persistance de données extraites d’une base de données
Tip: Nous vous recommandons d’exĂ©cuter des tests Ă  chaque fusion et enregistrement au minimum, et dans l’idĂ©al de façon plus frĂ©quente et rĂ©gulière. 

DĂ©velopper pour la couverture 

Dans la mesure oĂą vos tests unitaires couvrent un large Ă©ventail de scĂ©narios, assurez-vous que les validations créées suffisent pour couvrir tous les scĂ©narios positifs et nĂ©gatifs. L’objectif est d’avoir une couverture de règle aussi Ă©tendue que possible, et d’inclure diffĂ©rents chemins pour l’exĂ©cution d’une règle. Ajoutez suffisamment de tests de façon Ă  couvrir toutes les combinaisons d’entrĂ©e et de sortie, mais veillez Ă  ce que la logique du dossier de test soit brève et lisible afin d’optimiser sa rĂ©utilisation. Il est plus facile de repĂ©rer rapidement les problèmes de règle, et d’en amĂ©liorer la conception et la maintenance lorsque les tests unitaires sont petits. 

Note: Pour en savoir plus sur la mesure de la couverture d’un test de règle, consultez la rubrique Academy Test coverage.

Développer pour la maintenance

Chaque dossier de test doit être facile à lire et à assimiler par quiconque. Par exemple, attribuez à vos dossiers de test des noms et des descriptions qui illustrent bien leur objet. Commentez chaque étape pour les rendre encore plus compréhensibles et faciliter leur maintenance.

Rendez les donnĂ©es de test aussi modulaires que possible afin de faciliter et de fluidifier les mises Ă  jour et les modifications ultĂ©rieures. Inutile, par exemple, de crĂ©er des donnĂ©es de test pour l’application dans son ensemble, ou pour des structures de donnĂ©es vastes ou complexes. Les donnĂ©es de test modulaires ont la particularitĂ© de permettre les petites modifications qui n’exigent pas de reconfigurer toutes les donnĂ©es de test et qui ne risquent pas de crĂ©er des problèmes avec d’autres tests. 


If you are having problems with your training, please review the Pega Academy Support FAQs.

Did you find this content helpful?

100% found this content useful

Want to help us improve this content?

We'd prefer it if you saw us at our best.

Pega Academy has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice