Concevoir et implémenter la traçabilité des sources, des bogues et de la qualité
Dans le contexte de DevOps, la traçabilité désigne la possibilité de suivre les modifications et les actions tout au long du cycle de vie du développement logiciel. Ce concept s’applique à différents aspects de ce cycle de vie, y compris les modifications apportées au code source, à la résolution des bogues et à la gestion du contrôle qualité. Sa mise en œuvre est essentielle pour assurer la fiabilité du produit, la maintenance et la satisfaction des clients.
La traçabilité source permet aux développeurs de suivre les modifications de code dans les scénarios de collaboration. La traçabilité des bogues facilite l’identification, la hiérarchisation et la résolution des problèmes liés au code source. La traçabilité de la qualité assure que les logiciels répondent aux normes de qualité et aux attentes des utilisateurs en liant les activités, les métriques et les commentaires des tests aux efforts de développement.
Concevoir
À un niveau élevé, la traçabilité est indépendante des outils, mais la façon de l’aborder dépend de l’aspect du cycle de vie du développement logiciel qu’elle est censée cibler. De même, les objectifs et les considérations de conception diffèrent entre la traçabilité du code source, des bogues et de la qualité.
En particulier, la traçabilité source implique le suivi de l’historique des modifications du code, y compris les auteurs des modifications, la date des modifications et leur objectif. Elle facilite les révisions de code, le débogage et la compréhension de l’évolution du codebase au fil du temps. Du point de vue de la conception, cette fonctionnalité est étroitement liée aux stratégies de branchement Git et de fusion qui organisent le travail de développement. Les développeurs créent des branches de fonctionnalités pour un nouveau travail, valident les modifications apportées à leurs branches et envoient des demandes de tirage (pull requests) pour révision. À ce stade, leurs homologues effectuent des révisions de code et, une fois qu’elles sont terminées, approuvent les modifications à fusionner dans la branche primaire.
La traçabilité des bogues implique le suivi des bogues ou des défauts signalés pendant les tests ou la production jusqu’à leur cause racine dans le codebase. Elle s’appuie également généralement sur la capture d’informations telles que les détails du rapport de bogues, les étapes à reproduire, les composants affectés et les modifications de code associées. Ses objectifs incluent la hiérarchisation et la résolution efficaces des bogues afin de résoudre efficacement les lacunes logicielles.
La traçabilité de la qualité englobe les activités et artefacts liés à la qualité tout au long du processus de développement de logiciels. Cela implique de lier les métriques de qualité, les cas de test, les résultats de test et d’autres activités d’assurance qualité aux exigences, aux récits utilisateur et aux modifications de code. La traçabilité de la qualité permet d’évaluer l’impact des modifications du logiciel sur sa qualité et d’identifier les domaines à améliorer.
Implémentation de la traçabilité
Les détails de l’implémentation de la traçabilité diffèrent dans une certaine mesure en fonction de la plateforme DevOps.
Traçabilité des sources
Étant donné que GitHub et Azure DevOps prennent en charge Git comme mécanisme du contrôle de code source, plusieurs techniques de traçabilité source s’appliquent aux deux. Il en résulte que l’implémentation de la traçabilité du code source dans les deux cas implique l’adoption de meilleures pratiques telles que l’écriture de messages de validation descriptifs, l’utilisation d’une stratégie de branchement bien définie et l’exigence de demandes de tirage (pull requests) pour les révisions de code.
Toutefois, il existe également certaines différences entre GitHub et Azure DevOps. L’implémentation de la traçabilité source dans les référentiels GitHub implique généralement l’utilisation de fonctionnalités telles que des règles de protection de branche pour appliquer des processus de révision du code et vérifier que les modifications sont examinées avant la fusion. L’intégration de GitHub aux problèmes permet de lier les modifications du code aux problèmes correspondants, ce qui permet d’assurer la traçabilité entre modifications du code et exigences du projet. Azure DevOps propose des stratégies de branche et des stratégies de demande de tirage (pull request) pour appliquer des vérifications de qualité du code et lier des modifications aux éléments de travail, ce qui permet la traçabilité entre les modifications du code et les récits utilisateur ou les tâches. De plus, Azure DevOps fournit une intégration plus étroite à son système de suivi des éléments de travail, ce qui permet une traçabilité et des fonctionnalités de création de rapports plus approfondies par rapport au suivi des problèmes de GitHub.
Traçabilité des bogues
Dans Azure DevOps, la traçabilité des bogues est facilitée via Azure Boards, où les bogues sont suivis en tant qu’éléments de travail et peuvent être liés aux modifications, validations et demandes de tirage (pull requests) du code. Azure Boards permet de créer des flux de travail personnalisés pour la gestion des bogues, en définissant les états Nouveau, Actif, Résolu ou Fermé, ce qui assure une visibilité sur le cycle de vie du bogue. En outre, Azure DevOps offre une intégration riche entre les bogues et d’autres éléments de travail, ce qui permet la traçabilité entre les bogues et les récits utilisateur, les tâches et les épopées.
Dans GitHub, la traçabilité des bogues s’appuie sur l’intégration entre les problèmes et les modifications du code, où les bogues signalés comme des problèmes peuvent être liés aux validations et aux demandes de tirage (pull requests). GitHub Actions permet d’implémenter des flux de travail personnalisables, y compris ceux qui sont liés à la traçabilité des bogues. Avec GitHub Actions, vous pouvez définir des flux de travail qui automatisent les processus déclenchés par des événements dans votre référentiel GitHub, tels que la création ou la modification de problèmes. Vous pouvez alors créer des flux de travail personnalisés pour gérer les bogues, notamment la définition d’états, l’attribution de tâches et l’automatisation des actions en fonction de conditions spécifiques. En effet, si la fonctionnalité GitHub Actions assure la flexibilité de l’automatisation des flux de travail, elle nécessite généralement davantage d’efforts et de personnalisation par rapport aux fonctionnalités intégrées d’Azure Boards dans Azure DevOps.
Traçabilité de la qualité
Dans Azure DevOps, la traçabilité de la qualité peut être gérée à l’aide de Test Plans, ce qui permet aux équipes d’organiser, d’exécuter et de suivre les cas de test. Test Plans fournit des métriques de qualité complètes, notamment les taux de réussite des cas de test, les résultats de l’exécution des tests et les rapports de couverture des tests. En outre, Azure DevOps offre une intégration avec des outils de couverture du code pour mesurer la couverture des tests et identifier les zones du codebase qui nécessitent des tests supplémentaires.
GitHub offre des fonctionnalités similaires via GitHub Actions, ce qui permet aux équipes d’automatiser différents types de tests, tels que les tests unitaires, les tests d’intégration et les tests de bout en bout. Ici aussi, la fonctionnalité GitHub Actions assure la flexibilité de la configuration des flux de travail de test et de l’intégration à des outils de test tiers, mais elle nécessite généralement une configuration supplémentaire pour atteindre le même niveau de métriques de qualité complètes et de rapports de couverture de test que Test Plans d’Azure DevOps.