Blog de G. MOKOLOMBOKA

Ingénieur J2EE, Flex, Intégration

Tests logiciel

Bookmark this on Hatena Bookmark
Hatena Bookmark - Tests logiciel
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed
Tests logicielBlog de G. MOKOLOMBOKA

Je vais essayer dans cet article de vous donner un aperçu des tests logiciels le plus succintement possible. Je pense que certaines hiérarchies hésitent de le mettre en place soit parce que cela demande beaucoup de ressources ou alors minimisent son importance.

Mais une fois le « process » mis en place et « rodé », c’est que du bonheur et de l’efficacité.


Quelques évènements:

Therac-25

Entre 1985 et 1987, plusieurs patients sont décédés ou ont été gravement atteints dans leur santé suite à un bug de dosage d’un appareil médical de radiothérapie. L’appareil, le Therac-25, permet d’envoyer des faisceaux d’électrons, de rayons X ou de lumière (pour éclairer le patient). La puissance d’émission du faisceau d’électrons est 100 fois plus élevée que celle des rayons X.

bug de l’an 2000:

Le bug de l’an 2000, aussi appelé bug du millénaire : un ou plusieurs bugs dans un logiciel qui manipule des dates provoquent des dysfonctionnements lorsque les dates sont postérieures au 31 décembre 1999. Une des causes est que les calculs sur les dates se font avec uniquement sur les deux derniers chiffres de l’année.

Le test logiciel:

Je tiens à dire qu’il n’existe pas de logiciel « zéro-faute » même si la question fait l’objet de plusieurs recherches de nos jours.

Le but principal étant de minimiser les risques liés au bugs – ha ce mot bug qui a fait trembler le monde entier en 2000 - car certaines « fautes » peuvent faire perdre beaucoup d’argent ou faire une vie.

La construction d’un test logiciel respecte souvent le cycle en V(vé) comme ci-dessous:


Cycle de développement

Les types de tests:

  • Tests unitaires

Ils consistent à tester un module indépendamment du reste du système pour s’assurer de son bon fonctionnement. Souvent couplés avec des outils de couverture de code afin de vérifier que le test prend en compte tous les cas possibles.

On distingue dans les tests unitaires:

  • Les tests logiques: recherche d’erreurs, vérification de l’enchaînement correct des branches parcourues);
  • Les tests de cacul: vérification des résultats des calculs, des performances, de l’exactitude des algorithmes.
  • Les tests de comportements anormaux ou encore tests de robustesse
  • Les tests de données se situant dans les limites de spécifications
  • Tests d’intégration

Ce test s’exécute après les tests unitaires. Il permet de tester l’ensemble des différents modules du logiciel afin de s’assurer de son bon fonctionnement. Ils portent principalement sur la vérification des enchaînements entre modules, la circulation des données, les aspects dynamiques, les séquences d’événements prévus et les reprises en cas d’interruption.

  • Tests de non régression

Ils permettent de s’assurer que les dernières modifications n’ont pas apportées de nouveaux bug.

  • Tests de validation

Ces tests permettent de vérifier que le programme est conforme aux spécifications, ils testent le comportement du logiciel du point de vue externe.

Quelques outils de tests:

  • Subversion: Gestion des codes sources
  • JUnit /DbUnit: pour les tests unitaires en Java
  • Cobertura : Outils de couverture de test, permettant de s’assurer qu’un test couvrent toute les lignes de code (java).
  • Clover: Un autre outils java de couverture de test.
  • Selenium: Tests fonctionnels
  • Checkstyle : Contrôle de la qualité du code source java
  • Ant : Automatisation des tache répétitive comme la compilation des sources en java.
  • Testlink : Outils de suivi et de gestion des tests
  • Hudson : Outils d’intégration continue
  • Redmine : Gestion de projet

Certains outils cités ci-dessus peuvent être intégrés dans hudson de manière à exécuter les tests automatiquement et régulièrement.

Pour allez plus loin dans le contrôle de qualité de vos codes sources, il y a également un outils interessant que vous pouvez tester: code collaborator

Notez qu’il est possible d’intégrer tous ces outils dans Hudson pour une intégration continue.

Il serait ainsi possible d’exécuter automatiquement et à intervalles réguliers tous les tests unitaires, de couverture et qualité de code puis générer des graphiques et rapports d’erreurs.

Voilà !!! prenez donc votre courage et essayez de convaincre votre hiérarchie des bienfaits des tests.

Pour plus d’informations :

N’hésitez donc pas à poster vos commentaires!

Pour plus d’informations:

AndroMDA: gestion de modèles, vous trouverez un bon tutoriel ici

Maven: construction de projets

Jira: Bug tracking

MbUnit: test unitaire

Eclipse: environnement de développement


Share and Enjoy
Tinyurl for this post

Your email address will not be published. Required fields are marked *

*

IMPORTANT! To be able to proceed, you need to solve the following simple math (so we know that you are a human) :-)

What is 6 + 6 ?
Please leave these two fields as-is: