VALIDATION VÉRIFICATION & TESTS Le problème fondamental du génie logiciel : le problème de l'erreur
Le problème de l'erreur COMMENT CONSTRUIRE DES LOGICIELS QUI SOIENT : ERGONOMIQUES FIABLES EVOLUTIFS ECONOMIQUES SATISFAISANT AUX CRITERES Coût/Qualité/Fonctionnalités/Délais de réalisation (CQFD) GARANTISSANT LE CONTRAT DE SERVICE REQUIS PAR LES USAGERS
Le constat et les causes PRESENCE DE NOMBREUX DÉFAUTS DANS LES LOGICIELS CAS DE LA NAVETTE SPACIALE : logiciel embarqué : 0.11 par KLS (500) logiciel sol : 0.40 par KLS (1400) Logiciels grand public : plutôt 5-10 voire plus par KLS EVOLUTIVITE DES LOGICIELS PROBLEMATIQUE (Régression en qualité) CAS DES GRANDS SYSTEMES
Présence et retrait des défauts logiciels Modèle de données, en particulier interfaces entre les modules, Modèle d’enchaînement/contrôle des fonctions Conception détaillée Code source fabriqué par les programmeurs, compilé sans erreur Programmation VVT Tests de couverture Tests fonctionnel à partir des données Réduction du nombre de défauts au minimum acceptable selon le contrat de service Tests de performance 80 à 100 défauts par KLS Tests de robustesse Tests de pré-intégration 5 à 10 défauts par KLS Intégration 1 à 2 défauts par KLS Installation
Fiabilité de la communication humaine L'ERREUR HUMAINE EST FREQUENTE DANS : L'ACTIVITE LOGICO-MATHEMATIQUE LA GENERALISATION ET LA CONSTRUCTION DES ABSTRACTIONS LA MODELISATION ET LA DYNAMIQUE DES SYSTEMES LA COMMUNICATION (COMPRENDRE ET ETRE COMPRIS AU SEIN D’UN GROUPE : LA SÉMANTIQUE) LA TRADUCTION (CHANGEMENT DE CODE) CES ACTIVITÉS SONT AU COEUR DE LA PROBLEMATIQUE INFORMATIQUE
Terminologie QUELQUES DEFINITIONS (IEEE STD 982 et 1044) ERROR (Erreur) : Human action that results in software containing a fault. E.g. omission or misinterpretation of user requirements in a software specification, and incorrect translation or omission of a requirement in the design specification. DEFECT (Défaut) : A product anomaly; e.g. (1) omissions and imperfections found during early life cycle phases and (2) faults contained in software sufficiently mature for test or operation. FAULT (Défaillance) : (1) An accidental condition that causes a functionnal unit to fail to perform its required function. (2) A manifestation of an error in software. A fault if encountered may cause a failure. FAILURE (Panne) : The termination of the ability of a functionnal unit to perform its required function. A failure may be produced when a fault is encountered.
La chaîne de l'erreur Erreur Défaut Défaillance Panne ACTION HUMAINE ERROR DEFECT FAULT FAILURE Est à l'origine qui peut conduire qui peut provoquer ACTION HUMAINE DANS LE LOGICIEL DANS LE PRODUIT DE LA FONCTION Métrique: Densité d'erreurs Temps moyen de diagnostique MTTR Peut être masqué par des dispositifs de type tolérance aux pannes Métrique: MTTF MTBF
Caractéristiques qualité Reliability (Fiabilité) Probabilité p de fonctionnement sans panne, pour une certaine durée, sous certaines conditions environnementale p dépend de la qualité des entrées et du taux de défauts résiduels du logiciel Safety/Dependability (sûreté de fonctionnement) Capacité à éviter les dangers et/ou les risques qu’une panne logicielle peut faire courir à l’environnement système (pertes d’équipements, pertes humaines, dégradations, etc.) Dépend de la capacité du système englobant (modèles de pannes) à rétablir une situation sans risque (survie, reconfiguration, etc.)