Développement logiciel et gestion de projet

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 ?

  1. A84 °C
  2. B85 °C
  3. C86 °C
Afficher la réponse et l'explication

Réponse : B. 85 °C

D'après la spécification, un avertissement doit être émis à 85 °C, mais t > 85 est faux quand t = 85 : la spécification et l'implémentation ne divergent donc que lorsqu'on donne 85 °C. À 84 °C, aucune des deux n'émet d'avertissement, et à 86 °C, les deux en émettent un : l'erreur n'est donc pas visible. Tester des valeurs qui incluent la frontière elle-même, comme ici, est l'idée de l'analyse des valeurs limites. La confusion des opérateurs de comparaison est une erreur fréquente dans les contrôles de seuil des micrologiciels.

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

Autres questions sur Développement logiciel et gestion de projet

  1. 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) ?
  2. Les valeurs de vérité de a, b et c peuvent être choisies indépendamment les unes des autres. Pour le code « if (a) { S1; } if (b) { S2; } if (c) { S3; } », quel est le nombre minimal de cas de test nécessaires pour atteindre la couverture des branches (exécuter au moins une fois l'issue vraie et l'issue fausse de chaque décision) ?
  3. Pour la décision « A et B » (A et B sont des conditions dont les valeurs de vérité peuvent être fixées indépendamment), on a exécuté deux cas de test : (A = vrai, B = faux) et (A = faux, B = vrai). Quelle affirmation sur les critères de couverture est correcte ?
  4. Dans le test ascendant (bottom-up), que construit-on pour remplacer un module de niveau supérieur qui n'existe pas encore, afin qu'il appelle le module de niveau inférieur testé, lui transmette les données de test et reçoive les résultats ?
  5. Pendant les tests, on a tracé une courbe de croissance de fiabilité avec le temps de test (ou le nombre de cas de test exécutés) en abscisse et le nombre cumulé de défauts trouvés en ordonnée. La courbe monte encore, sans signe de saturation (de palier). Quel jugement est le plus approprié ?