top 25 software engineering interview questions
Perguntas mais frequentes da entrevista de engenharia de software básica e avançada com respostas detalhadas. Prepare-se com esta lista abrangente de perguntas comuns da entrevista do engenheiro de software técnico para profissionais de nível básico e sênior:
De acordo com o IEEE, a Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de um produto de software.
Significa aplicar uma abordagem sistemática e bem definida ao desenvolvimento de um produto de software.
Neste tutorial, cobriremos as perguntas mais comuns da entrevista de engenheiros de software, juntamente com as respostas em termos simples para seu fácil entendimento.
Perguntas mais populares da entrevista de engenharia de software
Listadas abaixo estão as perguntas mais frequentes da entrevista com engenheiros de software, com respostas.
Vamos explorar!!
Q # 1) O que é SDLC?
Responda: SDLC significa Ciclo de Vida de Desenvolvimento de Software. Ele define a abordagem passo a passo para o desenvolvimento de software. SDLC envolve as seguintes fases, ou seja, coleta de requisitos, análise do sistema, design, codificação, teste, manutenção e documentação.
Dada a seguir é a representação de alto nível das várias fases envolvidas no SDLC.
(imagem fonte )
P # 2) Quais são os vários modelos disponíveis no SDLC?
Responda: Existem vários modelos disponíveis em SDLC para a execução eficiente do desenvolvimento de software. Alguns dos modelos incluem o Modelo em cascata , V-Model, modelo Agile, etc.
Q # 3) Explique o termo Linha de Base.
processo de gerenciamento de defeitos em teste de software
Responda: Uma linha de base é um marco no projeto, geralmente definido pelo gerente de projeto. As linhas de base são usadas para rastrear o andamento do projeto de tempos em tempos para avaliar a integridade geral do projeto.
Q # 4) Quais são as responsabilidades de um gerente de projetos de software?
Responda: Um gerente de projeto de software é responsável por conduzir o projeto até a conclusão bem-sucedida. É responsabilidade do Gerente de Projeto de Software garantir que toda a equipe siga uma abordagem sistemática e bem definida para o desenvolvimento de software.
Um gerente de projeto de software também é responsável pelas seguintes tarefas:
- Planejamento de projeto
- Acompanhamento do status do projeto
- Gestão de recursos
- Gerenciamento de riscos
- Entrega do projeto dentro do prazo e orçamento.
P # 5) O que é coesão?
Responda: Coesão é o grau em que os elementos de um módulo estão inter-relacionados entre si. É como uma cola interna que une os elementos de um módulo. Um bom software possui altos níveis de coesão.
Q # 6) O que é acoplamento?
Responda: O acoplamento é o grau de interdependência entre os módulos. Um bom software possui baixos níveis de acoplamento.
Q # 7) Explique o conceito de Modularização.
Responda: A modularização é usada para dividir o software em vários componentes ou módulos. Cada módulo é trabalhado por uma equipe independente de desenvolvimento e teste. O resultado final seria combinar vários módulos em um único componente de trabalho.
Q # 8) O que é gerenciamento de configuração de software?
Responda: O gerenciamento de configuração de software é o processo de rastreamento e controle das mudanças que ocorrem durante o ciclo de vida de desenvolvimento do software. Qualquer alteração feita durante o desenvolvimento do software deve ser rastreada por meio de um processo bem definido e controlado.
O gerenciamento da configuração garante que todas as alterações feitas durante o desenvolvimento do software sejam controladas por meio de um processo bem definido.
P # 9) Quais são as várias fases do SDLC?
Responda: A seguir estão as fases mais comuns do SDLC.
- Análise de Requisitos
- Projeto
- Codificação
- Testando
- Manutenção
Q # 10) Forneça exemplos de ferramentas de gerenciamento de projetos.
Responda: A seguir estão algumas das ferramentas de gerenciamento de projetos mais comumente usadas que estão disponíveis na indústria hoje.
- Gráfico de Gantt
- Lista de verificação
- Relatórios de status
- Histogramas
- Microsoft Project
Leitura recomendada => Principais ferramentas de gerenciamento de projetos que você deve conhecer
Q # 11) O que são ferramentas CASE?
como abrir uma jarra com java
Responda: CASE significa ferramentas de Engenharia de Software Auxiliada por Computador que são utilizadas para apoiar e acelerar as várias atividades do Ciclo de Vida de Desenvolvimento de Software.
P # 12) O que é o teste de caixa preta?
Responda: O teste de caixa preta envolve testar o aplicativo sem o conhecimento da estrutura interna ou da implementação do código. Os testadores se preocupariam apenas com a funcionalidade do software em testes de caixa preta, em vez de fluxo de dados e execução de código no back end.
P # 13) O que é o teste de caixa branca?
Responda: O teste de caixa branca é testar o aplicativo com o conhecimento da estrutura interna e da implementação do código. Esse teste é geralmente executado pelo desenvolvedor que escreveu o código na forma de testes de unidade.
P # 14) O que é um estudo de viabilidade?
Responda: Um estudo de viabilidade é conduzido em um produto de software para avaliar o quão prático e benéfico é o desenvolvimento do produto de software para a organização. O software é analisado minuciosamente para entender os aspectos econômicos e técnicos de um produto de software a ser desenvolvido.
Q # 15) Como você pode medir a execução do projeto?
Responda: O status de execução do projeto pode ser monitorado usando as seguintes técnicas.
- Relatórios de status
- Listas de verificação de marcos
- Monitoramento de Atividades
Q # 16) Quais são os requisitos funcionais?
Responda: Requisitos funcionais são os recursos que se espera que um produto de software desenvolvido execute. Por exemplo, adicionar uma opção de pagamento em um site de comércio eletrônico será um requisito funcional.
P # 17) O que são requisitos não funcionais?
Responda: Requisitos não funcionais medem a usabilidade do aplicativo, como aparência e comportamento da interface do usuário, segurança, desempenho, interoperabilidade, confiabilidade, etc.
Q # 18) Qual é a diferença entre Garantia de Qualidade e Controle de Qualidade?
Responda: A garantia de qualidade é garantir que o software entregue tenha o menor número possível de defeitos. O controle de qualidade é o processo de garantir que a qualidade do produto seja mantida a longo prazo.
A Garantia da Qualidade é feita pela equipe de testes do projeto, enquanto o Controle da Qualidade geralmente é feito por uma equipe de suporte dedicada, que é responsável pela qualidade do produto mesmo se o produto estiver em fase de manutenção de engenharia de software.
Além disso, leia => Garantia de Qualidade Vs Controle de Qualidade
Q # 19) Qual é a diferença entre Verificação e Validação?
Responda: Verificação é o processo de garantir que o produto seja construído corretamente, de uma perspectiva de processo e padrões.
Validação é o processo de garantir que construímos o produto certo, da perspectiva do cliente. A verificação é uma metodologia de teste estático em que o produto é testado sem executar o código, enquanto a validação é uma metodologia de teste dinâmico.
Vale a pena ler => Estudo Completo de Verificação e Validação
Q # 20) Qual modelo SDLC é o melhor para escolher para um produto de software?
Responda: Não há regras que definam qual modelo SDLC específico deve ser usado para um produto de software. Depende do tipo de projeto de software que está sendo construído e das políticas e procedimentos da organização.
Q # 21) O que você quer dizer com escopo de software?
como fazer um e-mail falso
Responda: O escopo do software é a lista de recursos fornecida pelo software desenvolvido. Com base no escopo do software, estimativas como alocação de tempo, orçamento e alocação de recursos podem ser feitas.
Q # 22) O que é SRS?
Responda: SRS significa documento Software Requirement Specification (SRS). É um documento para capturar todos os requisitos funcionais e não funcionais de um produto. Nem todos os modelos SDLC precisam seguir Documentos SRS , alguns modelos capturam requisitos na forma de histórias de usuário, enquanto alguns modelos na forma de planilhas do Excel etc.
Q # 23) Qual é o modelo SDLC que você usou em seu projeto anterior?
Responda: A resposta a esta pergunta depende da experiência de um candidato a entrevista. Se o candidato responder que o modelo SDLC é o modelo Cachoeira, o entrevistador começará a fazer perguntas sobre o modelo Cachoeira e se ele responder como Agile, o entrevistador começará a perguntar termos relacionados à metodologia Ágil, como Scrum, Sprint, etc.
Q # 24) Explique o modelo em cascata em detalhes.
Responda: O Cachoeira modelo é um modelo sequencial no qual a próxima fase começa somente após a conclusão da primeira fase. Por exemplo, a fase de teste começará somente após a fase de desenvolvimento ser concluída, a fase de manutenção começará somente após a conclusão da fase de teste.
Abaixo estão as várias fases envolvidas no modelo em cascata. Observe que o número de fases e sequências de fases podem variar de um projeto para outro.
- Requisitos
- Projeto
- Codificação
- Testando
- Manutenção
para) Requisitos: Esta é a fase em que o sistema a ser desenvolvido é documentado na forma de um documento Software Requirement Specification (SRS). Esta é a fase mais importante do SDLC, pois um entendimento claro dos requisitos do cliente reduzirá o retrabalho nas fases seguintes.
b) Design: Esta é a fase de finalização da arquitetura do sistema a ser desenvolvido. A arquitetura pode ter a forma de um projeto de alto nível ou de baixo nível. A arquitetura também deve incluir as especificações de hardware e software do sistema a ser desenvolvido.
c) Codificação: Esta é a fase em que é escrito o código do sistema a ser desenvolvido. Teste de Unidade e Teste de integração deve ser executado pelos desenvolvedores neste estágio antes de implantar o código para teste.
d) Teste: Esta é a fase em que o produto desenvolvido é testado por uma equipe de teste independente para validar se ele atende aos requisitos da Especificação de Requisito de Software (SRS). Os defeitos levantados nesta fase precisam ser corrigidos antes de fornecer a aprovação do produto.
e) Manutenção: Essa fase ocorre quando a fase de teste é concluída. Ele cuida de quaisquer problemas de produção que possam surgir após o produto ser entregue ao cliente. A duração da fase de manutenção difere de projeto para projeto e de uma organização para outra.
Abaixo está o diagrama para representar o modelo em cascata na forma de fases.
Q # 25) Explique o V-Model em detalhes.
Responda: V-Model significa o modelo de verificação e validação. Modelo V é uma adição ao modelo em cascata, no sentido de que o modelo V também é um modelo sequencial. No modelo V, cada fase de desenvolvimento está associada a uma fase de teste correspondente.
A imagem abaixo mostra as várias fases envolvidas no modelo V.
O lado esquerdo do modelo é o Ciclo de Vida de Desenvolvimento de Software, enquanto o lado direito do modelo é o Ciclo de Vida de Teste de Software. Como as fases formam a forma da letra 'V', este modelo é chamado de modelo V.
Explicação:
No modelo V, SDLC deve ser interpretado de cima para baixo, enquanto STLC deve ser interpretado de baixo para cima. Inicialmente, os requisitos são reunidos para documentar o sistema a ser desenvolvido de acordo com os requisitos do cliente. A equipe de teste desenvolve o plano de teste do sistema com base nos requisitos.
Em seguida, vem o design de alto nível e as fases de design de nível detalhado, onde a arquitetura do sistema é preparada. A equipe de teste prepara o plano de teste de integração nessas fases. Assim que a codificação for concluída no SDLC, o STLC começará com o teste de unidade, seguido pelo teste de integração e teste do sistema.
Conclusão
Esperamos que este artigo ajude você a quebrar qualquer entrevista com um engenheiro de software com sucesso.
- Engenharia de Software é a aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software.
- Não existem regras rígidas e rápidas sobre o tipo de perguntas da entrevista de Engenharia de Software feitas pelos entrevistadores. Isso varia de organização para organização e o tipo de função para a qual a entrevista é realizada.
Tudo de bom para sua entrevista com o engenheiro de software !!
Leitura recomendada
- SDLC (ciclo de vida de desenvolvimento de software) Fases, metodologias, processos e modelos
- O que é o SDLC Waterfall Model?
- 25 melhores ferramentas de gerenciamento de projetos em 2021 (classificações mais recentes)
- O que é STLC V-Model?
- Diferença entre garantia de qualidade e controle de qualidade (QA vs QC)
- Teste de caixa branca: um guia completo com técnicas, exemplos e ferramentas
- Teste da caixa preta: um tutorial aprofundado com exemplos e técnicas
- Perguntas e respostas da entrevista