lundi 9 août 2010

RÔLE DES TESTS

Le rôle des tests est multiple. En effet, aujourd’hui le logiciel est partout et remplit des missions très variées : gestion des paies, gestion du personnel et des clients par les systèmes d’informations des entreprises, contrôle des centrales nucléaires, aide au pilotage des avions civils et militaires, amélioration de fonctionnement des appareils ménagers, services offerts sur les téléphones portables, etc. « Il y a plus d’informatique dans la Volvo S80 que dans le chasseur F15 » déclarait en janvier 2000 Denis Griot responsable de l’électronique automobile chez Motorola.
On ne sait pas, par construction, fabriquer des logiciels sans défaut : l’homme commet des erreurs et aucun programme ne peut générer de façon sûre un autre programme ou vérifier qu’un programme fait exactement ce pour quoi il est fait. En effet, les limites théoriques montrent qu’il est impossible dans le cas général, de construire un algorithme permettant de dire si:
  • étant donnés deux programmes P et P’qu’ils font la même chose.
  • étant donné un programme P et un entier n, permette de dire que P ne va pas boucler indéfiniment sur l’entrée n.
  • qu’étant donné un programme P et une fonction f de N dans N, il soit capable de dire si P calcule effectivement f.
 (il s’agit d’un problème de décidabilite). . Si tel était le cas, et si l’on notait Stop ce programme et Stop(P), le résultat de l’analyse de la terminaison d’un programme P par Stop, on pourrait construire un programme B contenant l’instruction « si Stop(B) alors rentrer dans une boucle sans fin, sinon arrêter ». Ce programme B mettrait en défaut systématiquement ce programme oracle Stop.
Devant ce constat d’impossibilité, différentes approches sont possibles :
1. se limiter à construire des programmes très simples que l’on sait analyser de façon certaine, mais qui ne pourront résoudre que des problèmes limités ;
2. construire des programmes complexes dont on ne pourra prédire de façon exacte le comportement, mais qui permettront dans la plupart des cas de résoudre des problèmes ambitieux.

dimanche 8 août 2010

Le rôle des tests pour assurer la qualité logiciel

Dans ce billet je vais tenter d'expliquer le rôle que joue les tests pour assurer la qualité logiciel, à l'aide des tests on peut mesurer la qualité en termes de défauts trouvés, pour des caractéristiques et exigences tant fonctionnelles que non-fonctionnelles (par exemple : fiabilité, utilisabilité, rentabilité et maintenabilité).
Les tests peuvent augmenter le niveau de confiance en la qualité d’un logiciel s’ils trouvent peu ou pas de défauts. Un test conçu correctement et qui est exécuté sans erreur réduit le niveau de risque général du système. Quand les tests trouvent des défauts, la qualité du système logiciel s’accroît quand ces défauts sont corrigés.
d'où l'intérêt des tests, je vais essayer dans les billets qui vient de couvrir :



1.     Notions de modèle vs. cycle de vie d’un logiciel
2.     Les cycles de vie du logiciel :
2.1.    Les modèles séquentiels
2.1.1.   Le modèle en « cascade »
2.1.2.   Le modèle « d’intégration »
2.1.3.   Le modèle en « V »
2.1.4.   Le modèle RAD
2.2.    Le cycle de vie « itératif »
2.2.1.   Le modèle incrémental
2.2.2.   Le modèle en « Spirale de Boehm »
2.2.3.   Le modèle UP
2.2.4.   Le modèle RUP
2.2.5.   Le modèle EUP
2.2.6.   Le modèle 2TUP
2.3.    La méthode « Agile »
2.3.1.   Le modèle « ASD »
2.3.2.   Le modèle « DSDM »
2.3.3.   Le modèle « FDD »
2.3.4.   Le modèle « Crystal »
2.3.5.   Le modèle « SCRUM »
2.3.6. Le modèle XP
3.       Les différents niveaux de tests
3.1.    Les tests unitaires
3.2.    Les tests d’intégration
3.3.    Les tests du système complet
3.4.    Les tests d’acceptation
4.       Les différentes natures de tests
4.1.    Les tests fonctionnels
4.2.    Les tests de compatibilité de plate-forme
4.3.    Les tests de robustesse
4.4.    Les tests de performance
4.5.    Les tests de montée en charge
4.6.    Les tests d’ergonomie
5.     ressource
 

N'hésitez pas à nous faire part de votre avis .