Automatisation des Tests & Revue de code

”Automation does not do what testers used to do, unless one ignores most things a tester really does. Automated testing is useful for extending the reach of the James Bach testers work, not to replace it.”

  • Définition de l’automatisation 

L’automatisation de test permet de faciliter les tests de non-régression à la suite de la livraison d’une nouvelle version d’une application.

1
  • Quand on peut faire l’automatisation des tests

L’automatisation d’un test n’a de sens que si le test répond à un certain nombre de critères :

Le test est systématique : il doit être exécuté à chaque nouvelle version de l’application.

Le test est répétitif : il est présent dans de nombreux scénarios de test (il est intéressant d’automatiser si le test est rejoué 8 fois ou plus).

Le test est automatisable : il est possible techniquement de faire jouer le test par un robot.

De plus, il faut se focaliser sur le type de notre test : En effet, s’il s’agit d’un test de performance ou de composant, il est alors préférable de l’automatiser afin d’éviter des erreurs humaines (que ce soit un test fonctionnel pour lequel nous souhaitons récupérer des mesures de temps de réponse ou bien un vrai test de stress simulant un certain nombre d’utilisateurs simultanés).

2
  • Avantages de l’automatisation 
  1. Faciliter les maintenances logicielles
  2. Accélérer le cycle de test
  3. Gagner le temps d’exécution : (temps d’exécution du test lui-même mais aussi une exécution sans contrainte horaire) ce qui rend possible d’étendre les tests sur une plus grande partie de l’application.
  4. Réduire le temps de préparation notamment concernant le jeu de données : l’automate peut très souvent mettre à jour son jeu de données dynamiquement.
  5. Eviter le signalement des bugs de non régression par le client
  6. Réduire les risques d’erreurs humains
  7. Ré utilisabilité des tests
  8. Volume : lancer le même test sur plusieurs devices (pour les applications mobiles) ou sur plusieurs navigateurs (pour les applications web)
  9. L’augmentation de la couverture des tests
  • Inconvénients de l’automatisation
  1. Le coût du premier test
  2. La maintenabilité des tests à chaque mise à jour
  3. L’automatisation ne peut pas être appliquée à tous les tests
  4. Risque de non fiabilité des tests
  • Définition de revue de code

“A well-written program is a program where the cost of implementing a feature is constant throughout the programs lifetime.”

La revue de code est un examen systématique du code source d’un logiciel.

 l’objectif étant de trouver des bugs ou des vulnérabilités potentielles ou de corriger des erreurs de conception afin d’améliorer la qualité, la maintenabilité et la sécurité du logiciel.

Une revue de code peut s’appuyer sur la vérification (manuelle ou automatisée) du respect d’un ensemble de règles de programmation

3
  • Avantages de revue de code
  1. Améliorer la qualité du code
  2. Favoriser la collaboration, le travail en équipe
  3. Appliquer un standard
  4. Détecter et corriger les défauts au plus tôt durant SDLC
  5. Économiser les coûts
  • Outils de revue de code

Sonar est une plate-forme Open Source permettant d’effectuer l’analyse statique de code selon différentes règles. Elle fournit des indicateurs et des métriques de qualité qui sont visualisés via un conteneur Web (Jetty) intégré dans Sonar.

Les fonctionnalités principales sont l’analyse du respect des règles de codage, des conventions de nommage, du pourcentage de commentaires, la détection de bugs, la détection de duplication de code, la détection de code mort, le calcul de couverture des tests unitaires et d’intégration, la détection de cycles, le calcul du nombre de lignes de code, de classes, de méthodes et le calcul de la complexité cyclomatique.

Les fonctionnalités de Sonar :

●Support de plus de vingt-cinq langages (Java, C/C++, Objective-C, C#, PHP, Flex, Groovy, JavaScript, Python, PL/SQL, COBOL…)

●Reporting sur :

○Identification des duplications de code

○Mesure du niveau de documentation

○Respect des règles de programmation

○Détection des bugs potentiels

○Évaluation de la couverture de code par les tests unitaires

○Analyse de la répartition de la complexité

○Analyse du design et de l’architecture d’une application

●Analyses entièrement automatisées : integration avec Maven, Ant, Gradle et serveurs d’intégration continue (Atlassian Bamboo, Jenkins, Hudson…).

●Intégration avec l’environnement de développement Eclipse

●Intégration avec des outils externes : JIRA, Mantis, LDAP, Fortify…

●Extensible par des plugins. Cela signifie qu’il est possible d’étendre ce cœur afin d’augmenter les fonctionnalités (ajout d’un nouveau langage, calcul d’une nouvelle métrique, ajout de règles de programmation…).

●Implémentation de SQALE pour évaluer la dette technique.

4

Publié par

3 réponses sur « Automatisation des Tests & Revue de code »

  1. Pour info :
    Il est aussi possible d’utiliser Sonar sans avoir de gestionnaire de dépendance comme Maven, Ant, Gradle. (Je sais à l’heure actuelle faire un projet sans gestionnaire de dépendance est une hérésie … Mais je l’ai vécu sur un projet …).

    Pour cela il suffit de configurer SonarRunner, un script sh (si nous sommes sur du Linux) et un gestionnaire de cron (natif sur linux. ou jenkins) pour lancer l’analyse.

    J'aime

  2. Bonjour @Antoine,

    Merci pour votre commentaire, est ce que vous avez utilisé Sonar Qube sous Windows dans le but de faire la revue de code des scripts automatiques pour assurer la qualité des tests et les optimiser qui vont eux même assurer la qualité de l’application testée ?

    J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s