top 25 software engineering interview questions
Questions d'entrevue d'ingénierie logicielle de base et avancées les plus fréquemment posées avec des réponses détaillées. Préparez-vous avec cette liste complète de questions d'entrevue courantes d'ingénieur en logiciel technique pour les professionnels débutants et seniors:
Conformément à l'IEEE, le génie logiciel est l'application d'une approche systématique, disciplinée et quantifiable du développement, de l'exploitation et de la maintenance d'un produit logiciel.
Cela signifie appliquer une approche systématique et bien définie au développement d'un produit logiciel.
Dans ce didacticiel, nous couvrirons les questions d'entretien les plus fréquemment posées par les ingénieurs logiciels ainsi que les réponses en termes simples pour une compréhension plus facile.
Questions d'entretiens en génie logiciel les plus populaires
Vous trouverez ci-dessous les questions d'entrevue les plus fréquemment posées par les ingénieurs logiciels avec des réponses.
Explorons!!
Q # 1) Qu'est-ce que SDLC?
Répondre: SDLC signifie Cycle de vie du développement logiciel. Il définit l'approche étape par étape pour le développement de logiciels. SDLC implique les phases suivantes, à savoir la collecte des exigences, l'analyse du système, la conception, le codage, les tests, la maintenance et la documentation.
Vous trouverez ci-dessous la représentation de haut niveau des différentes phases impliquées dans le SDLC.
(image la source )
Q # 2) Quels sont les différents modèles disponibles en SDLC?
Répondre: Il existe plusieurs modèles disponibles dans SDLC pour réaliser efficacement le développement logiciel. Certains des modèles incluent le Modèle de cascade , Modèle en V, modèle Agile, etc.
Q # 3) Expliquez le terme de base.
questions d'entretien sur la méthodologie agile scrum
Répondre: Une ligne de base est une étape importante du projet qui est généralement définie par le chef de projet. Les références sont utilisées pour suivre l'avancement du projet de temps en temps pour évaluer la santé globale du projet.
Q # 4) Quelles sont les responsabilités d'un chef de projet logiciel?
Répondre: Un gestionnaire de projet logiciel est chargé de conduire le projet vers la réussite. Il est de la responsabilité du chef de projet logiciel de s'assurer que toute l'équipe suit une approche systématique et bien définie du développement de logiciels.
Un chef de projet logiciel est également responsable des tâches suivantes:
- Planification de projet
- Suivi de l'état du projet
- La gestion des ressources
- Gestion des risques
- Livraison du projet dans les délais et le budget.
Q # 5) Qu'est-ce que la cohésion?
Répondre: La cohésion est le degré auquel les éléments d'un module sont interdépendants. C'est comme une colle interne qui lie les éléments d'un module entre eux. Un bon logiciel a des niveaux élevés de cohésion.
Q # 6) Qu'est-ce que le couplage?
Répondre: Le couplage est le degré d'interdépendance entre les modules. Un bon logiciel a de faibles niveaux de couplage.
Q # 7) Expliquez le concept de la modularisation.
Répondre: La modularisation est utilisée pour diviser le logiciel en plusieurs composants ou modules. Chaque module est travaillé par une équipe de développement et de test indépendante. Le résultat final serait de combiner plusieurs modules en un seul composant de travail.
Q # 8) Qu'est-ce que la gestion de la configuration logicielle?
Répondre: La gestion de la configuration logicielle est le processus de suivi et de contrôle des modifications qui se produisent au cours du cycle de vie du développement logiciel. Toute modification apportée pendant le développement du logiciel doit être suivie à travers un processus bien défini et contrôlé.
La gestion de la configuration garantit que toutes les modifications apportées pendant le développement du logiciel sont contrôlées par un processus bien défini.
Q # 9) Quelles sont les différentes phases du SDLC?
Répondre: Voici les phases les plus courantes du SDLC.
- Analyse des besoins
- Conception
- Codage
- Essai
- Maintenance
Q # 10) Donnez des exemples d'outils de gestion de projet.
Répondre: Vous trouverez ci-dessous certains des outils de gestion de projet les plus couramment utilisés qui sont disponibles dans l'industrie aujourd'hui.
- Diagramme de Gantt
- Listes de contrôle
- Rapports d'état
- Histogrammes
- Projet Microsoft
Lecture recommandée => Principaux outils de gestion de projet que vous devez connaître
Q # 11) Que sont les outils CASE?
Répondre: CASE est synonyme d'outils de génie logiciel assisté par ordinateur qui sont utilisés pour soutenir et accélérer les diverses activités du cycle de vie du développement logiciel.
Q # 12) Qu'est-ce que le test de la boîte noire?
Répondre: Le test de la boîte noire consiste à tester l'application sans connaître la structure interne ou l'implémentation du code. Les testeurs ne se soucieraient que de la fonctionnalité du logiciel dans les tests de boîte noire plutôt que du flux de données et de l'exécution de code dans le back-end.
Q # 13) Qu'est-ce que le test de la boîte blanche?
Répondre: Les tests en boîte blanche testent l'application avec la connaissance de la structure interne et de l'implémentation du code. Ce test est généralement effectué par le développeur qui a écrit le code sous forme de tests unitaires.
Q # 14) Qu'est-ce qu'une étude de faisabilité?
Répondre: Une étude de faisabilité est menée sur un produit logiciel pour évaluer dans quelle mesure le développement du produit logiciel est pratique et avantageux pour l'organisation. Le logiciel est analysé en profondeur pour comprendre les aspects économiques et techniques d'un produit logiciel à développer.
Q # 15) Comment pouvez-vous mesurer l'exécution du projet?
Répondre: L'état d'exécution du projet peut être surveillé à l'aide des techniques suivantes.
différence entre l'arbre b et l'arbre b
- Rapports d'état
- Listes de contrôle des jalons
- Suivi d'activité
Q # 16) Quelles sont les exigences fonctionnelles?
Répondre: Les exigences fonctionnelles sont les fonctionnalités qu'un produit logiciel développé est censé exécuter. Par exemple, l'ajout d'une option de paiement sur un site Web de commerce électronique sera une exigence fonctionnelle.
Q # 17) Que sont les exigences non fonctionnelles?
Répondre: Les exigences non fonctionnelles mesurent la convivialité de l'application, telles que l'apparence de l'interface utilisateur, la sécurité, les performances, l'interopérabilité, la fiabilité, etc.
Q # 18) Quelle est la différence entre l'assurance qualité et le contrôle qualité?
Répondre: L'assurance qualité garantit que le logiciel livré présente le moins de défauts possible. Le contrôle de la qualité est le processus visant à garantir que la qualité du produit est maintenue à long terme.
L'assurance qualité est effectuée par l'équipe de test du projet tandis que le contrôle qualité est généralement effectué par une équipe de support dédiée, qui est responsable de la qualité du produit même si le produit est en phase de maintenance du génie logiciel.
Aussi, lisez => Assurance qualité vs contrôle qualité
Q # 19) Quelle est la différence entre la vérification et la validation?
Répondre: La vérification est le processus permettant de s'assurer que le produit est construit correctement, du point de vue des processus et des normes.
La validation est le processus visant à garantir que nous construisons le bon produit, du point de vue du client. La vérification est une méthodologie de test statique dans laquelle le produit est testé sans exécuter le code, tandis que la validation est une méthodologie de test dynamique.
A lire => Étude complète de vérification et de validation
Q # 20) Quel modèle SDLC est le meilleur choix pour un produit logiciel?
Répondre: Il n'y a pas de règles en tant que telles indiquant quel modèle SDLC spécifique doit être utilisé pour un produit logiciel. Cela dépend du type de projet logiciel en cours de construction et des politiques et procédures de l'organisation.
Q # 21) Qu'entendez-vous par portée du logiciel?
Répondre: La portée du logiciel est la liste des fonctionnalités fournies par le logiciel développé. En fonction de la portée du logiciel, des estimations telles que la répartition du temps, le budget et l'allocation des ressources peuvent être effectuées.
Q # 22) Qu'est-ce que SRS?
Répondre: SRS est l'acronyme de Software Requirement Specification (SRS). C'est un document pour capturer toutes les exigences fonctionnelles et non fonctionnelles d'un produit. Tous les modèles SDLC ne doivent pas suivre Documents SRS , certains modèles capturent les besoins sous forme de user stories, tandis que certains modèles sous forme de feuilles Excel, etc.
Q # 23) Quel est le modèle SDLC que vous avez utilisé dans votre projet précédent?
Répondre: La réponse à cette question dépend de l'expérience d'un candidat à l'entretien. Si le candidat répond au modèle SDLC comme étant le modèle Waterfall, alors l'intervieweur commencera à poser des questions sur le modèle Waterfall et s'il répond comme étant Agile, alors l'intervieweur commencera à poser des termes liés à la méthodologie Agile tels que Scrum, Sprint, etc.
Q # 24) Expliquez le modèle Waterfall en détail.
Répondre: Le cascade model est un modèle séquentiel dans lequel la phase suivante ne commence qu'après l'achèvement de la première phase. Par exemple, la phase de test ne commencera qu'une fois la phase de développement terminée, la phase de maintenance ne démarrera qu'une fois la phase de test terminée.
Voici les différentes phases impliquées dans le modèle de cascade. Veuillez noter que le nombre de phases et les séquences de phases peuvent varier d'un projet à l'autre.
- Conditions
- Conception
- Codage
- Essai
- Maintenance
à) Conditions: C'est la phase où le système à développer est documenté sous la forme d'un document de spécification des exigences logicielles (SRS). Il s'agit de la phase la plus importante du SDLC car une compréhension claire des exigences du client réduira les retouches dans les phases suivantes.
b) Conception: C'est la phase où l'architecture du système à développer est finalisée. L'architecture peut prendre la forme d'une conception de haut niveau ou d'une conception de bas niveau. L'architecture doit également inclure les spécifications matérielles et logicielles du système à développer.
c) Codage: C'est la phase où le code du système à développer est écrit. Test unitaire et Test d'intégration doit être effectuée par les développeurs à ce stade avant de déployer le code pour le test.
d) Test: Il s'agit de la phase où le produit développé est testé par une équipe de test indépendante pour valider s'il répond aux exigences de la spécification des exigences logicielles (SRS). Les défauts soulevés à cette phase doivent être corrigés avant de fournir une approbation sur le produit.
e) Entretien: Cette phase intervient une fois la phase de test terminée. Il prend en charge tous les problèmes de production pouvant survenir après la livraison du produit au client. La durée de la phase de maintenance diffère d'un projet à l'autre et d'une organisation à l'autre.
Vous trouverez ci-dessous le diagramme pour représenter le modèle de cascade sous forme de phases.
Q # 25) Expliquez en détail le V-Model.
Répondre: V-Model représente le modèle de vérification et de validation. Modèle en V est un ajout au modèle en cascade, en ce sens que le modèle en V est également un modèle séquentiel. Dans le modèle V, chaque phase de développement est associée à une phase de test correspondante.
comment afficher les fichiers dat sur windows
L'image ci-dessous illustre les différentes phases impliquées dans le modèle en V.
Le côté gauche du modèle est le cycle de vie du développement logiciel tandis que le côté droit du modèle est le cycle de vie des tests logiciels. Comme les phases forment la forme de la lettre «V», ce modèle est appelé V-Model.
Explication:
Dans le V-Model, SDLC doit être interprété de haut en bas, tandis que STLC doit être interprété de bas en haut. Au départ, les exigences sont rassemblées pour documenter le système à développer selon les exigences du client. L'équipe de test élabore le plan de test du système en fonction des exigences.
Viennent ensuite la conception de haut niveau et les phases de conception de niveau détaillé où l'architecture du système est préparée. L'équipe de test prépare le plan de test d'intégration dans ces phases. Une fois le codage terminé sur SDLC, STLC commencera par les tests unitaires, suivis des tests d'intégration et des tests système.
Conclusion
Nous espérons que cet article vous aidera à réussir toute interview d'ingénieur logiciel.
- Le génie logiciel est l'application d'une approche systématique, disciplinée et quantifiable du développement, de l'exploitation et de la maintenance des logiciels.
- Il n'y a pas de règles strictes en tant que telles sur le type de questions d'entrevue en génie logiciel posées par les intervieweurs. Cela varie d'une organisation à l'autre et le type de rôle pour lequel l'entrevue est menée.
Tout le meilleur pour votre entretien d'ingénieur logiciel !!
lecture recommandée
- Phases, méthodologies, processus et modèles du SDLC (cycle de vie du développement logiciel)
- Qu'est-ce que le modèle de cascade SDLC?
- 25 meilleurs outils de gestion de projet en 2021 (derniers classements)
- Qu'est-ce que le modèle V STLC?
- Différence entre l'assurance qualité et le contrôle qualité (AQ vs CQ)
- Test de la boîte blanche: un guide complet avec des techniques, des exemples et des outils
- Test de la boîte noire: un didacticiel approfondi avec des exemples et des techniques
- Questions et réponses d'entrevue