M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020

La page est créée Aurélien Boyer
 
CONTINUER À LIRE
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
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
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
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
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Notion de qualité logicielle : norme ISO 9126

Université d'Annaba *** 20 avril 2020 ***         3
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Notion de qualité logicielle : norme ISO 9126

Université d'Annaba *** 20 avril 2020 ***         4
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
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
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Exigences

Université d'Annaba *** 20 avril 2020 ***   6
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Cycle en V

                              VABF : Vérification d’Aptitude au Bon Fonctionnement

Université d'Annaba *** 20 avril 2020 ***                                       7
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Cycle en V

Université d'Annaba *** 20 avril 2020 ***   8
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
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
M1- SEM Vérification, Validation & Sécurité des Systèmes Embarqués - Cours 4.1 Année 2019-2020
Chaine de l’erreur

Université d'Annaba *** 20 avril 2020 ***   10
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