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 le développement piloté par les tests (TDD)

Par Parasoft

20 janvier 2011

3  min lire

L'automatisation peut rendre le développement piloté par les tests (TDD) moins pénible et plus précieux. Apprenez à utiliser l'automatisation pour faire de TDD une partie intégrante du flux de travail de développement.

Puisque nous nous concentrons sur l'automatisation des tests logiciels chez Parasoft, on nous demande souvent: Comment l'automatisation s'applique-t-elle au développement piloté par les tests (TDD)? La plupart des équipes exécutent automatiquement leurs tests TDD dans le cadre du processus d'intégration continue. Mais que pouvez-vous automatiser d'autre lorsque le processus de conception de tests efficaces est nécessairement créatif?

Il y a plusieurs façons dont l'automatisation peut jouer un rôle encore plus important en faisant du TDD un processus moins douloureux et plus précieux.

Obstacles à l'adoption du TDD

Le principal obstacle auquel font face les équipes de développement pour adopter véritablement le TDD est le temps nécessaire pour créer et maintenir les cas de test requis. Sans automatisation des processus, les contraintes de temps permettent à la pratique TDD de devenir «facultative».

Les contraintes de temps proviennent de deux sources principales:

  1. La mise en place de bons tests peut être complexe: Le processus d'écriture d'un test qui vérifie efficacement une exigence implique à la fois de la créativité et de solides compétences en codage / test. La complexité de la création de tests unitaires efficaces ajoute au défi: la mise en place des conditions initiales appropriées pour des tests unitaires réalistes peut être difficile et prendre du temps.
  2. La suite de tests doit être synchronisée avec l’évolution de l’application: Idéalement, au fur et à mesure que chaque test TDD est créé, il est ajouté à une suite de tests de régression, puis exécuté régulièrement sur la base de code en évolution pour alerter l'équipe lorsque des modifications de la base de code interrompent ou modifient la fonctionnalité déjà testée. Cependant, pour que cette stratégie produise les résultats souhaités, l'équipe doit garder la suite de tests synchronisée avec l'application en évolution; sinon, les résultats des tests seront si bruyants qu'ils seront ignorés - ou toute la suite de tests sera abandonnée.

Compte tenu de la nature comprimée des calendriers de développement actuels et de la pression constante pour faire plus avec moins, il n'est pas surprenant que de tels les tâches ont tendance à être abandonnées à moins que les tâches TDD ne deviennent une partie naturelle et non négociable du flux de travail quotidien de l'équipe.

Et c'est là que l'automatisation entre en jeu.

Le rôle de l'automatisation dans le TDD

L'automatisation est précieuse pour faire des tâches TDD une partie intégrante du flux de travail de développement. Par exemple, considérez la valeur ajoutée suivante de l'automatisation:

  • Pour rendre les tests plus utiles…vous pouvez utiliser l'automatisation pour corréler les exigences, les tâches, le code, les tests, les versions, les développeurs et les artefacts, ainsi que pour ajouter un suivi de la couverture, des rapports avancés et une détection des erreurs d'exécution pendant l'exécution des tests.
  • Pour s'assurer que les pratiques de TDD sont maintenues…vous pouvez utiliser l'automatisation pour établir une infrastructure qui avertit le développeur si un test unitaire n'est pas encore associé à une tâche ou à une exigence.
  • Pour faciliter le développement de tests unitaires…vous pouvez utiliser l'automatisation pour réduire le travail requis pour mettre en œuvre des cas de test réalistes et utiles.
  • Pour faciliter la maintenance de la suite de tests unitaires…vous pouvez utiliser l'automatisation pour attribuer chaque échec de test au développeur responsable et le distribuer à son IDE pour faciliter l'examen et la réponse.
  • Pour supprimer les contraintes de test…vous pouvez utiliser la virtualisation des services pour simuler les interactions avec des systèmes ou des composants incomplets ou évolutifs impliqués dans vos tests. Cela vous aide à écrire et à exécuter des tests bien avant que le système complet ne soit prêt/disponible.
  • Pour s'assurer que les tâches manuelles deviennent une partie continue et naturelle du flux de travail…vous pouvez utiliser l'automatisation pour orchestrer un processus basé sur des règles. Dans un tel processus, les attentes de la direction sont définies en définissant quelles pratiques sont requises, ainsi que quand et comment les appliquer. Les tâches associées sont ensuite intégrées de manière transparente dans tout le SDLC et surveillées discrètement pour vérifier leur conformité.

Comment avez-vous appliqué l'automatisation pour optimiser le processus TDD? Partagez vos histoires sur ce qui a fonctionné et les défis que vous avez rencontrés dans les commentaires ci-dessous.

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.