REVISÃO - ENG DE SOFTWARE - AV2 COM GABARITO
Document Details
Uploaded by Deleted User
Tags
Summary
This document contains a set of questions about software engineering concepts, specifically regarding performance testing, agile development methodologies, and testing methodologies. The questions span different topics, from testing types to tools and practices. The summary is suitable for students preparing for a software engineering exam or assignment covering similar subjects.
Full Transcript
REVISÃO 1. "Os testes de desempenho são cruciais para garantir a qualidade e a robustez de um software. Ao simular diferentes cenários de carga, é possível identificar gargalos e limitações do sistema antes que eles impactem os usuários finais. Dentre os diversos tipos de testes de desempenho, algun...
REVISÃO 1. "Os testes de desempenho são cruciais para garantir a qualidade e a robustez de um software. Ao simular diferentes cenários de carga, é possível identificar gargalos e limitações do sistema antes que eles impactem os usuários finais. Dentre os diversos tipos de testes de desempenho, alguns são mais comuns e eficazes para avaliar o comportamento de um software sob diferentes condições. Qual das seguintes técnicas NÃO é comumente utilizada para testar o desempenho de um software sob diferentes cargas? a) Testes de carga b) Testes de estresse c) Testes de usabilidade d) Testes de volume e) Testes de pico 2. O que se busca medir principalmente em um teste de carga? a) A estabilidade do sistema em condições extremas de uso. b) A capacidade do sistema de responder a um número crescente de usuários simultâneos. c) A facilidade de uso da interface do usuário. d) A conformidade do software com os requisitos funcionais. e) A quantidade de memória utilizada pelo sistema. 3. Qual das seguintes ferramentas é mais adequada para realizar análises detalhadas de gargalos de performance em um sistema? a) Gerenciadores de tarefas b) Profiladores c) Compiladores d) Editores de código e) Debuggers 4. Qual das alternativas NÃO representa uma prática comum de otimização de performance? a) Redução do número de conexões de banco de dados b) Utilização de algoritmos mais eficientes c) Aumento da frequência do processador d) Minimização do uso de memória e) Compilação do código com otimizações 5. Qual dos seguintes indicadores NÃO é comumente utilizado para avaliar o desempenho de um sistema? a) Tempo de resposta b) Taxa de erro c) Utilização de CPU d) Satisfação do usuário e) Throughput 6. O que significa realizar um teste de estresse em um software? a) Simular um cenário de uso normal do sistema. b) Verificar a capacidade do sistema de se recuperar de falhas. c) Avaliar o desempenho do sistema sob uma carga crescente até que ele falhe. d) Medir o tempo de resposta do sistema em diferentes condições de rede. e) Comparar o desempenho do sistema com o de outros sistemas similares. 7. Qual a importância de realizar testes de performance em um software? a) Garantir que o software seja fácil de usar. b) Verificar se o software atende aos requisitos funcionais. c) Identificar e corrigir problemas de desempenho antes da entrega do software. d) Avaliar a qualidade do código fonte. e) Todas as alternativas anteriores. 8. Qual a principal diferença entre testes de carga e testes de estresse? a) Os testes de carga simulam um número crescente de usuários, enquanto os testes de estresse simulam condições extremas de uso. b) Os testes de carga medem o tempo de resposta do sistema, enquanto os testes de estresse medem a utilização de recursos. c) Os testes de carga são realizados em ambientes de desenvolvimento, enquanto os testes de estresse são realizados em ambientes de produção. d) Os testes de carga são realizados manualmente, enquanto os testes de estresse são automatizados. e) Não há diferença entre testes de carga e testes de estresse. 9. Qual a importância de utilizar ferramentas especializadas para realizar testes de performance? a) As ferramentas especializadas permitem simular cargas realistas e complexas. b) As ferramentas especializadas fornecem dados detalhados sobre o desempenho do sistema. c) As ferramentas especializadas automatizam o processo de teste, economizando tempo e recursos. d) Todas as alternativas estão corretas, exceto a que afirma que nenhuma está correta. e) Nenhuma das alternativas anteriores, exceto a que afirma estarem corretas. 10. "O Manifesto Ágil revolucionou a forma como desenvolvemos software, colocando em primeiro plano valores como flexibilidade, colaboração e adaptação a mudanças. Ao priorizar pessoas, software funcional e a satisfação do cliente, o Manifesto Ágil contrasta com os métodos tradicionais de desenvolvimento. Dentre as alternativas abaixo, qual NÃO representa um dos valores fundamentais do Manifesto Ágil?" a) Indivíduos e interações mais que processos e ferramentas b) Software funcionando mais que documentação abrangente c) Contratos negociados mais que negociação de contratos d) Colaboração com o cliente mais que negociação de contratos e) Responder a mudanças mais que seguir um plano 11. O que significa a prática de "iteração" no desenvolvimento ágil?1 a) Desenvolver o software de uma vez só, sem interrupções. b) Dividir o desenvolvimento em ciclos curtos, com entregas incrementais. c) Criar um plano detalhado no início do projeto e segui-lo rigorosamente. d) Priorizar a documentação sobre o código funcional. e) Trabalhar isoladamente, sem a necessidade de colaboração. 12. "A adoção de metodologias ágeis nas empresas tem crescido significativamente, impulsionando a busca por ferramentas que auxiliem na gestão de projetos e na colaboração entre os membros da equipe. Existem diversas opções no mercado, cada uma com suas características e funcionalidades específicas. Qual das alternativas abaixo apresenta uma ferramenta amplamente utilizada para gerenciar projetos ágeis e promover a colaboração?" a) Microsoft Project b) Jira c) Visio d) Excel e) PowerPoint 13. Qual das seguintes afirmações sobre o desenvolvimento ágil é FALSA? a) O desenvolvimento ágil valoriza a adaptação às mudanças. b) O feedback do cliente é fundamental no desenvolvimento ágil. c) O desenvolvimento ágil é adequado para todos os tipos de projetos. d) O desenvolvimento ágil enfatiza a colaboração entre os membros da equipe. e) O desenvolvimento ágil busca entregar valor ao cliente de forma incremental. 14. Qual das seguintes práticas NÃO é comumente utilizada em projetos ágeis? a) Planejamento diário (daily scrum) b) Reuniões de revisão (sprint review) c) Retrospectivas d) Documentação detalhada de todos os requisitos antes do início do desenvolvimento e) Demonstrações regulares do software ao cliente 15. Qual das seguintes características NÃO é típica de um time ágil? a) Auto-organização b) Colaboração c) Foco em tarefas individuais d) Adaptabilidade e) Comunicação aberta 16. Qual a importância do Product Owner em um projeto ágil? a) Gerenciar a equipe de desenvolvimento. b) Facilitar as reuniões e garantir que o time siga o processo ágil. c) Representar os interesses do cliente e definir a visão do produto. d) Desenvolver o código do software. e) Realizar testes de qualidade. 17. Qual das seguintes afirmações sobre o Kanban é VERDADEIRA? a) O Kanban é baseado em sprints de tempo fixo. b) O Kanban enfatiza a criação de um plano detalhado antes do início do projeto. c) O Kanban utiliza um quadro visual para acompanhar o fluxo de trabalho. d) O Kanban é mais adequado para projetos com requisitos bem definidos. e) O Kanban não permite mudanças de prioridades durante o desenvolvimento. 18. Qual das seguintes opções NÃO é um objetivo principal do gerenciamento de configuração? a) Controlar as mudanças em um sistema de software. b) Rastrear a história das versões de um software. c) Desenvolver novas funcionalidades para o software. d) Garantir a integridade e a rastreabilidade dos componentes de software. e) Reduzir o risco de erros durante o desenvolvimento e a manutenção. 19. Qual das seguintes ferramentas é amplamente utilizada para versionamento de código-fonte? a) Microsoft Project b) Jira c) Git d) Visio e) Trello 20 O que significa o termo "baseline" no contexto do gerenciamento de configuração? a) Uma versão inicial de um software. b) Um ponto de referência estável de um sistema, a partir do qual as mudanças são controladas. c) Um processo de revisão de código. d) Uma ferramenta de automação de testes. e) Um tipo de diagrama de fluxo. 21. Qual das seguintes práticas NÃO é recomendada para o gerenciamento de configuração? a) Armazenar todas as versões de um arquivo. b) Realizar backups regulares. c) Permitir que qualquer membro da equipe faça alterações no código sem controle. d) Utilizar um sistema de versionamento. e) Realizar revisões de código antes de mesclar as mudanças. 22. Qual é a principal diferença entre integração contínua (CI) e entrega contínua (CD)? a) A CI foca em testes, enquanto a CD foca em deploy. b) A CI é mais rápida que a CD. c) A CI automatiza a integração de código, enquanto a CD automatiza a entrega do software. d) A CI é mais complexa que a CD. e) Não há diferença entre CI e CD. 23. Qual é a importância do controle de versão no desenvolvimento de software? a) Permite que os desenvolvedores trabalhem em isolamento. b) Permite rastrear as mudanças no código, colaborar em projetos e restaurar versões anteriores. c) Elimina a necessidade de testes. d) Garante que todos os desenvolvedores utilizem a mesma versão do software. e) Simplifica a criação de documentação. 24. Qual das seguintes afirmações sobre a integração contínua é FALSA? a) A integração contínua automatiza a construção e o teste do software. b) A integração contínua ajuda a identificar problemas de integração mais cedo. c) A integração contínua aumenta a dependência entre os desenvolvedores. d) A integração contínua melhora a qualidade do software. e) A integração contínua permite que as equipes entreguem software com mais frequência. 25. Qual das seguintes técnicas de elicitação de requisitos é mais adequada para capturar requisitos implícitos e não funcionais, como a usabilidade e a confiabilidade de um sistema? a) Entrevistas estruturadas b) Análise de documentos c) Observação do usuário d) Brainstorming e) Questionários 26. Qual é a principal função de um diagrama de casos de uso na engenharia de requisitos? a) Modelar a arquitetura do sistema. b) Representar a estrutura de dados do sistema. c) Descrever as interações entre os atores e o sistema. d) Especificar as interfaces do sistema. e) Modelar o fluxo de dados dentro do sistema. 27. Qual das seguintes afirmações sobre a gestão de requisitos é FALSA? a) A gestão de requisitos envolve o processo de identificar, analisar, documentar e verificar os requisitos de um sistema. b) As mudanças nos requisitos devem ser controladas e documentadas. c) Os requisitos devem ser definidos apenas no início do projeto e não podem ser alterados. d) A rastreabilidade dos requisitos é importante para garantir que eles sejam implementados e testados. e) A validação de requisitos garante que os requisitos sejam completos, consistentes e corretos. 28. Qual das seguintes ferramentas é comumente utilizada para modelar requisitos funcionais e não funcionais? a) Microsoft Excel b) Jira c) UML (Unified Modeling Language) d) Trello e) Visio 29. Qual é o principal objetivo da documentação de requisitos? a) Comunicar os requisitos aos desenvolvedores de forma informal. b) Criar um documento técnico para uso interno da equipe de desenvolvimento. c) Servir como um contrato entre o cliente e a equipe de desenvolvimento, garantindo que o sistema atenda às necessidades do cliente. d) Documentar as decisões de design tomadas durante o desenvolvimento. e) Registrar as mudanças realizadas no sistema ao longo do tempo. 30. O que significa a rastreabilidade de requisitos? a) A capacidade de rastrear as mudanças no código fonte. b) A capacidade de rastrear os defeitos encontrados durante os testes. c) A capacidade de rastrear os requisitos desde a sua origem até a sua implementação e teste. d) A capacidade de rastrear os custos do projeto. e) A capacidade de rastrear os riscos do projeto. 31. Qual das seguintes afirmações sobre os requisitos não funcionais é VERDADEIRA? a) Os requisitos não funcionais descrevem as funções que o sistema deve realizar. b) Os requisitos não funcionais são menos importantes que os requisitos funcionais. c) Os requisitos não funcionais especificam as qualidades do sistema, como desempenho, segurança e usabilidade. d) Os requisitos não funcionais são fáceis de medir e quantificar. e) Os requisitos não funcionais não precisam ser documentados. 32. Qual das seguintes afirmações melhor define o Desenvolvimento Dirigido por Modelos (MDD)? a) Uma metodologia de desenvolvimento de software que utiliza diagramas de fluxo para representar o sistema. b) Uma abordagem que foca exclusivamente na programação orientada a objetos. c) Uma abordagem de desenvolvimento de software que utiliza modelos como a principal artefato para a especificação, construção e documentação de sistemas. d) Uma metodologia ágil que prioriza a entrega rápida de funcionalidades. e) Uma técnica de teste de software que verifica a conformidade do sistema com os requisitos. 33. Qual é o principal benefício do uso de modelos no desenvolvimento de software? a) Reduzir a quantidade de código escrita. b) Aumentar a complexidade dos sistemas. c) Melhorar a comunicação entre as partes interessadas e facilitar a compreensão do sistema. d) Eliminar completamente a necessidade de testes. e) Tornar o desenvolvimento de software mais lento. 34. Qual das seguintes ferramentas é comumente utilizada para criar modelos no contexto do MDD? a) Microsoft Excel b) Jira c) UML (Unified Modeling Language) d) Trello e) Visio 35. Qual é a principal diferença entre um modelo conceitual e um modelo de implementação no MDD? a) O modelo conceitual representa a visão do usuário, enquanto o modelo de implementação representa a visão do desenvolvedor. b) O modelo conceitual é mais detalhado que o modelo de implementação. c) O modelo conceitual é criado após o modelo de implementação. d) O modelo conceitual não pode ser transformado em código. e) Não há diferença entre os dois modelos. 36. Qual das seguintes afirmações sobre a geração de código a partir de modelos é VERDADEIRA? a) A geração de código é um processo manual e sujeito a erros. b) A geração de código só pode ser utilizada para linguagens de programação de baixo nível. c) A geração de código permite automatizar a criação de código a partir de modelos, reduzindo o esforço de desenvolvimento. d) A geração de código elimina completamente a necessidade de programação. e) A geração de código não é compatível com o desenvolvimento ágil. 37. Qual das seguintes técnicas é utilizada para transformar modelos em código? a) Engenharia reversa b) Transformação de modelos c) Refatoração d) Prototipação e) Mineração de dados 38. Qual das seguintes áreas é mais beneficiada pela aplicação do MDD? a) Desenvolvimento de aplicativos móveis simples. b) Desenvolvimento de sistemas complexos e críticos. c) Desenvolvimento de jogos. d) Desenvolvimento de websites estáticos. e) Desenvolvimento de aplicativos de linha de comando. 39. Qual é a principal vantagem da utilização de modelos executáveis? a) Reduzir a necessidade de documentação. b) Aumentar a complexidade dos modelos. c) Permitir a simulação e a validação do sistema antes da implementação. d) Eliminar completamente a necessidade de testes. e) Tornar o desenvolvimento de software mais lento. 40. Qual das seguintes afirmações sobre as ferramentas de MDD é FALSA? a) As ferramentas de MDD permitem criar e editar modelos visuais. b) As ferramentas de MDD podem gerar código em diferentes linguagens de programação. c) As ferramentas de MDD são muito caras e complexas para serem utilizadas em projetos de pequeno porte. d) As ferramentas de MDD podem ser integradas com outras ferramentas de desenvolvimento. e) As ferramentas de MDD podem ser utilizadas para simular o comportamento do sistema. 41. Qual é o principal desafio na adoção do MDD em uma organização? a) A falta de ferramentas disponíveis. b) A resistência dos desenvolvedores a novas tecnologias. c) A necessidade de uma mudança cultural e de processos. d) O alto custo das ferramentas de MDD. e) A falta de padrões para a modelagem. 42. Qual das seguintes opções NÃO é um tipo de manutenção de software? a) Corretiva b) Adaptativa c) Perfectiva d) Preventiva e) Evolutiva (A manutenção evolutiva é um subtipo da manutenção adaptativa) 43. Qual é o principal objetivo da manutenção corretiva de software? a) Adicionar novas funcionalidades ao sistema. b) Adaptar o sistema a um novo ambiente ou tecnologia. c) Corrigir defeitos e erros encontrados no software. d) Melhorar o desempenho do sistema. e) Prevenir futuros problemas. 44. Qual das seguintes estratégias NÃO contribui para a qualidade contínua de um software? a) Realizar testes de software regularmente. b) Implementar um sistema de controle de versão. c) Utilizar ferramentas de monitoramento de desempenho. d) Evitar a documentação do código. e) Promover a comunicação entre os desenvolvedores e os usuários. 45. Qual é a principal função de um sistema de suporte técnico? a) Desenvolver novas funcionalidades para o software. b) Realizar testes de software. c) Auxiliar os usuários a resolver problemas e dúvidas sobre o software. d) Gerenciar o ciclo de vida do software. e) Implementar correções de bugs. 46. Qual das seguintes ferramentas é comumente utilizada para gerenciar incidentes e solicitações de suporte? a) Microsoft Excel b) Jira c) Trello d) ServiceNow e) Visio 47. Qual das seguintes métricas NÃO é relevante para avaliar a qualidade de um sistema de suporte técnico? a) Tempo médio de resolução de incidentes. b) Número de incidentes por usuário. c) Satisfação do cliente. d) Número de linhas de código. e) Taxa de resolução de incidentes na primeira tentativa. 48. Qual das seguintes práticas é importante para garantir a qualidade da documentação de um software? a) Manter a documentação desatualizada. b) Utilizar uma linguagem técnica complexa. c) Atualizar a documentação sempre que o software for modificado. d) Evitar a criação de diagramas e fluxogramas. e) Limitar o acesso à documentação aos desenvolvedores. 49. Qual das seguintes estratégias pode ajudar a reduzir o número de incidentes de software? a) Ignorar os feedbacks dos usuários. b) Realizar apenas testes unitários. c) Implementar um processo de revisão de código. d) Evitar a utilização de ferramentas de automação. e) Desenvolver o software de forma isolada. 50. Qual das seguintes ferramentas é comumente utilizada para monitorar o desempenho de aplicações web? a) Microsoft Word b) PowerPoint c) Jira d) New Relic e) Visio Gabarito das Questões 1. c) Testes de usabilidade 2. b) A capacidade do sistema de responder a um número crescente de usuários simultâneos. 3. b) Profiladores 4. c) Aumento da frequência do processador 5. d) Satisfação do usuário 6. c) Avaliar o desempenho do sistema sob uma carga crescente até que ele falhe. 7. c) Identificar e corrigir problemas de desempenho antes da entrega do software. 8. a) Os testes de carga simulam um número crescente de usuários, enquanto os testes de estresse simulam condições extremas de uso. 9. d) Todas as alternativas estão corretas, exceto a que afirma que nenhuma está correta. 10. c) Contratos negociados mais que negociação de contratos 11. b) Dividir o desenvolvimento em ciclos curtos, com entregas incrementais. 12. b) Jira 13. c) O desenvolvimento ágil é adequado para todos os tipos de projetos. 14. d) Documentação detalhada de todos os requisitos antes do início do desenvolvimento 15. c) Foco em tarefas individuais 16. c) Representar os interesses do cliente e definir a visão do produto. 17. c) O Kanban utiliza um quadro visual para acompanhar o fluxo de trabalho. 18. c) Desenvolver novas funcionalidades para o software. 19. c) Git 20. b) Um ponto de referência estável de um sistema, a partir do qual as mudanças são controladas. 21. c) Permitir que qualquer membro da equipe faça alterações no código sem controle. 22. c) A CI automatiza a integração de código, enquanto a CD automatiza a entrega do software. 23. b) Permite rastrear as mudanças no código, colaborar em projetos e restaurar versões anteriores. 24. c) A integração contínua aumenta a dependência entre os desenvolvedores. 25. c) Observação do usuário 26. c) Descrever as interações entre os atores e o sistema. 27. c) Os requisitos devem ser definidos apenas no início do projeto e não podem ser alterados. 28. c) UML (Unified Modeling Language) 29. c) Servir como um contrato entre o cliente e a equipe de desenvolvimento, garantindo que o sistema atenda às necessidades do cliente. 30. c) A capacidade de rastrear os requisitos desde a sua origem até a sua implementação e teste. 31. c) Os requisitos não funcionais especificam as qualidades do sistema, como desempenho, segurança e usabilidade. 32. c) Uma abordagem de desenvolvimento de software que utiliza modelos como a principal artefato para a especificação, construção e documentação de sistemas. 33. c) Melhorar a comunicação entre as partes interessadas e facilitar a compreensão do sistema. 34. c) UML (Unified Modeling Language) 35. a) O modelo conceitual representa a visão do usuário, enquanto o modelo de implementação representa a visão do desenvolvedor. 36. c) A geração de código permite automatizar a criação de código a partir de modelos, reduzindo o esforço de desenvolvimento. 37. b) Transformação de modelos 38. b) Desenvolvimento de sistemas complexos e críticos. 39. c) Permitir a simulação e a validação do sistema antes da implementação. 40. c) As ferramentas de MDD são muito caras e complexas para serem utilizadas em projetos de pequeno porte. 41. c) A necessidade de uma mudança cultural e de processos. 42. e) Evolutiva 43. c) Corrigir defeitos e erros encontrados no software. 44. d) Evitar a documentação do código. 45. c) Auxiliar os usuários a resolver problemas e dúvidas sobre o software. 46. d) ServiceNow 47. d) Número de linhas de código. 48. c) Atualizar a documentação sempre que o software for modificado. 49. c) Implementar um processo de revisão de código. 50. d) New Relic