État de l'arborescence des exécutions

Problème

Il est courant d'organiser les plans d'exécution en structure hiérarchique représentant différents objectifs ou domaines de tests. Dans certains cas par exemple, pour connaître l'état du test et par conséquent la qualité atteinte pour un objectif ou un domaine, vous devrez connaître le nombre total de tests réussis, en échec et non exécutés.

Solution

Utilisez la vue de datamart RV_ExecutionPlanStatusRollup pour créer un rapport qui indique le nombre de tests réussis, en échec et non exécutés groupés par build, pour un dossier d'organisation des exécutions spécifique.

SELECT BuildName, PassedCount, FailedCount, NotExecutedCount
FROM RV_ExecutionPlanStatusRollup
WHERE ExecutionFolderID = ${executionPlanID|43|Execution Plan ID}
La requête fonctionne comme suit :
  • Elle sélectionne BuildName et les totaux par état depuis la vue RV_ExecutionPlanStatusRollup.
  • Elle spécifie le dossier de niveau supérieur à partir duquel vous souhaitez connaître les états (ExecutionFolderID).
Le résultat de la requête SQL affiche les états des exécutions de test de tous les plans d'exécution du dossier sélectionné, regroupés par build.
BuildName PassedCount FailedCount NotExecutedCount
351 0 0 2
352 15 7 1
Si vous souhaitez obtenir plus de détails comme les totaux par état de tous les plans d'exécution de la hiérarchie sélectionnée, vous pouvez utiliser la vue du datamart RV_ExecutionPlanStatusPerBuild :
SELECT eps.BuildName, eps.ExecutionPlanID, SUM(eps.PassedCount) PassedCount,
  SUM(eps.FailedCount) FailedCount, SUM(eps.NotExecutedCount) NotExecutedCount
FROM RV_ExecutionPlanStatusPerBuild eps
INNER JOIN TM_ExecTreePaths etp ON eps.ExecutionPlanID = etp.NodeID_pk_fk
WHERE etp.ParentNodeID_pk_fk = ${execFolderID|44|Execution Folder ID}
GROUP BY eps.ExecutionPlanID, eps.BuildOrderNumber, eps.BuildName
ORDER BY eps.BuildOrderNumber, eps.ExecutionPlanID
La requête fonctionne comme suit :
  • Elle utilise la vue RV_ExecutionPlanStatusPerBuild pour accéder aux données propres au plan d'exécution (ExecutionPlanID et ExecutionPlanName). La vue RV_ExecutionPlanStatusRollup utilisée précédemment contient des données préagrégées (synthétisées), ce qui n'est pas adapté à l'objectif visé ici car les résultats obtenus ne couvrent pas uniquement les plans d'exécution, mais aussi les nœuds de dossier.
  • Elle sélectionne tous les nœuds contenus dans un dossier spécifique avec un JOIN de la table TM_ExecTreePath afin de récupérer les informations relatives à la hiérarchie.
  • Elle spécifie le dossier de niveau supérieur avec ExecutionFolderID. Étant donné que la table TM_ExecutionTreePaths contient également une autoréférence pour chaque plan d'exécution, vous pouvez également exécuter cette requête avec un ID de plan d'exécution pour ParentNodeID_pk_fk. Vous obtiendrez alors les lignes correspondant au plan d'exécution en question.
  • Elle ajoute ORDER BY BuildOrderNumber et ExecutionPlanID pour obtenir des résultats bien triés, avec les plus anciens builds et leurs plans d'exécution en premier.
Le résultat de la requête SQL affiche les états des exécutions de test de tous les plans d'exécution du dossier sélectionné.
BuildName ExecutionPlanID PassedCount FailedCount NotExecutedCount
351 2307 0 0 2
352 2184 11 2 0
352 2185 0 3 0
352 2186 2 1 0
352 2187 1 0 0
352 2191 0 1 0
352 2307 1 0 1