QCM : Habitudes d’écriture et tests unitaires (11 questions)

Questions et réponses du QCM

1. Les principales pistes d’amélioration de l’écriture du code comprennent :

La décomposition du code en fonctions.
Le remplacement de la factorisation par des fonctionnalités redondantes.
La multiplication des commentaires sans modifier la structure du code.
L’ajout systématique de nouvelles bibliothèques externes.
L’amélioration du nommage des éléments du programme.

La décomposition du code en fonctions. · L’amélioration du nommage des éléments du programme.

Explication

Les pistes citées comprennent le nommage et la décomposition en fonctions. Elles comprennent également les commentaires et la factorisation des fonctionnalités redondantes, mais pas la multiplication non ciblée des commentaires, la redondance ou l’ajout systématique de bibliothèques.

2. Concernant les conventions de nommage des variables et fonctions Python, quelles sont les réponses exactes au sujet de cette convention ?

La convention snake_case sépare les mots par des caractères de soulignement.
Les fonctions Python suivent la convention camelCase.
La convention concerne à la fois les variables et les fonctions.
Les variables Python suivent généralement la convention snake_case.
Les variables Python sont écrites avec des espaces entre les mots.

La convention snake_case sépare les mots par des caractères de soulignement. · La convention concerne à la fois les variables et les fonctions. · Les variables Python suivent généralement la convention snake_case.

Explication

La convention retenue pour les variables et les fonctions Python est snake_case. Elle sépare les mots par des caractères de soulignement ; camelCase et les espaces ne correspondent pas à cette convention.

3. Parmi les propositions suivantes concernant le nommage en Python, la(les)quelle(s) est(sont) exacte(s) ?

Les noms peuvent rester généraux lorsque l’implémentation est détaillée.
Le nom d’une fonction décrit principalement la manière dont elle est implémentée.
Dans l’UE Info1.Algo1, les noms sont rédigés en français.
Un nom de variable précis reflète ce que cette variable représente.
Le nom d’une fonction indique ce qu’elle réalise.

Dans l’UE Info1.Algo1, les noms sont rédigés en français. · Un nom de variable précis reflète ce que cette variable représente. · Le nom d’une fonction indique ce qu’elle réalise.

Explication

Les noms de l’UE sont en français et doivent être précis, en reflétant la variable ou l’action de la fonction. Le nom d’une fonction décrit ce qu’elle fait, tandis que son implémentation décrit comment elle le fait ; des noms généraux ne répondent donc pas à la convention attendue.

4. Concernant les objectifs du Clean code, cochez la (les) proposition(s) exacte(s) :

Le Clean code contribue à améliorer la qualité générale du code.
Le Clean code cherche à réduire le coût des modifications du logiciel.
Le Clean code évalue principalement la rapidité d’exécution plutôt que l’évolutivité.
Le Clean code vise à faciliter l’adaptation du logiciel aux évolutions.
Le Clean code privilégie l’augmentation du coût de maintenance pour renforcer la stabilité.

Le Clean code contribue à améliorer la qualité générale du code. · Le Clean code cherche à réduire le coût des modifications du logiciel. · Le Clean code vise à faciliter l’adaptation du logiciel aux évolutions.

Explication

Le Clean code améliore la qualité du code, réduit le coût du changement et augmente la capacité du logiciel à répondre aux évolutions. Il ne cherche ni à accroître le coût de maintenance ni à privilégier principalement la rapidité d’exécution.

5. Qu'est-ce que la convention snake_case en Python ?

Une pratique de factorisation du code en utilisant des classes.
Une méthode pour écrire des commentaires en utilisant des symboles snake.
Une technique de décomposition de code en petites fonctions.
Une règle de nommage où les mots sont séparés par des underscores (_) pour nommer variables et fonctions.

Une règle de nommage où les mots sont séparés par des underscores (_) pour nommer variables et fonctions.

Explication

La convention snake_case consiste à écrire les noms de variables et de fonctions en utilisant des underscores pour séparer les mots, conformément au PEP 8. Les autres options décrivent des pratiques différentes ou incorrectes.

6. Quelle est la principale raison de décomposer un programme en fonctions ?

Réduire la taille du code source en supprimant les fonctionnalités redondantes.
Faciliter la compréhension du code par une documentation exhaustive.
Améliorer la lisibilité, la modularité, la réutilisabilité, la testabilité, la maintenance, le diagnostic des erreurs et les mises à jour.
Augmenter la vitesse d'exécution du programme en utilisant des fonctions plus courtes.

Améliorer la lisibilité, la modularité, la réutilisabilité, la testabilité, la maintenance, le diagnostic des erreurs et les mises à jour.

Explication

La décomposition en fonctions vise à améliorer plusieurs aspects du code, notamment la lisibilité, la modularité et la testabilité. La réduction de la taille du code ou la vitesse d'exécution ne sont pas les objectifs principaux de cette pratique.

