La Transformation Numérique et le Cloud ont fait basculer l’ensemble des développeurs dans une nouvelle ère DevOps. Mais pour vérifier la qualité du code écrit, les experts s’appuient encore sur des métriques d’un temps révolu. Avec le ForresterResearch, à la recherche de nouvelles métriques …

Transformation Numérique oblige, à nouvelles applications, nouveaux environnements DevOps pour les générer. De nos jours, les applications évoluent à des rythmes soutenus qui relèvent parfois de l’ordre de la seconde. Or les responsables DevOps s’appuient toujours sur les mêmes métriques pour juger de la qualité de leurs développements alors qu’ils évoluent aujourd’hui dans un contexte et avec des exigences totalement différents.

Le cabinet d’études ForresterResearch a donc conduit une étude auprès de 600 professionnels de ce secteur pour connaître les métriques qui définissent leur contrôle-qualité en matière de développement. Afin de repérer celles réellement utiles dans les processus DevOps, le cabinet d’analyse s’est focalisé sur les 157 responsables ayant mis en place avec succès une stratégie DevOps. Par comparaison, avec les réponses des autres stratèges du panel, les analystes ont pu en déduire les métriques qui pourraient être considérées comme des éléments différentiateurs DevOps.

Les Mesures pertinentes

Chaque personne interrogée a fourni la liste de métriques utilisées dans leur quotidien pour qualifier leurs développements. Lesquelles sont classées en 4 catégories, Build, Functional Validation (validation fonctionnelle), IntegrationTesting (test d’intégration) et RegressionTesting (test de régression). Seules les 20 mesures considérées comme les plus importantes ont été retenues. Elles sont classées par valeur décroissante.

Build

Dans le cadre de la catégorie Build, le classement des mesures donne une idée de celles considérées comme importantes (case Value Rank) mais cela ne veut pas pour autant dire qu’elles soient beaucoup utilisées au quotidien (case Value Usage). A noter que les lignes accompagnées du sigle « Différentiateur DevOps » sont les mesures que l’on retrouve dans toutes les entreprises ayant une stratégie DevOps aboutie.

Les tests automatisés classés par importance du risque sont en tête des mesures considérées comme à grande valeur pour 63% des votants mais paradoxalement, sur le terrain ils sont peu utilisés (seulement par 27% parmi les entreprises les plus avancées et 15% pour les autres). Ils sont importants car ce sont les seuls à tenir compte du risque business. Développeurs et testeurs ont besoin de connaître l’impact des changements au fur et à mesure que le code évolue. A noter que cette mesure est présente dans toutes les entreprises ayant une stratégie DevOps réussie.

Les métriques considérées comme importantes sont souvent relatives à la qualité du code. Ainsi la mesure des « builds de code réussis »qui arrive en seconde position avec 63% du vote des responsables, suivent le « taux de réussite/échec des tests unitaires » avec 60% et la mesure du« nombre total de défauts du code »considérée par 59%. Pour toutes ces mesures, ils ne sont qu’environs 30% des responsables DevOps à réellement les utiliser quotidiennement.

Les « StaticAnalysisResults », résultats d’analyse statique du code pour en découvrir les faiblesses font partie des mesures qualifiées comme DevOps Differentiator par les entreprises DevOps matures. Sont également dans la liste des éléments différentiateurs :les « Test Case Coverage » qui permettent de savoir jusqu’à quel point les besoins en termes de fonctions d’une application sont réellement couverts ; les « requirements covered by tests » relatifs aux nombres de prérequis couverts par les tests ; le nombre de tests automatisés et les tests d’hygiène (propreté, efficacité et utilité des tests).

Validation Fonctionnelle

Parmi les quatre principales mesures de tests fonctionnels, la préférée des experts DevOps avec un taux de 69% indique le pourcentage de prérequis couverts par les tests. Ils ne sont que 40% sur le terrain à réellement l’utiliser. Pour 66% des répondants, la métrique « Critical Defects » qui donne une idée de l’évolution dans le temps des défauts fonctionnels recensés est la seconde mesure la plus importante avec cependant, seulement 21% qui l’utilisent effectivement. Suivent le taux de réussite/échec des tests fonctionnels pour 64% des responsables (seuls 46% le mesure) puis la métrique relative à la qualité de l’application, « DefectDensity », le rapport du nombre de défauts recensés en fonction de la taille de l’application (62% des votants pour 33% d’utilisateurs réels).

Test D’Intégration

Les mesures prises ici concernent essentiellement les tests d’intégration et d’APIs. L’importance des APIs dans le contexte DevOps actuel n’est plus à démontrer. Architectures distribuées et services / micro-services rendent ces mesures plus qu’importantes. Les 4 premières concernent les mêmes tests que ceux listés dans la phase de validation fonctionnelle. Pour 75% des experts, le pourcentage de la couverture des tests relatifs aux prérequis est vital alors que seuls 34% l’utilisent dans les faits. La mesure de la somme des nouveaux défauts trouvés dans les tests d’APIs est importante pour 64% des personnes interrogées pour seulement 30% qui s’en préoccupent sur le terrain. L’évaluation de la qualité des APIs est effectuée par 39% des experts alors qu’ils sont 63% à la déclarer comme importante. Enfin 62% des responsables DevOps estiment que le pourcentage de tests réussis est à surveiller alors que seuls 44% le font réellement.

Test de Régression de bout en bout

Parmi les 4 mesures classées comme les plus valables par les responsables DevOPs, 3 sont également considérées comme des « DevOps Differentiator ». Et pour une fois, cette distribution correspond également à la pratique sur le terrain. Considérée comme prioritaire par 70% des experts DevOps, la mesure du pourcentage de tests automatisés est dans les faits réalisée par 36%des personnes. A égalité, 70% des responsables considèrent que la couverture des prérequis par les tests est indispensable pour 40% qui la mesure effectivement. Le nombre total de défauts identifiés est suivi par 33% des personnes interrogées alors que 66% la considère comme importante. Enfin la mesure du nombre de cas de tests effectués est essentielle pour 65% alors que seuls 41% des experts l’effectuent.

La tendance des métriques

En conclusion de cette étude, trois points essentiels ressortent selon le Forrester Research. Le premier est la compréhension du risque business qui doit être considéré comme un facteur essentiel dans la réussite d’un projet DevOps. En second, quand une politique DevOps est un succès, le responsable s’appuie davantage sur des mesures contextuelles comme la couverture d’une exigence que sur des considérations de nombre de fois qu’une tâche est exécutée (comme par exemple un nombre de tests). Enfin, la vision globale semble être la plus pertinente pour obtenir un développement de qualité. Les experts DevOps s’attachent la plupart du temps à connaître la mesure d’une expérience utilisateur lors d’une transaction de bout en bout et non pas en se basant uniquement sur des mesures spécifiques d’un point particulier.