Développement logiciel et gestion de projet

Quand on applique un outil d'analyse statique au code source d'un micrologiciel, quel problème est-il le plus apte à trouver sans exécuter le programme ?

  1. AUne fonction dont les utilisateurs ont réellement besoin a été omise du cahier des exigences
  2. BDes chemins qui lisent une variable non initialisée, et des endroits qui risquent d'accéder à un tableau hors de ses limites
  3. CSur certaines cartes produites en série, des signaux sont interrompus par des soudures défectueuses
Afficher la réponse et l'explication

Réponse : B. Des chemins qui lisent une variable non initialisée, et des endroits qui risquent d'accéder à un tableau hors de ses limites

L'analyse statique examine la syntaxe, le flot de contrôle et le flot de données du code source sans l'exécuter, et trouve des problèmes comme la lecture de variables non initialisées, les accès hors limites aux tableaux, les déréférencements possibles de pointeurs nuls et les violations des règles de codage (comme MISRA C, utilisé pour le C embarqué). Elle peut trouver des problèmes sur des chemins que les tests atteignent rarement, mais elle produit aussi de faux positifs, si bien que des personnes examinent les résultats. Les exigences manquantes se trouvent par des revues et des vérifications avec les utilisateurs, et les soudures défectueuses par l'inspection en fabrication et les tests sur le matériel réel ; l'analyse du code source ne peut pas les révéler.

S'entraîner sur ce thème Retour au thème

Autres questions sur Développement logiciel et gestion de projet

  1. Quelle description du test boîte noire est correcte ?
  2. Un champ de saisie n'accepte que des entiers ; les valeurs de 1 à 100 inclus sont acceptées et toutes les autres provoquent une erreur. Quand on découpe l'entrée par partitionnement en classes d'équivalence, combien y a-t-il de classes d'équivalence au total (classes valides et invalides confondues) ?
  3. Un programme fixe le prix d'entrée selon l'âge (un entier supérieur ou égal à 0) : de 0 à 17 ans, tarif enfant ; de 18 à 64 ans, tarif adulte ; à partir de 65 ans, tarif senior. Quel jeu de valeurs de test est le plus approprié pour que l'analyse des valeurs limites vérifie les frontières où la catégorie de tarif change ?
  4. La spécification dit « émettre un avertissement si la température est de 85 °C ou plus », mais le micrologiciel contient par erreur « if (t > 85) ». La température t est un entier. Laquelle des valeurs de test suivantes permet de détecter cette erreur ?
  5. Les valeurs de temp et err peuvent être choisies indépendamment l'une de l'autre. Pour le code « if (temp > 80) { fan = HIGH; } else { fan = LOW; } if (err) { log(); } », quel est le nombre minimal de cas de test nécessaires pour atteindre la couverture des instructions (exécuter chaque instruction au moins une fois) ?