Gestion de versions avec Git et SVN
Gestion de versions avec Git et SVN
a. peut s’appuyer sur plusieurs modèles a. De pouvoir examiner l'historique des changements
b. La récupération d'une version antérieure d'un fichier
b. fixe un cadre rigoureux pour le développement de projets de taille importante
e. A fusionner deux modifications concurrentes d'un même fichier
c. peut être itéré------------------------------------------------------------------------------------------------
Question 2 : Quelles sont des activités permanentes dans le processus de Question 2 : Parmi les propositions suivantes, quels sont les outils de gestion de version ?
développement de logiciels ? a. SVN
4. La gestion de projet, des ressources et des configurations. b. CVS
La qualité.--------------------------------------------------------------------------------------------------------- d. Git
Question 3 : A quel(s) moment(s) du cycle de développement d'un logiciel
Question 3 : Comment initialiser un dépôt local avec git ?
intervient la gestion de projet ? b. git init
a. A tout moment, pendant tout le cycle---------------------------------------------------------------
Question 4 : Qu’est-ce que la Maîtrise d’Ouvrage (MOA) ? Question 4 : Quelle est la commande git qui télécharge votre référentiel de GitHub sur votre
e. La(les) personne(s) qui commande(nt) le logiciel et assure(nt) la relation entre ordinateur
les utilisateurs et les développeurs-------------------------------------------------------------------------- a. git clone
Question 5 : A quoi sert le plan d'assurance qualité projet ?
Question 5 : Comment récupérez du code d’un autre repository (dépôt) sur GitHub (pas le sien) ?
b. A donner confiance au client, en lui précisant les standards et normes appliqués e. Faire un "Forking" via l'interface GitHub
dans le cadre d'un projet particulier
e. A préciser les procédures et conventions applicables ainsi que les outils à utiliser Question 6 : Quelle est une bonne façon d'ignorer un fichier définitivement ?
dans le cadre d'un projet particulier-------------------------------------------------------------------- e. Utiliser un fichier appelé .gitignore
Question 6 : Je suis chef de projet, mon projet est en retard, que dois-je faire ?
Question 7 : Quelle commande permet de vérifier l’historique de votre dépôt ?
b. Essayer de réduire au maximum le nombre de défauts, quitte à renégocier à la
c. git log
baisse les fonctionnalités à livrer
d. Adopter une démarche préventive, pour éviter de me trouver dans ce type de Question 8 : Quelle commande permet de savoir qui a modifié une ligne donnée d'un fichier ?
situation------------------------------------------------------------------------------------------------------------ b. git blame
Question 7 : Quel composant logiciel de qualité est celui qui avant tout :
c. répond aux besoins des utilisateurs----------------------------------------------------------------- Question 9 : Comment s'appelle le processus qui consiste à proposer une suite de commits pour
qu'ils soient acceptés dans un projet open source ?
Question 8 : Qu’est-ce que la validation ?
c. Une Pull Request
d. La confirmation que le produit est conforme aux besoins des utilisateurs------------
Question 9 : Quel(s) rôle(s) a un chef de projet ? Question 10 : Quelle commande utilise-t-on pour annuler un commit de façon sûre (sans le
a. de vérifier le bon déroulement des tâches perdre) ?
b. d’organiser l’enchaînement des tâches b. git revert
c. de fournir une visibilité globale sur un projet----------------------------------------------------
Question 11 : Quelle est la bonne syntaxe pour créer une branche ?
Question 10 : Mon projet est en retard, que dois-je faire ?
b. git branch ma-branche
b. Essayer de réduire au maximum le nombre de défauts, quitte à renégocier à la
baisse les fonctionnalités à livrer Question 12 : Comment s'appelle habituellement la branche principale d'un dépôt Git ?
d. Adopter une démarche préventive, pour éviter de me trouver dans ce type de e. Master
situation-----------------------------------------------------------------------------------------------------------
Question 11 : Quel est le but du "DevOps" ? Question 13 : À quoi servent les branches avec Git ?
5. À travailler sur des versions de code qui divergent de la ligne principale de développement
Automatiser le processus de déploiement d’applications
(master) sans se préoccuper de cette ligne principale.
Prolonger les principes des méthodes agiles vers les équipes de mise en
opération/déploiement (administrateurs système et réseaux)------------------------------- Question 14 : Quelle commande Git permet de voir sur quelle branche on se trouve ?
Question 12 : Qu’est-ce qui caractérise l’outil d’automatisation Ant ? d. git branch
4. Ant est un outil de build open source pour Java
Ant repose sur un fichier de configuration appelé « [Link] » dans lequel sont Question 15 : Comment supprimer une branche dans Git ?
e. git branch -d ma-branche
décrites les tâches à réaliser pour les différentes phases de la construction du
projet--------------------------------------------------------------------------------------------------------------- Question 16 : À quoi sert la commande « git checkout » ?
Question 13 : Qu’est-ce qui caractérise l’outil d’automatisation Maven ? 4. À basculer vers une branche existante.
Maven se base sur le fichier de configuration « [Link] » à l’intérieur duquel sont À revenir à une ancienne révision/version du code (que l’on a précédemment enregistrée avec «
déclarées les dépendances (bibliothèques) associées à un projet Java git commit »).
Maven est un outil de build open source populaire dans le monde Java
Question 17 : Quel est l’effet de la commande « git pull » ?
Avec Maven, la construction de la solution s’appuie sur une récupération
2. Mettre à jour les fichiers de notre répertoire de travail (« working directory ») à partir de ceux
automatique des dépendances (bibliothèques) utiles au projet par l’intermédiaire du dépôt distant (sur GitHub par exemple).
de dépôts distants
Les projets basés sur Maven utilisent une structure de dossiers standard : les tests Question 18 : Dans le cadre du travail collaboratif, qu’est-il primordial de faire avant d’effectuer
unitaires seront automatiquement recherchés dans un dossier nommé (par la commande « git push » ?
défaut) src/test/java------------------------------------------------------------------------------------------------ Dans le cas où un collaborateur a effectué des modifications sur le dépôt distant après notre
dernier « push », il faut d’abord les intégrer à notre répertoire de travail (« git pull ») et
------
résoudre les éventuels conflits.
Question 14 : Qu’est-ce qui caractérise l’outil d’automatisation Maven ?
4. Avec Maven, la construction de la solution s’appuie sur une récupération Question 19 : Avec quelle commande peut-on transférer nos modifications (réalisées en local)
automatique des dépendances (bibliothèques) utiles au projet par l’intermédiaire dans GitHub ?
de dépôts distants--------------------------------------------------------------------------------------------- c. git push
Question 15 : A quel moment intervient la phase d’intégration dans le cycle de vie
Question 20 : Quel(s) cas génère(nt) systématiquement une situation de conflit dans Git ?
du logiciel ?
3. Si certains commits des deux branches que l'on fusionne affectent les mêmes lignes de code.
c. Juste après avoir écrit quelques classes (en POO) et leurs tests unitaires associés
____________________________________________________________________________________ Question 1 : En Programmation Orientée Objet (POO), l'encapsulation :
c. favorise la modularité
Question 16 : Lequel n'est pas un modèle de développement d'un projet ?
e. consiste à séparer l'interface d'un module (liste des services qu'il offre) de son implantation
a. Modèle récursif-------------------------------------------------------------------------------------------- Question 2 : Qu’est-ce que la notion d'encapsulation en Programmation Orientée Objet (POO) ?
Question 17 : Quelle affirmation est vraie concernant l’adaptation des modèles de Le fait de séparer interface (services rendus) et détails d'implantation
Question 3 : Qu’est-ce qui est vrai concernant les notions de polymorphisme, de surcharge et de redéfinition de
cycle de développement des logiciels ? méthodes en Programmation Orientée Objet (POO) ?
a. Les modèles de développement peuvent être adaptés aux caractéristiques des Contrairement à la surcharge, une méthode redéfinie (overridden en anglais) doit non seulement avoir le même
projets et des produits--------------------------------------------------------------------------------------- nom que la méthode de base, mais le type et le nombre de paramètres doivent être identiques à ceux de la
méthode de base
Question 18 : Quel(s) outil(s) permet(tent) d’automatiser un processus de Polymorphisme veut dire que la même opération ou méthode (ayant exactement la même signature) peut avoir
compilation et d’exécution du code et des tests ? un comportement différent selon les situations
Surcharge veut dire qu'une même méthode peut avoir plusieurs signatures pour implémenter des
un shell
comportements différents selon les types des paramètres passés
Maven--------------------------------------------------------------------------------------------------------------- Question 4 : Qu'est-ce qu'il est important de respecter pour bien concevoir un logiciel ?
Question 19 : Qu’est-ce qui caractérise l’outil d’automatisation Ant ? Cacher les détails d'implantation d'une classe, pour offrir à l'extérieur une interface simple à comprendre et à
utiliser
4. Ant est un outil de build open source pour Java Construire les relations d'héritage de telle sorte qu'il soit possible d'utiliser (depuis une classe appelante) une
5-Ant repose sur un fichier de configuration appelé « [Link] » dans lequel sont des classes filles à la place de leur classe mère en toute transparence
décrites les tâches à réaliser pour les différentes phases de la construction du Privilégier les relations de composition ou d'agrégation par rapport aux relations d'héritage
Question 5 : Qu’est-ce qui est vrai à propos de la notion d’interface en Java ?
projet--------------------------------------------------------------------------------------------------------------- Un interface contient un ensemble de méthodes publiques et abstraites et éventuellement des constantes
Question 20 : Qu’est-ce qui caractérise l’outil d’automatisation Maven ? On dispose d'une définition abstraite d’un type, indépendamment de la façon dont il est implanté
1-Maven se base sur le fichier de configuration « [Link] » à l’intérieur duquel Une interface sert à proposer des services à d’autres classes (clientes) sous forme de contrat
Question 6 : Qu’est-ce que l’inversion de dépendance en Programmation Orientée Objet ?
sont déclarées les dépendances (bibliothèques) associées à un projet Java Le fait de dépendre d’abstractions (d'interfaces) et non pas d’implantations (de classes)
3-Maven est un outil de build open source populaire dans le monde Java Question 7 : Lorsqu’on créé une nouvelle instance d’une exception Java (avec l’instruction « throw new ... », dans
une méthode « a() » d’une classe), que faut-il absolument faire lorsqu'il ne s'agit pas d'une "Runtime Exception"
4-Avec Maven, la construction de la solution s’appuie sur une récupération
?
automatique des dépendances (bibliothèques) utiles au projet par l’intermédiaire Réponses correctes :
de dépôts distants Déclarer que la méthode « a() » est susceptible de propager l’exception (mot clé « throws » dans sa signature)
Veiller à ce que toute méthode qui appelle la méthode « a() » déclare dans sa signature qu’elle est susceptible de
5-Les projets basés sur Maven utilisent une structure de dossiers standard : les propager l’exception (mot clé throws) ou attrape l’exception (avec « try/catch »)
tests unitaires seront automatiquement recherchés dans un dossier nommé (par
défaut) src/test/java
Question 8 : Quel est l'intérêt des packages (paquetages) en Java ?
Question 1 : Quelle affirmation est vraie quel que soit le cycle de développement utilisé ? Pouvoir regrouper plusieurs classes ou interfaces ayant une certaine cohérence (par exemple, appartenant à la même couche
b. Les testeurs devraient être impliqués après chaque tâche de conception logicielle)
Dans un modèle en couches (architectures n-tiers), pour cacher certains détails d'une couche à une autre couche, car seules les
Question 2 : Les méthodes agiles ... classes déclarées "public" sont visibles depuis l'extérieur du package qui les contient
e. mettent en avant les tests qui doivent être réalisés très régulièrement
Question 9 : Qu’est-ce qui est vrai au sujet d'UML
a. Les relations de composition et d'agrégation sont représentées à l'aide d'un losange en UML
Question 3 : Qu’est-ce qui est vrai ? b. Une relation d'agrégation entre 2 classes produit un attribut (données membre) dans la classe du côté du losange
b. Il est plus efficace de rechercher les défauts le plus tôt possible c. La relation de dépendance entre 2 classes est notée par un trait en pointillés (reliant les 2 classes) et généralise toutes les
d. Pour un défaut donné, son coût de recherche est beaucoup plus élevé en fin de projet qu’en début de autres relations (association, agrégation, composition, héritage)
projet
Question 10 : En UML, qu'est-ce qui est vrai à propos de la notion d'interface ?
Question 4 : Quelle(s) affirmation(s) est/sont vraie(s) à propos des tests d'un logiciel ? a. On écrit son nom en italique accompagné du stéréotype <> (ou sinon d'un cercle dans le coin droit)
b. C'est une notion très proche de la notion d'interface en Java
a. Les tests d'acceptation (ou de recette) sont les derniers réalisés, pour approbation avant livraison.
c. La relation d'implantation d'une interface par une classe ("implements" en Java) est représentée par une flèche pleine blanche
b. Les tests système servent à vérifier l'adéquation aux spécifications (ils sont créés à partir des
avec un trait en pointillé
diagrammes de cas d'utilisation et de séquence).
Question 11 : En UML, la relation d'implantation d'une interface par une classe (mot clé "implements") est représentée par :
Question 5 : Pourquoi préconise-t-on en TDD de commencer par un test qui échoue (rouge) ? c. une flèche pleine blanche avec un trait en pointillé
a. On évite les tests sans oracle ou issus d’un copier-coller d’un test qui passe déjà
d. La progression rouge-vert est bonne pour le moral Question 12 : Qu’est-ce qui caractérise les Design Patterns ?
a. Ils permettent de réduire la dépendance/le couplage entre les objets
b. Ils permettent une évolution de l’application par ajouts, sans modification du code existant, via l’utilisation d’interfaces
Question 6 : Lequel/Lesquels rentre(nt) dans la catégorie des tests fonctionnels (en boîte noire) ?
4. Test aux limites
Question 13 : À quoi sert un Design Pattern ?
a. Classes d’équivalence. a. À renforcer la cohésion et diminuer le couplage entre les classes de l'application
b. Test qu’une exception a bien été lancée. b. À répondre à des problématiques récurrentes de conception/développement
Question 7 : En JUnit, que désigne-t-on par « oracle » ? Question 14 : Quel Design Pattern est associé au modèle MVC et permet au contrôleur de choisir la vue à afficher au client, en
c. La ou les instruction(s) commençant par « assert », renvoyant un booléen et servant à tester la valeur de fonction de l’état du modèle ?
retour d’une méthode, l’état d’un objet, … a. Strategy
Question 15 : Quel Design Pattern définit une interface pour la création d'un objet en déléguant à ses sous-classes le choix des classes
Question 8 : Une méthode d’une classe Java possède un paramètre d’entrée (de type int) qui doit appartenir au à instancier ?
domaine [2,50]. Quelle(s) valeur(s) l’approche aux limites recommande-t-elle de tester pour ce paramètre a. Factory Method
d’entrée ?
d. Les valeurs 1, 2, 3, 49, 50 et 51 Question 16 : Combien peut-il y avoir d'instances de Singleton ?
a. Une et une seule
Question 9 : Quelle technique sélectionne les cas de tests en se basant sur l’analyse de la structure interne d’un
système ? Question 17 : Quel Design Pattern fournit une interface unifiée facile à utiliser pour un ensemble d'interfaces dans un sous-système ?
a. Façade
e. La technique boîte blanche (tests structurels)
Question 18 : Quel Design Pattern permet de séparer l'aspect d'implantation d'un objet de son aspect de représentation (d'interface),
Question 10 : Que désigne-t-on par tests de non régression ? pour que les deux varient indépendamment
4. Le fait de ré-exécuter les tests après chaque changement dans le code a. Bridge
Question 11 : Que désigne le terme "refactoring" ou "reconception" (en français) ? Question 19 : Quel Design Pattern permet de composer des objets en structures arborescentes ?
c. Lorsqu’on réorganise le code pour mieux le structurer ou le simplifier a. Composite
Question 20 : Quel DP permet d'ajouter des propriétés à des objets sans modifier leur code ?
Question 12 : Comment vérifier dynamiquement (à l’exécution), que toutes les instructions du code source à
c. Decorator
tester ont été exécutées ?
a. Avec un outil de couverture de code Question 21 : Quel Design Pattern permet d'indiquer que dans tout jeu de société on a le squelette suivant : une phase
d'initialisation, puis chaque joueur joue à son tour jusqu'à ce que la partie soit terminée ?
Question 13 : À quoi sert la couverture de code ? a. Template Method
a. À calculer pour chaque classe le pourcentage de lignes de code couvertes par une suite de tests
e. À déterminer les parties du code qui ont été exécutées par une suite de tests Question 22 : Quel Design Pattern permet de parcourir séquentiellement les éléments d'une structure d'objets ?
a. Iterator
Question 14 : Quelles sont les règles à appliquer pour mettre en œuvre des tests unitaires ?
Question 23 : Quel DP permet de faire en sorte qu'une classe ne dépende plus d'un algorithme ?
2. Tester le plus possible afin d’augmenter les chances de découvrir des bugs b. Strategy
[Link] test doit être isolé : un test ne doit pas dépendre d’un autre.
[Link] le plus tôt possible afin de détecter des bugs le plus rapidement possible. Question 24 : Quel DP permet à un objet de modifier son comportement quand son état change ?
d. State
Question 15 : Qu’est-ce qui caractérise les tests unitaires ?
3. Les tests unitaires sont les premiers réalisés parmi l’ensemble des tests d’une application logicielle. Question 25 : Quel exemple est le plus représentatif du Design Pattern Strategy ?
a. Une machine à café Tassimo
Question 20 : Qu'est-ce qui est vrai à propos des mocks ou simulacres, créés par exemple avec le framework Question 5 : Un diagramme de Pert est :
Mockito pour Java ? b. un graphe acyclique orienté
1. Le fait de séparer interface (services rendus) et détails b. Le processus de développement se fait de manière itérative et incrémentale.
d'implantation. Question 8 : Qu’est-ce qui est préconisé par la méthode agile eXtreme Programming (XP) ?
a. Le développement dirigé par les tests (TDD en anglais).
Correct. C'est la définition même de l'encapsulation : rendre b. La programmation en binôme (pair programming).
c. Le refactoring régulier du code.
accessibles uniquement les services publics nécessaires tout en
Question 9 : Quelle(s) affirmation(s) suivante(s) est(sont) vraie(s) ?
masquant les détails internes. d. Le « daily scrum meeting » sert principalement pour le Scrum Master
e. Le « daily scrum meeting » sert principalement pour l'équipe de développement (Team)
2. L'obligation de ne dépendre que d'abstractions et pas
d'implantations, pour faciliter les tests unitaires. Question 10 : Qui a la responsabilité d'affecter les tâches aux développeurs d'une équipe Scrum ?
e. Aucune de ces réponses
Incorrect. Cela relève du principe d'inversion des dépendances (un Question 11 : Qui a la responsabilité d'encadrer l'équipe Scrum dans le but de la rendre plus autonome ?
concept de SOLID), et non directement de l'encapsulation. c. Scrum Master
3. Le fait de privilégier plusieurs petites interfaces plutôt qu'une Question 12 : Qui estime l’effort nécessaire pour réaliser une « histoire » du product backlog ?
d. l’équipe (Team)
grosse.
Incorrect. Cela fait référence au principe de ségrégation des Question 13 : Comment le product backlog est-il organisé ? d. « Histoires » par importance décroissante
interfaces, un autre concept de SOLID. Question 14 : Qui a la responsabilité de définir et mettre à jour le carnet d'histoires (Product Backlog) dans la méthode SCRUM ?
a. Product Owner
4. L'obligation pour une classe de n'être ouverte qu'aux extensions et
Question 15 : Quel rôle est responsable de la définition des priorités au sein du product backlog (carnet de produit) ?
fermées aux modifications. c. le Product Owner
Incorrect. Cela correspond au principe ouvert/fermé (Open/Closed Question 16 : Quel rôle n’est pas défini dans SCRUM ? e. Product Manager
Principle) de SOLID, pas à l'encapsulation. Question 17 : Quel est le nom de la réunion durant laquelle l’équipe montre au PO et aux autres personnes intéressées ce qui a été accompli
5. L'obligation pour un objet de ne faire qu'une seule chose, tout en durant le sprint ?
d. Sprint review meeting
étant le seul à le faire. Question 18 : Quel type de réunion ne fait pas partie de SCRUM d. Sprint burndown meeting
Incorrect. Cela est lié au principe de responsabilité unique (Single
Question 19 : Quelle est la durée normale du daily scrum meeting b. 15 min
Responsibility Principle), un autre concept de conception orientée
Question 20 : Quand l’exécution d’un sprint est-elle finie ? d. A la fin de la durée prévue
objet.