M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Faculté des Sciences M1- SEM d e l'Ingéniorat Vérification, Validation & Sécurité des Systèmes Embarqués Cours 4.1 Pr. R. BOUDOUR Année 2019-2020 Université d'Annaba *** 20 avril 2020 *** 1
Activité du test : Constat Souvent négligée et peu formalisée Considérée (à tort) comme moins noble que le développement Coût souvent supérieur de 50% du coût global d’un logiciel Très peu enseignée Université d'Annaba *** 20 avril 2020 *** 2
Notion de qualité logicielle : norme ISO 9126 La norme ISO/CEI 9126 définissait un langage commun pour modéliser les qualités d'un logicie. Elle est remplacée depuis 2011 par la norme ISO 25010, également appelée SQuaRE (pour software quality requirements and evaluation en anglais, c'est-à-dire exigences et évaluation de la qualité du logiciel). Université d'Annaba *** 20 avril 2020 *** 5
Cycle en V VABF : Vérification d’Aptitude au Bon Fonctionnement Université d'Annaba *** 20 avril 2020 *** 7
Cycle en V En pratique, il est difficile voire impossible de totalement dissocier la phase de conception d’un projet de sa phase de réalisation Université d'Annaba *** 20 avril 2020 *** 9
Bug (Bogue)? Le terme bogue est malheureusement utilisé pour désigner aussi bien défaut qu’une anomalie. Défaut ≠ anomalie Exemple : Une anomalie (telle une maladie) trouve toujours son explication dans un défaut (agent pathogène) et un défaut (un microbe latent) ne provoquera pas nécessairement une anomalie. Comme le test est en aval de l’activité de programmation, les erreurs (humaines) déjà commises, ainsi que la façon de les éviter ne nous préoccupent pas ! Nous porterons notre attention sur les défauts qui ont été malencontreusement introduits afin de minimiser les anomalies qui risquent de se produire. Université d'Annaba *** 20 avril 2020 *** 11
Généralités sur le test Qu’est-ce-qu’un Un bug (ou non conformité, ou défaut ou anomalie) est un comportement du système bug ? non conforme aux attentes du client Un bug peut être technique (système non Quels sont les disponible) ou fonctionnel (système ne réagit pas comme prévu) types de bug Bloquant: fonctionnalité critique impactée + pas possible daccomplir l’action jusqu’au Sévérité des bout + pas de solution de contournement Majeur : fonctionnalité critique impactée + bugs solution de contournement Mineur : tous le autres problèmes Université d'Annaba *** 20 avril 2020 *** 12
Chaine de l’erreur On estime qu’un développeur de bon niveau introduit en moyenne : 50 défauts pour 1000 lignes de code Université d'Annaba *** 20 avril 2020 *** 13
Chaine de l’erreur Spécification : Le programme prend en entrée trois entiers, interprétés comme étant les longueurs des côtés d'un triangle. Le programme retourne la propriété du triangle correspondant : scalène, isocèle ou équilatéral. Écrire un ensemble de cas de tests pour ce programme. Université d'Annaba *** 20 avril 2020 *** 14
Chaine de l’erreur Université d'Annaba *** 20 avril 2020 *** 15
Chaine de l’erreur Université d'Annaba *** 20 avril 2020 *** 16
Notion de fiabilité LA FIABILITÉ est l’aptitude d’une entité à accomplir une fonction requise pendant un intervalle de temps donné, dans des conditions données. MTTF signifie « Mean Time To Failure » (Temps moyen de fonctionnement avant panne). MTBF signifie « Mean Time Between Failure » (Temps moyen entre pannes). MTTR signifie « Mean Time To Repair » (Durée moyenne de réparation) Université d'Annaba *** 20 avril 2020 *** 17
Relation entre MTBF, MTTF et MTTR Université d'Annaba *** 20 avril 2020 *** 18
Relation entre MTBF, MTTF et MTTR Un disque dur a un MTBF > 100 000 heures, ce qui correspond, pour un serveur tournant en permanence, à plus de onze années de fonctionnement moyen sans panne. Intel a annoncé en 2008 des SSD ayant un MTBF de 1,2 million d'heures Université d'Annaba *** 20 avril 2020 *** 19
Mesure de disponibilité (taux de disponibilité) Université d'Annaba *** 20 avril 2020 *** 20
Calcul de MTBF Université d'Annaba *** 20 avril 2020 *** 21
Calcul de MTTR Université d'Annaba *** 20 avril 2020 *** 22
Remarques Université d'Annaba *** 20 avril 2020 *** 23
Notion de testabilité Testabilité : Facilité avec laquelle les tests peuvent être développés à partir des documents de conception Facteurs de bonne testabilité : Précision, complétude, traçabilité des documents Architecture simple et modulaire Politique de traitements des erreurs clairement définie Facteurs de mauvaise testabilité : Fortes contraintes d’efficacité (espace mémoire, temps) Architecture mal définie Université d'Annaba *** 20 avril 2020 *** 24
Notion d’indécidabilité Indécidabilité : une propriété indécidable est une propriété qu’on ne pourra jamais prouver dans le cas général (pas de procédé systématique) Exemples de propriétés indécidables : L’exécution d’un programme termine Deux programmes calculent la même chose Un programme n’a pas d’erreurs Explosion combinatoire : un programme a un nombre infini (ou extrêmement grand !) d’exécutions possibles Le test n’examine qu’un nombre fini (ou très petit) d’exécutions Heuristiques : approcher l’infini (ou l’extrêmement grand) avec le fini (très petit). => Choisir les exécutions à tester ! Impossibilité d’une automatisation complète satisfaisante ! Université d'Annaba *** 20 avril 2020 *** 25
Motivations Conception de systèmes fiables Industrie des technologies de plus en plus tournées vers des outils de spécification et vérification (Siemens, Thomson, Intel, . . . ) Besoin de compétences pour savoir utiliser et raisonner dans un tel contexte Spécifier pour vérifier Université d'Annaba *** 20 avril 2020 *** 26
Généralités sur le test Pour s’assurer que le Pourquoi teste-t- produit répond à on ? l’attente du client Comment Les attentes sont connaître les formulées dans des documents de référence attentes du client ? Comment savoir A Chaque étape quels tests faut- correspondra un type de test particulier il réaliser ? Université d'Annaba *** 20 avril 2020 *** 27
Régles de bonne conduite l Plus un test est réalisé tôt, moins il est coûteux Une bonne campagne de tests est une campagne qui trouve des bugs Si l’équipe ne dispose pas d’un testeur, les tests de qualification peuvent être effectués par les développeurs eux-mêmes lors des tests croisés Plus on avance dans le cycle de vie du projet, moins on doit trouver de bugs La qualité est l’affaire de tous Université d'Annaba *** 20 avril 2020 *** 28
Comparaison des méthodes de V&V Test : Nécessaire : exécution du système réel, découverte d'erreurs à tous les niveaux (spécification, conception, implantation) Pas suffisant : exhaustivité impossible Preuve : Exhaustif Mise en œuvre difficile, limitation de taille Model-checking : Exhaustif, partiellement automatique Mise en œuvre moyennement difficile (modèles formels, logique) Université d'Annaba *** 20 avril 2020 *** 29
Comparaison des méthodes de V&V Méthodes complémentaires : Test non exhaustif mais facile à mettre en œuvre (bon rapport qualité/temps) Preuve exhaustive mais trop coûteux Model-checking un compromis ? Mais : Preuve et model-checking limités par la taille du système et vérifient des propriétés sur un modèle du système (distance entre le modèle et le système réel ?) Test repose sur l'exécution du système réel, quelles que soient sa taille et sa complexité Université d'Annaba *** 20 avril 2020 *** 30
Tendancesactuelles Méthodes formelles : Test Model-checking Politique de certification Certains niveaux de certification exigent des méthodes formelles Obligation de certification Grandes entreprises Applications à risques Sous-traitance La certification est un processus d'évaluation de la conformité par un organisme indépendant qui aboutit à l'assurance écrite qu'un produit, répond à certaines exigences. Université d'Annaba *** 20 avril 2020 *** 31
Définition dutest Université d'Annaba *** 20 avril 2020 *** 32
Stratégie de test Une technique de test doit faire partie d’une stratégie de test adéquation avec le plan qualité Intégration dans le processus de développement des logiciels Une technique de test puissante restera sans effet si elle ne fait pas partie d’une stratégie de test… La stratégie dépend : de la criticité du logiciel du coût de développement Une stratégie définit : Des ressources mises en œuvre (équipes, testeurs, outils, etc.) Les mécanismes du processus de test (gestion de configuration, évaluation du processus de test, etc.) Une stratégie tient compte : Des méthodes de spécif, conception Langages de programmation utilisés Du type d’application (temps réel, protocole, base de données…) L’expérience des programmeurs Etc. Université d'Annaba *** 20 avril 2020 *** 33
Evolution du test Aujourd'hui, le test de logiciel : est la technique de validation la plus utilisée pour s'assurer de la correction du logiciel. fait l’objet d’une pratique trop souvent artisanale. Demain, le test de logiciel devrait être : une activité rigoureuse, fondée sur des modèles et des théories De plus en plus « automatique » Université d'Annaba *** 20 avril 2020 *** 34
Université d'Annaba *** 20 avril 2020 *** 35
Vous pouvez aussi lire