Concepts clés : Actions et Pratiques

Action

Les actions constituent la donnée essentielle produite par Themis. A partir d’événements produits par les équipes de développement, Themis produit des actions qui déterminent leur impact sur la qualité du projet. 3 types d'actions existent dans Themis :

Action saine

Une action saine caractérise une action propre qui respecte la pratique mise en place. 

Exemple : une modification sur un fichier qui n'impacte pas sa couverture de code.

 Action réparatrice

Une action réparatrice apporte des améliorations et des corrections. Elle fait suite à de précédentes actions nocives.

Exemple : une modification sur un fichier qui augmente sa couverture de code.

 Action nocive

Une action nocive cause une dégradation et représente un cas où les directives n'ont pas été respectées.

Exemple : une modification sur un fichier qui diminue sa couverture de code.

La définition de chaque action est définie, implémentée et configurée dans Themis, qui va instancier ces actions au fur et à mesure de ses observations.

Pratique

Une pratique définit un ensemble de type d'actions saines, réparatrices et nocives qui est propre à une problématique précise d'un environnement de développement logiciel. Themis mesure le suivi de plusieurs pratiques de façon indépendante et quantifie les actions effectuées par les équipes sur ces pratiques.

Il existe 3 pratiques dans Themis. En voici la description avec leur ensemble respectif d'actions.

Dette technique (DET)

Cette pratique mesure un ensemble d'actions relatives au suivi de bonnes pratiques liées à la rédaction du code source. Ces bonnes pratiques sont déterminées par l'outil utilisé sur votre projet (le linter) pour l'analyse statique du code source. 

 Action saine

  • Modification saine : Lors d'un commit, un fichier a été mis à jour et aucune nouvelle violation n'a été ajoutée ou supprimée

 Actions réparatrices :

  • Diminution de dette : Lors d'un commit, un fichier a été mis à jour et le nombre de violations qu'il contient a diminué
  • Suppression de dette : Lors d'un commit, un fichier a été mis à jour et toutes les violations qu'il contient ont été supprimées

 Action nocive :

  • Augmentation de dette : Lors d'un commit, un fichier a été mis à jour et des violations ont été ajoutées

Couverture de code (COV)

Cette pratique suit l'impact de modifications du code quant à la couverture de code. Dans cette pratique, il est défini un seuil par défaut à atteindre qui est de 80%. Cette valeur peut être modifiée pour chacun des projets.

 Actions saines 

  • Création et seuil OK : Lors d'un commit, un fichier a été ajouté et sa couverture respecte le seuil requis
  • Création et couverture complète : Lors d'un commit, un fichier a été ajouté et sa couverte est de 100%
  • Augmentation (sur seuil) : Lors d'un commit, un fichier a été modifié et sa couverture a augmenté, et celle-ci respecte toujours le seuil requis
  • Niveau maintenu : Lors d'un commit, un fichier a été modifié et sa couverture est restée identiqué
  • Augmentation (sous seuil) : Lors d'un commit, un fichier a été modifié et sa couverture a augmenté, mais celle-ci se situe sous le seuil requis
  • Niveau maintenu (sur seuil) : Lors d'un commit, un fichier a été modifié et sa couverture est restée identique. Cependant, celle-ci respecte toujours le seuil requis
  • Niveau maintenu (sous seuil) : Lors d'un commit, un fichier a été modifié et sa couverture est restée identique. Cependant, celle-ci se situe toujours en dessous du seuil requis

 Action réparatrice :

  • Seuil atteint : Lors d'un commit, un fichier a été modifié et sa couverture respecte désormais le seuil requis
  • Couverture complète : Lors d'un commit, un fichier a été modifié et sa couverture a atteint les 100%

 Actions nocives :

  • Création et sous le seuil : Lors d'un commit , un fichier a été ajouté et sa couverture se situe sous le seuil requis
  • Diminution (sous seuil) : Lors d'un commit, un fichier a été modifié et sa couverture a diminué, et celle-ci se situe toujours en dessous du seuil requis
  • Passage sous le seuil : Lors d'un commit, un fichier a été modifié et sa couverture se situe désormais sous le seuil requis
  • Diminution (sur seuil) : Lors d'un commit, un fichier a été modifié et sa couverture a diminué, mais celle-ci respecte toujours le seuil requis

Test-first development (TFI)

Cette pratique analyse, lorsque des fichiers sont modifiés, si les lignes éditées ou ajoutées sont couvertures ou non par des tests unitaires. 2 types d'actions existent pour cette pratique.

 Action saine

  • Ligne couverte : Lors d'un commit, un fichier a été modifié et toutes les lignes ajoutées ou modifiées sont couvertes par des tests

 Action nocive :

  • Ligne non-couvertes : Lors d'un commit, un fichier a été modifié et certaines lignes ajoutées ou modifiées ne sont pas couvertes par des tests

Questions fréquentes

Comment sont déterminés les auteurs des actions ?

Themis analyse les données de votre code source à partir de chaque source que vous avez intégré dans la plateforme. L'historique des commits permet de caractériser chaque modification d'un fichier dans un commit en une action. Par défaut, une seule personne peut être l'auteur d'un commit et donc d'une action. Nous proposons néanmoins une astuce pour prendre en compte des pratiques telles que le pair-programming, ou plus généralement le mob-programming.

Que se passe-t-il lorsqu'un fichier est supprimé sur le dépôt de code ?

Aucune action ne sera généré par Themis lorsqu'un fichier est supprimé d'un dépôt de code source. Ainsi, même si ce fichier contenait des défauts de code, il n'y aura pas d'actions réparatrices associées.

Entre deux analyses de code, il y a plusieurs modifications d'un fichier. Comment cela ressort-il dans Themis ?

Themis va s'efforcer de caractériser chacun des commits ayant eu lieu entre deux analyses de code ou deux calculs de couverture de code. Si un fichier a été édité dans plusieurs commits, et que le dernier rapport indique une diminution du nombre de défauts de code, Themis prendra le parti d'attribuer à un des commits l'action réparatrice de réduction des défauts, et les autres généreront des actions saines.

Que peut-on paramétrer sur les pratiques ?

Chacune des pratiques est configurable par projet. Il est possible de modifier des paramètres spécifiques aux pratiques et de modifier le niveau de chacune des actions. Il n'est pas possible de désactiver des types d'actions.

 

Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0

Commentaires

0 commentaire

Veuillez vous connecter pour laisser un commentaire.