Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Comment automatiser les tests pour un développement distribué géographiquement

Par Parasoft

17 novembre 2011

3  min lire

Automatisez et coordonnez le processus de partage du code source entre les équipes réparties géographiquement pour le rendre durable.

Les stratégies de partage du code source entre les groupes sont beaucoup plus efficaces lorsqu'elles sont appliquées à l'aide de l'automatisation. L'automatisation est importante pour réduire les dépendances sur les ressources manuelles nécessaires pour rendre le partage de code source efficace, ainsi que pour s'assurer que les politiques définies sont suivies chaque jour, malgré la paresse humaine.

Où appliquer l'automatisation

Chaque groupe de développement peut tirer parti de l'automatisation pour documenter, protéger, améliorer et sécuriser le code source de chaque module.

  • L'application automatisée des politiques pour documenter les interfaces publiques, les entrées de paramètres et les valeurs de retour augmentera la compréhension du code par les développeurs qui lisent la documentation ainsi que par ceux qui l'écrivent.
  • Les dangers de modifications erronées ou de changements de style par des développeurs de différents groupes sont atténués lorsque l'automatisation est utilisée pour garantir la qualité et la conformité. Toute modification non conforme est immédiatement refusée ou signalée pour examen.
  • L'automatisation peut également vérifier que les tests unitaires couvrent la majorité du code source et, dans certains cas, peuvent même créer des tests supplémentaires pour exposer les défauts et améliorer la qualité.
  • L'analyse de code automatisée avec la possibilité d'identifier des modèles personnalisés accélérera le processus d'un groupe apprenant des erreurs d'un autre. Un modèle de code source pour un défaut dans un groupe peut être partagé avec le reste des groupes et appliqué à l'ensemble de la base de code existante pour trouver des erreurs similaires.

Obstacles à l'automatisation

Les principaux obstacles à l'adoption de processus automatisés sont les ressources de déploiement et les objections à l'application des politiques de la part des développeurs individuels.

Les outils automatisés prendront du temps et des efforts pour être configurés dans des environnements spécifiques. Certains outils d'analyse de code sont disponibles gratuitement en open source, tout comme JUnit, le framework de tests unitaires pour Java. Des outils commerciaux sont également disponibles pour automatiser l'application de la politique de développement commune, mais ceux-ci nécessitent un investissement monétaire. Certains développeurs résisteront à l'application de politiques qui entre en conflit avec leurs pratiques de programmation préférées. Les conventions de dénomination, les erreurs possibles et les exigences des tests unitaires sont des sujets controversés. Même si l'automatisation permet de rendre une base de code partageable entre plusieurs équipes distribuées, le processus n'est pas entièrement trivial.

Compléter le développement collaboratif par l'automatisation peut présenter les solutions à ses propres problèmes. L'investissement en temps et en argent est inévitable, mais les avantages l'emporteront largement sur le sacrifice une fois que le système sera mis en place et fonctionnera. La plupart des approches automatisées pour appliquer la politique de développement sont très personnalisables. Les groupes de développement têtus qui ne veulent pas se conformer à une norme à l'échelle de l'entreprise sont facilement apaisés si certaines exceptions peuvent être faites pour leur groupe. La politique doit être définie en termes de ce qui est obligatoire pour l'ensemble de l'organisation et de ce qui n'est requis que pour des groupes individuels. Les développeurs doivent vérifier que leur code est conforme à une politique héritée de la politique à l'échelle de l'entreprise et complétée par des exigences spécifiques au groupe. Un processus automatisé doté des bonnes capacités répondra à la plupart des préoccupations, mais une planification minutieuse est importante pour identifier les fonctionnalités requises.

La coordination est la clé

Le partage d'une base de code source entre les groupes de développement nécessite des objectifs clairement définis. Les développeurs et les gestionnaires tomberont sur de nombreux obstacles lors de la transition vers une base de code partagée, et de nombreuses personnes impliquées remettront en question les avantages escomptés.

Un avantage évident est qu'un processus de développement unifié entraîne des similitudes dans l'apparence et la fonctionnalité du produit. Les expériences partagées d'un groupe peuvent empêcher d'autres groupes de faire les mêmes erreurs.

Cependant, la complexité supplémentaire de chaque groupe de développement reposant sur du code écrit par d'autres groupes rendra ce niveau de partage difficile. Par exemple, différents groupes et cultures ont tendance à favoriser des styles de programmation différents, ce qui entrave la collaboration étroite et le processus de développement unifié. De plus, les travaux de développement répartis sur plusieurs fuseaux horaires réduiront les chances de réussite de la création de la base du code complet. À tout moment, quelqu'un quelque part sera probablement en train de changer quelque chose. Lorsqu'un composant tombe en panne, que ce soit sur le plan fonctionnel ou en ce qui concerne la compilation, tous les autres groupes qui tentent de créer la base de code complète, ou qui dépendent de ce composant, seront affectés négativement.

Néanmoins, surmonter ces défis et d'autres liés à la mise en œuvre d'un processus de développement partagé en vaut la peine, compte tenu du résultat final des applications et du code source plus uniformes.

Automatisez les tâches de test chronophages pour les développeurs et les testeurs

Par Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.