Débogage et Tests Unitaires
13 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quelle exception est levée lorsqu'un utilisateur essaie de diviser par zéro dans le code ci-dessus?

  • TypeError
  • ZeroDivisionError (correct)
  • ValueError
  • AttributeError
  • Que se passe-t-il lorsque l'utilisateur entre un nombre non entier dans le premier bloc de code?

  • Le nombre est converti en entier.
  • ValueError est levée. (correct)
  • Le programme se termine correctement.
  • Un message de correction est affiché.
  • Quelle combinaison de touches déclenche l'exception KeyboardInterrupt?

  • CTRL-A
  • CTRL-Z
  • CTRL-V
  • CTRL-C (correct)
  • Quel message est affiché si l'utilisateur entre 0 dans le deuxième bloc de code?

    <p>Very bad input...</p> Signup and view all the answers

    Quelle technique n'est pas mentionnée comme méthode de débogage dans le texte?

    <p>Lire le code à voix haute</p> Signup and view all the answers

    Quelle est la première étape pour isoler un problème dans le code?

    <p>Exécuter la partie problématique séparément.</p> Signup and view all the answers

    Pourquoi est-il conseillé d'attribuer des valeurs concrètes aux variables lors du test du code?

    <p>Pour faciliter le débogage.</p> Signup and view all the answers

    Quel est l'avantage de faire une pause lors d'une session de débogage?

    <p>Cela permet de changer d'idées et de revenir avec une perspective fraîche.</p> Signup and view all the answers

    Les tests unitaires insistent sur le fait que les tests doivent être intégrés dans quel aspect du développement?

    <p>L'écriture du code.</p> Signup and view all the answers

    Que doit-on faire après toute modification du code selon la pratique des tests unitaires?

    <p>Exécuter tous les tests unitaires correspondants.</p> Signup and view all the answers

    Quel est le module Python dédié aux tests unitaires?

    <p>unittest</p> Signup and view all the answers

    Quel est le but principal de l'analyse des modifications apportées au code?

    <p>Déterminer la cause possible d'un bug récemment apparu.</p> Signup and view all the answers

    Lors du développement logiciel, comment les tests unitaires influencent-ils l'écriture de code?

    <p>Ils encouragent une écriture de code plus soignée et prévisible.</p> Signup and view all the answers

    Study Notes

    Débogage et Tests Unitaires

    • Isoler le problème: Extraire le code problématique pour l'exécuter à part. Commentez les parties du code qui cachent le problème. Attribuer des valeurs concrètes aux variables pour éviter la lecture d'entrées clavier. Tester les fonctions avec des valeurs d'arguments prévisibles pour reproduire et cerner le bug.

    • Analyser le code: Lire le code à haute voix et identifier les sections complexes.

    • Modifications récentes: Identifier les modifications récentes du code comme source possible de bugs si le problème est récent. Apprendre le versionning (Q2).

    • Changer d'approche: Prendre une pause, se changer les idées en buvant du café, se promenant, lisant, parlant à un ami pour une meilleure analyse du code. Être optimiste.

    Tests Unitaires

    • Intégralité des tests: Les tests unitaires ne sont pas seulement des tests du logiciel, mais surtout de la façon dont le code est écrit. Ils impliquent tests et préparation des données.

    • Prévisibilité: En codant une fonction (ou un ensemble), créez des données pour lesquelles le comportement du code est connu et prévisible.

    • Automatisation: Équiper le code d'une interface utilisable par un environnement de test automatisé.

    • Itération: Toute modification, même légère, du code doit être accompagnée de l'exécution de tous les tests unitaires associés.

    • Bibliothèque unittest: Python fournit le module unittest pour standardiser cette approche, mais ce module sera couvert plus tard dans le cours (Bac 2).

    Exceptions Python

    • Gestion des erreurs: Utiliser les exceptions Python pour gérer des situations inattendues, comme des entrées incorrectes ou une division par zéro.

    • Exceptions utiles: ZeroDivisionError, ValueError, TypeError, AttributeError, SyntaxError et KeyboardInterrupt (appuyant sur Ctrl+C).

    • Documentation: Consulter la documentation officielle Python pour plus d'informations sur ces exceptions.

    Débogage

    • Débogage d'impression: Utiliser le débogage d'impression pour identifier les valeurs des variables et le comportement du code.

    • Aide externe: Demander à quelqu'un de lire le code pour trouver des bugs ou des améliorations.

    • Isoler le code problématique: Concentrer les efforts sur le fragment de code suspect. Tester les fonctions avec des arguments prévisibles.

    • Entrées incorrectes: Prévoir des situations d'entrées incorrectes par l'utilisateur (via les tests) et les gérer pour une robustesse du système.

    • Pauses: Faire des pauses et revenir au code après un certain temps.

    Exemple de Code et Sortie

    • Exemple de code (division):
    try:
      value = int(input("Enter a value: "))
      print(value / value)
    except ValueError:
      print("Bad input...")
    except ZeroDivisionError:
      print("Very bad input...")
    except:
      print("Booo!")
    
    • Sortie avec entrée 0: "Very bad input..."

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    Ce quiz aborde les concepts de débogage et de tests unitaires. Il explore les techniques pour isoler les problèmes dans le code et analyser les modifications récentes. Les participants apprendront également l'importance des tests dans le développement logiciel.

    More Like This

    Unit Testing Quiz
    10 questions

    Unit Testing Quiz

    VictoriousLight avatar
    VictoriousLight
    Unit Testing for Counter Class
    23 questions
    Unit Testing Fundamentals
    30 questions
    Débogage et Tests Unitaires en Python
    13 questions
    Use Quizgecko on...
    Browser
    Browser