Prévia do material em texto
1. O que é o ciclo de vida de desenvolvimento de software? A) Um processo contínuo sem etapas definidas. B) Um conjunto de etapas que um software passa desde a concepção até a sua aposentadoria. C) Apenas a fase de testes e depuração de software. D) A implementação de novas funcionalidades em um sistema existente. Resposta correta: B Explicação: O ciclo de vida de desenvolvimento de software refere-se ao conjunto de etapas que o software passa desde a sua concepção, incluindo o planejamento, desenvolvimento, testes, implantação e manutenção, até a sua aposentadoria. 2. Qual das opções a seguir descreve o modelo "Ágil" de desenvolvimento de software? A) Um modelo linear e sequencial onde todas as fases são completadas antes de começar a próxima. B) Um modelo iterativo e incremental, com entregas frequentes e foco na colaboração. C) Um modelo onde o foco é apenas na documentação. D) Um modelo que requer apenas uma fase de desenvolvimento e uma de testes. Resposta correta: B Explicação: O modelo Ágil é baseado em entregas frequentes e incrementais de software, com ciclos curtos e interação constante com os usuários, permitindo adaptação às mudanças rapidamente e com foco na colaboração e feedback contínuos. 3. O que é um “bug” em desenvolvimento de software? A) Um recurso novo que será adicionado ao sistema. B) Um erro ou falha no código que causa comportamentos inesperados. C) Uma documentação explicativa do código. D) A etapa de testes do software. Resposta correta: B Explicação: Um "bug" é um erro ou falha no código que pode levar o software a apresentar comportamentos inesperados ou falhas durante a execução. É algo a ser corrigido durante o processo de desenvolvimento. 4. Qual é a principal função de um "framework" no desenvolvimento de software? A) Criar automaticamente todos os recursos necessários para o software. B) Fornecer uma estrutura reutilizável para o desenvolvimento de aplicações, acelerando o processo e garantindo boas práticas. C) Substituir completamente o desenvolvedor de software. D) Testar automaticamente todas as funcionalidades do software. Resposta correta: B Explicação: Um "framework" é uma estrutura de desenvolvimento que oferece ferramentas, bibliotecas e convenções para facilitar a criação de software, acelerando o processo e garantindo consistência e boas práticas entre os desenvolvedores. 5. O que é "refatoração" em desenvolvimento de software? A) O processo de eliminar bugs do código. B) A reescrita total do código-fonte sem alterar o comportamento funcional. C) A adição de novas funcionalidades ao sistema. D) A remoção de funcionalidades obsoletas. Resposta correta: B Explicação: Refatoração é o processo de reestruturar ou reorganizar o código-fonte de um software sem alterar sua funcionalidade, com o objetivo de torná-lo mais legível, eficiente ou fácil de manter. 6. O que é o "Controle de Versão" e por que ele é importante? A) Uma ferramenta para criar backups automáticos. B) Um sistema que rastreia mudanças no código-fonte e permite que múltiplos desenvolvedores colaborem sem conflitos. C) Uma ferramenta para automatizar o deploy de software. D) Um processo para gerenciar o tempo de desenvolvimento do software. Resposta correta: B Explicação: O controle de versão é um sistema que rastreia e gerencia as alterações feitas no código-fonte, permitindo que desenvolvedores trabalhem simultaneamente no mesmo projeto, com segurança, e que alterações possam ser revertidas se necessário. 7. Qual é o objetivo principal dos testes de software? A) Garantir que o software atenda aos requisitos e funcione corretamente em diferentes cenários. B) Acelerar o tempo de desenvolvimento do software. C) Aumentar o número de funcionalidades do software. D) Substituir a necessidade de documentação do código. Resposta correta: A Explicação: O objetivo dos testes de software é identificar falhas ou erros no sistema, garantindo que ele funcione corretamente de acordo com os requisitos especificados e em diferentes cenários de uso. 8. O que é "integração contínua" (CI) no desenvolvimento de software? A) A prática de realizar testes somente após a finalização de todo o desenvolvimento. B) O processo de integrar e testar regularmente pequenas partes do código em um repositório central para evitar falhas de integração. C) A implantação manual do software em produção. D) A criação de novos módulos do software sem verificar a compatibilidade com o código anterior. Resposta correta: B Explicação: A integração contínua (CI) é uma prática de desenvolvimento onde os desenvolvedores frequentemente integram seu código em um repositório central, realizando testes automaticamente para detectar falhas cedo no processo de desenvolvimento. 9. Qual é a principal vantagem do uso de um banco de dados relacional? A) Ele armazena dados em formato de texto simples. B) Ele permite consultas complexas e relacionamentos entre diferentes conjuntos de dados. C) Ele é mais rápido que bancos de dados não relacionais em todas as situações. D) Ele não precisa de uma estrutura definida para armazenar os dados. Resposta correta: B Explicação: Bancos de dados relacionais são estruturados em tabelas que podem ser interconectadas por chaves, permitindo consultas complexas e organizadas de grandes volumes de dados, o que é ideal para sistemas que necessitam de consistência e relacionamentos entre informações. 10. O que é "Desenvolvimento Orientado a Testes" (TDD)? A) Uma metodologia onde o desenvolvimento começa com a criação de testes antes do código. B) Uma prática onde o código é escrito e testado após a implementação das funcionalidades. C) Um processo onde todos os testes são automatizados sem necessidade de revisão. D) Uma abordagem onde os desenvolvedores não precisam realizar testes no código. Resposta correta: A Explicação: O TDD (Test-Driven Development) é uma metodologia em que os desenvolvedores escrevem testes automáticos antes de escrever o código funcional, garantindo que o software atenda aos requisitos desde o início.