7. Quel est le rôle principal de la factorisation du code dans le développement logiciel ?

Réduire la redondance et simplifier la maintenance du code
Augmenter la vitesse d'exécution en dupliquant les fonctions
Augmenter la complexité pour améliorer la sécurité
Diminuer la lisibilité pour protéger le code contre la copie

Réduire la redondance et simplifier la maintenance du code

Explication

La factorisation du code vise à repérer les fonctions similaires pour mettre en commun leur code, ce qui réduit la redondance et facilite la maintenance. Une mauvaise option serait d'augmenter la complexité ou de dupliquer inutilement le code, ce qui va à l'encontre de ses objectifs.

8. En quoi les principes des jeux de tests diffèrent-ils entre un test en boîte noire et un test en boîte blanche ?

Le test en boîte noire est réalisé après la mise en production, tandis que le test en boîte blanche est effectué uniquement lors du développement.
Le test en boîte noire nécessite une connaissance approfondie du code, alors que le test en boîte blanche ne nécessite aucune connaissance du code.
Le test en boîte noire utilise uniquement l’énoncé sans connaître le code, tandis que le test en boîte blanche utilise le code pour caractériser les cas d’exécution.
Le test en boîte noire se concentre sur la couverture des lignes de code, alors que le test en boîte blanche se concentre sur la couverture des cas d’utilisation.

Le test en boîte noire utilise uniquement l’énoncé sans connaître le code, tandis que le test en boîte blanche utilise le code pour caractériser les cas d’exécution.

Explication

Le test en boîte noire se base uniquement sur l’énoncé pour définir les cas de test, sans regarder le code, contrairement au test en boîte blanche qui utilise la connaissance du code pour couvrir différents chemins d’exécution.

9. Quelles sont les causes principales qui rendent la mise en œuvre efficace des jeux de tests essentielle dans le développement logiciel ?

Elle garantit que le code sera exempt de tout bug à 100 %.
Elle réduit le temps de développement en évitant toute phase de test.
Elle remplace la nécessité de faire des revues de code approfondies.
Elle permet de détecter rapidement les erreurs et d'assurer la fiabilité du code.

Elle permet de détecter rapidement les erreurs et d'assurer la fiabilité du code.

Explication

La mise en œuvre efficace des jeux de tests permet de repérer rapidement les erreurs, ce qui augmente la fiabilité du logiciel. Contrairement à l'option de supprimer complètement les bugs, elle ne garantit pas un code sans défaut, mais facilite leur détection.

10. Comment appliquer la limite des assertions pour assurer la fiabilité du code lors de la phase de débogage ?

Utiliser uniquement des assertions pour vérifier les préconditions et postconditions critiques, puis les désactiver en production avec l’option -O.
Éviter d’utiliser des assertions dans le code, car elles peuvent masquer des erreurs.
Utiliser des assertions uniquement pour tester des fonctionnalités non critiques, en laissant le reste du code sans vérification.
Intégrer des assertions dans toutes les parties du code pour garantir leur bon fonctionnement en mode production.

Utiliser uniquement des assertions pour vérifier les préconditions et postconditions critiques, puis les désactiver en production avec l’option -O.

Explication

Les assertions doivent être utilisées pour vérifier des conditions critiques lors du débogage, puis désactivées en production avec l’option -O pour éviter d’impacter la performance. Leur utilisation dans toutes les parties du code ou pour des fonctionnalités non critiques peut fausser la fiabilité du programme ou masquer des erreurs.

11. Quelles sont les caractéristiques principales du clean code en termes d'objectifs ?

Rendre le code plus court et plus simple, sans se soucier de sa lisibilité.
Améliorer la qualité du code en minimisant le coût du changement et en maximisant la capacité d'adaptation.
Augmenter la complexité du code pour le rendre plus robuste.
Réduire le nombre de fonctionnalités pour simplifier la maintenance.

Améliorer la qualité du code en minimisant le coût du changement et en maximisant la capacité d'adaptation.

Explication

Le clean code vise à améliorer la qualité du code en réduisant le coût des modifications et en facilitant son évolution. La simplicité ou la réduction de fonctionnalités ne sont pas des objectifs principaux, mais des moyens possibles.

Révisez avec les flashcards

Mémorisez les réponses avec 10 flashcards sur Habitudes d’écriture et tests unitaires.

Quel est l'objectif principal du Clean code ?

Améliorer la qualité du code en minimisant le coût du changement.

Quelle convention de nommage suivent variables et fonctions Python selon PEP 8?

La convention snake_case.

Que recommande la règle du boy-scout en programmation ?

Laisser le code source plus propre qu'à sa découverte.

Voir les flashcards →

Approfondir avec la fiche

Consultez la fiche de révision complète sur Habitudes d’écriture et tests unitaires.

Voir la fiche →

Cours similaires

Crée tes propres QCM

Importe ton cours et l'IA génère des QCM avec corrections en 30 secondes.

Générateur de QCM