Prévia do material em texto
<p>Validado sem ajustes: ( )</p><p>Validado com ajustes: ( )</p><p>Não Validado: ( )</p><p>MODELOS PERMITIDOS PARA PRODUÇÃO</p><p>OBJETIVA DE RESPOSTA ÚNICA</p><p>1) A Integração Contínua é uma prática fundamental no desenvolvimento de software moderno, que visa melhorar a qualidade e a eficiência do processo de desenvolvimento. Dentro desse contexto, o commit frequente de código é uma das práticas recomendadas, pois permite que as alterações sejam integradas ao código base de maneira contínua, reduzindo o risco de conflitos e facilitando a identificação precoce de bugs. Além disso, essa prática contribui para uma maior colaboração entre os membros da equipe, uma vez que todos estão constantemente atualizados com as últimas modificações no projeto.</p><p>Nesse sentido, assinale a alternativa que melhor explica por que o commit frequente de código é uma prática recomendada na Integração Contínua.</p><p>a) Reduz a quantidade de código revisado por commit, tornando a revisão mais eficiente.</p><p>b) Garante que o código seja sempre seguro contra ataques cibernéticos.</p><p>c) Facilita a adição de novas funcionalidades sem a necessidade de testes adicionais.</p><p>d) Permite que o código seja compartilhado com clientes e usuários em tempo real.</p><p>e) Elimina a necessidade de um servidor de Integração Contínua.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois ao reduzir a quantidade de código revisado por commit, a revisão torna-se mais eficiente e menos propensa a erros. Isso permite identificar problemas mais rapidamente e facilita a integração das mudanças com o código existente.</p><p>2) A Integração Contínua é uma prática essencial no desenvolvimento de software, focada em integrar frequentemente o trabalho dos desenvolvedores para detectar erros rapidamente e melhorar a qualidade do software. O build automatizado é uma parte crucial desse processo, garantindo que o código esteja sempre em um estado de prontidão para ser liberado, reduzindo o risco de bugs e problemas de integração no futuro.</p><p>Nesse sentido, assinale a alternativa que melhor explica por que o build automatizado é uma prática recomendada na Integração Contínua.</p><p>a) Permite que o código seja liberado para produção sem passar por testes de qualidade.</p><p>b) Garante que todas as dependências do projeto sejam atualizadas automaticamente a cada commit.</p><p>c) Automatiza o processo de compilação e testes, garantindo que todas as alterações sejam verificadas.</p><p>d) Assegura que o código seja otimizado para desempenho em tempo real.</p><p>e) Substitui a necessidade de revisões de código pelos desenvolvedores.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois ao automatizar o processo de compilação e testes, garante-se que todas as alterações no código sejam verificadas imediatamente. Isso permite a detecção precoce de erros e problemas, assegurando que o código esteja sempre em um estado pronto para ser liberado, melhorando a eficiência e a qualidade do desenvolvimento de software.</p><p>3) Na prática da Integração Contínua, os testes automatizados desempenham um papel vital para garantir a qualidade do software. Esses testes são executados automaticamente sempre que há uma nova alteração no código. Além disso, os testes automatizados permitem que as equipes de desenvolvimento trabalhem com mais confiança, sabendo que as novas mudanças são validadas continuamente. Essa prática não apenas melhora a qualidade do software, mas também acelera o ciclo de desenvolvimento e facilita a manutenção do código.</p><p>Nesse sentido, assinale a alternativa que melhor explica por que os testes automatizados são uma prática recomendada na Integração Contínua.</p><p>a) Permitem que o software seja liberado sem a necessidade de revisão manual.</p><p>b) Garantem que todas as funcionalidades do software sejam verificadas em tempo real.</p><p>c) Eliminam a necessidade de qualquer teste manual durante o desenvolvimento.</p><p>d) Reduzem a necessidade de comunicação entre os membros da equipe de desenvolvimento.</p><p>e) Permitem detectar e corrigir erros mais cedo no processo de desenvolvimento.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os testes automatizados permitem detectar e corrigir erros mais cedo no processo de desenvolvimento, garantindo que as funcionalidades continuem funcionando conforme esperado. Isso melhora a qualidade do software e acelera o ciclo de desenvolvimento, facilitando a manutenção contínua do código.</p><p>4) No contexto da Integração Contínua, o feedback imediato é uma prática que tem um impacto significativo na eficiência do desenvolvimento de software. Esse ciclo rápido de feedback é possível graças à automação dos processos de build e teste, que verificam continuamente a integridade do código. Além de aumentar a confiança dos desenvolvedores nas suas mudanças, o feedback imediato promove uma cultura de melhoria contínua e colaboração dentro da equipe.</p><p>Nesse sentido, assinale a alternativa que melhor explica por que o feedback imediato é uma prática recomendada na Integração Contínua.</p><p>a) Permite que o código seja revisado por outros membros da equipe antes de ser testado.</p><p>b) Garante que as alterações no código sejam implantadas diretamente em produção sem atrasos.</p><p>c) Permite que os desenvolvedores identifiquem e corrijam problemas rapidamente, melhorando a eficiência do desenvolvimento.</p><p>d) Elimina a necessidade de testes automatizados, pois os desenvolvedores recebem feedback imediato sobre suas mudanças.</p><p>e) Assegura que todas as dependências do projeto sejam atualizadas automaticamente com cada commit.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o feedback imediato permite que os desenvolvedores identifiquem e corrijam problemas rapidamente, melhorando a qualidade e a eficiência do desenvolvimento. Esse ciclo rápido de feedback é crucial para detectar erros cedo e manter a integridade do código, promovendo uma cultura de melhoria contínua dentro da equipe.</p><p>5) A Integração Contínua desempenha um papel fundamental na melhoria da qualidade do código no desenvolvimento de software. Essa prática envolve a integração frequente das mudanças de código em um repositório compartilhado, seguido pela execução de builds e testes automatizados. Com isso, é possível detectar erros e conflitos de integração logo no início, antes que se tornem problemas maiores. A melhoria contínua da qualidade do código é um dos principais benefícios dessa abordagem, levando a um software mais robusto e confiável.</p><p>Nesse sentido, assinale a alternativa que melhor explica por que a Integração Contínua contribui para a melhoria da qualidade do código.</p><p>a) Permite que os desenvolvedores implementem funcionalidades complexas sem a necessidade de testes.</p><p>b) Garante que todas as mudanças no código sejam automaticamente revertidas se algum teste falhar.</p><p>c) Facilita a aplicação de práticas de codificação consistentes e a adoção de padrões de qualidade.</p><p>d) Elimina a necessidade de revisão de código pelos pares, uma vez que os testes automatizados são suficientes.</p><p>e) Assegura que todos os desenvolvedores estejam trabalhando na mesma parte do código ao mesmo tempo.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a Integração Contínua facilita a aplicação de práticas de codificação consistentes e a adoção de padrões de qualidade, detectando erros e conflitos de integração logo no início. Isso contribui significativamente para a melhoria da qualidade do código, resultando em um software mais robusto e confiável.</p><p>6) A Integração Contínua (IC) é uma prática essencial no desenvolvimento de software moderno. Com a IC, os desenvolvedores fazem commits frequentes em um repositório compartilhado, o que significa que todos trabalham com a versão mais recente do código. Isso reduz o risco de conflitos de integração. Além disso, a transparência e a visibilidade proporcionadas pelos builds e testes automatizados ajudam a equipe a identificar e resolver problemas rapidamente, promovendo um ambiente de trabalho mais coeso e colaborativo.</p><p>Nesse sentido, assinale a alternativa que melhor</p><p>explica por que a Integração Contínua contribui para a melhoria da colaboração entre os membros da equipe.</p><p>a) Permite que cada desenvolvedor trabalhe isoladamente sem precisar sincronizar com o repositório central.</p><p>b) Garante que todos os desenvolvedores estejam sempre trabalhando na mesma funcionalidade ao mesmo tempo.</p><p>c) Facilita a comunicação e a cooperação entre os desenvolvedores, reduzindo o risco de conflitos de integração de código.</p><p>d) Elimina a necessidade de reuniões de equipe, uma vez que todos os problemas são resolvidos automaticamente pelos testes automatizados.</p><p>e) Assegura que todos os desenvolvedores possuam permissões de administrador para modificar o repositório central a qualquer momento.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a Integração Contínua facilita a comunicação e a cooperação entre os desenvolvedores ao garantir que todos trabalhem com a versão mais recente do código, reduzindo o risco de conflitos de integração. Isso promove um ambiente de trabalho mais coeso e colaborativo, permitindo que a equipe identifique e resolva problemas rapidamente.</p><p>7) A Integração Contínua (IC) é frequentemente complementada por práticas de Entrega Contínua (EC) e Melhoria Contínua, formando um ciclo virtuoso no desenvolvimento de software. Juntas, essas práticas promovem um desenvolvimento mais rápido, estável e responsivo às necessidades do negócio e dos usuários.</p><p>Nesse sentido, assinale a alternativa que melhor explica como a Integração Contínua, Entrega Contínua e Melhoria Contínua se complementam no desenvolvimento de software.</p><p>a) A Integração Contínua elimina a necessidade de testes, enquanto a Entrega Contínua foca apenas na implementação de novas funcionalidades sem revisão.</p><p>b) A Integração Contínua permite que todos os desenvolvedores trabalhem na mesma versão do código, enquanto a Entrega Contínua garante que o código seja liberado para produção uma vez por ano.</p><p>c) A Integração Contínua garante que o código seja testado frequentemente, a Entrega Contínua assegura que cada mudança seja liberada rapidamente, e a Melhoria Contínua foca na otimização constante.</p><p>d) A Integração Contínua e a Entrega Contínua eliminam a necessidade de colaboração entre os membros da equipe, pois tudo é automatizado.</p><p>e) A Integração Contínua, Entrega Contínua e Melhoria Contínua são práticas independentes que não se influenciam mutuamente no desenvolvimento de software.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a Integração Contínua garante que o código seja testado frequentemente, a Entrega Contínua assegura que cada mudança pode ser liberada rapidamente, e a Melhoria Contínua foca na otimização constante dos processos e da qualidade. Juntas, essas práticas formam um ciclo virtuoso que promove um desenvolvimento mais rápido, estável e responsivo.</p><p>8) Antes da adoção da Integração Contínua (CI), o desenvolvimento de software frequentemente enfrentava uma série de problemas que afetavam tanto a produtividade quanto a qualidade dos produtos finais. A integração do código fazia com que conflitos se acumulassem, tornando a resolução desses problemas uma tarefa complexa e demorada.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. Antes da adoção da Integração Contínua, a falta de feedback imediato sobre as mudanças no código resultava em bugs, elevando os custos de correção,</p><p>POIS</p><p>II. a fusão constante das mudanças de código de diferentes desenvolvedores levava à complexidade acumulada e atrasos na entrega de novas funcionalidades.</p><p>A seguir, assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A asserção I é verdadeira, pois antes da adoção da Integração Contínua, a integração infrequente do código dificultava a detecção precoce de erros. A ausência de feedback imediato sobre as mudanças no código permitia que bugs se acumulassem, tornando a correção mais cara e demorada.</p><p>A asserção II é falsa, pois a fusão constante das mudanças de código, característica da Integração Contínua, visa justamente evitar a complexidade acumulada e os atrasos. Antes da adoção da CI, a fusão rara (não constante) das mudanças é que causava esses problemas.</p><p>9) Antes da adoção da Integração Contínua (CI), o desenvolvimento de software frequentemente enfrentava uma série de problemas que afetavam tanto a produtividade quanto a qualidade dos produtos finais. A integração infrequente do código fazia com que conflitos se acumulassem, tornando a resolução desses problemas uma tarefa complexa e demorada.</p><p>Nesse sentido, assinale a alternativa que melhor descreve um dos problemas enfrentados antes da adoção da Integração Contínua no desenvolvimento de software.</p><p>a) A entrega de novas funcionalidades era acelerada pela ausência de testes automatizados.</p><p>b) Os conflitos de código eram facilmente resolvidos devido à integração contínua de mudanças.</p><p>c) A falta de feedback imediato sobre as mudanças no código resultava em bugs, elevando os custos de correção.</p><p>d) A automação dos processos de build e testes era comum, reduzindo o tempo de desenvolvimento.</p><p>e) Os desenvolvedores podem focar mais na adição de novas funcionalidades ao invés de resolver conflitos de integração.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a falta de feedback imediato sobre as mudanças no código resultava em bugs sendo descobertos tardiamente, elevando os custos de correção. Esse atraso na detecção de erros era um dos principais problemas enfrentados pelas equipes de desenvolvimento antes da adoção da Integração Contínua, que agora permite uma identificação precoce e resolução mais eficiente dos problemas.</p><p>10) A prática de Integração Contínua (CI) começou a ganhar popularidade no início dos anos 2000 como uma resposta aos inúmeros desafios enfrentados pelas equipes de desenvolvimento de software. Antes de sua adoção, os desenvolvedores frequentemente realizavam integrações de código de forma infrequente e manual, resultando em conflitos demorados e difíceis de resolver.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais razões para o início da prática de Integração Contínua no desenvolvimento de software.</p><p>a) Permitir que os desenvolvedores trabalhem isoladamente em suas próprias versões do código sem necessidade de integração frequente.</p><p>b) Aumentar a quantidade de trabalho manual necessário para integrar e testar o código.</p><p>c) Facilitar a detecção precoce de problemas de integração e melhorar a colaboração entre os membros da equipe.</p><p>d) Reduzir a frequência de commits no repositório compartilhado para evitar conflitos de código.</p><p>e) Eliminar a necessidade de testes e builds automatizados, pois os desenvolvedores podem confiar em testes manuais realizados esporadicamente.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a prática de Integração Contínua facilita a detecção precoce de problemas de integração e melhora a colaboração entre os membros da equipe ao integrar o código frequentemente e automatizar builds e testes. Isso foi uma das principais razões para a adoção da CI no desenvolvimento de software, proporcionando um processo mais eficiente e colaborativo</p><p>11) A Integração Contínua (CI) evoluiu significativamente desde sua concepção, com vários marcos importantes que moldaram sua prática atual. Inicialmente, a CI foi popularizada pela metodologia Extreme Programming (XP) no final dos anos 90, que enfatizava a integração frequente do código para melhorar a qualidade e a colaboração. Além disso, a crescente adoção de práticas ágeis e DevOps impulsionou ainda mais a utilização da CI, destacando sua importância</p><p>na entrega contínua de software de alta qualidade.</p><p>Nesse sentido, assinale a alternativa que melhor descreve um dos marcos importantes na evolução da Integração Contínua.</p><p>a) A introdução da metodologia Waterfall, que promoveu a integração contínua desde o início.</p><p>b) A criação do sistema de controle de versão Git, que eliminou a necessidade de integração frequente do código.</p><p>c) O desenvolvimento de ferramentas como CruiseControl e Jenkins, que automatizaram e facilitaram a implementação da CI.</p><p>d) A adoção de testes manuais como principal método para detectar erros no código.</p><p>e) A separação das equipes de desenvolvimento e operações para garantir maior eficiência na entrega de software.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa C está correta, pois o desenvolvimento de ferramentas como CruiseControl e Jenkins automatizou e facilitou a implementação da CI. Essas ferramentas foram marcos importantes que tornaram a prática de Integração Contínua mais acessível e eficiente para as equipes de desenvolvimento, contribuindo para a sua ampla adoção e evolução.</p><p>12) A adoção da Integração Contínua (CI) trouxe profundas mudanças no desenvolvimento e entrega de software. Antes da CI, os desenvolvedores frequentemente enfrentam longos ciclos de integração. Com a CI, as integrações de código tornaram-se mais frequentes, os builds e testes foram automatizados, permitindo a detecção precoce de problemas.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das mudanças sentidas no desenvolvimento e entrega de software com a adoção da Integração Contínua.</p><p>a) Proporcionou ciclos de desenvolvimento mais curtos e maior qualidade do produto final, devido à integração frequente e à automação de builds e testes.</p><p>b) Aumentou o tempo necessário para a integração de código devido à complexidade dos processos automatizados.</p><p>c) Diminuiu a colaboração entre as equipes, já que os desenvolvedores agora trabalham de forma mais independente.</p><p>d) Eliminou a necessidade de revisão de código e testes de qualidade, já que a CI resolve todos os problemas automaticamente.</p><p>e) Aumentou a quantidade de trabalho manual necessário para a integração de código e execução de testes.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa C está correta, pois a adoção da Integração Contínua proporcionou ciclos de desenvolvimento mais curtos e maior qualidade do produto final, devido à integração frequente e à automação de builds e testes. Essas mudanças permitiram a detecção precoce de problemas, melhorando a eficiência e a colaboração entre as equipes de desenvolvimento.</p><p>13) No contexto do desenvolvimento de software, a Integração Contínua (CI), a Entrega Contínua (CD) e as práticas de DevOps desempenham papéis essenciais na melhoria da qualidade, agilidade e velocidade de entrega do software. Essas práticas, quando combinadas, promovem uma colaboração eficiente entre as equipes de desenvolvimento e operações, garantindo que cada alteração de código esteja pronta para produção.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A Integração Contínua (CI) automatiza a integração de código e é um complemento à Entrega Contínua (CD)</p><p>POIS</p><p>II. a Entrega Contínua (CD) assegura que cada alteração esteja pronta para produção.</p><p>A seguir, assinale a alternativa correta:</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A asserção I é verdadeira, pois a Integração Contínua (CI) automatiza o processo de integração de código, permitindo que alterações de código sejam verificadas e integradas continuamente. CI é, de fato, um complemento à Entrega Contínua (CD), pois a CD continua o processo de CI, levando as mudanças integradas para um ambiente de produção de maneira automatizada.</p><p>A asserção II é verdadeira, pois a Entrega Contínua (CD) envolve a implementação de um pipeline de automação que assegura que cada alteração no código esteja sempre em um estado pronto para produção, sujeita a testes automatizados e outras verificações de qualidade.</p><p>A relação entre as duas afirmações é que ambas são componentes de um pipeline de desenvolvimento contínuo, onde CI se foca na integração automatizada de código e CD assegura que o código integrado esteja pronto para produção. Entretanto, a segunda afirmação (II) não justifica diretamente a função de CI.</p><p>14) No desenvolvimento de software moderno, a Integração Contínua (CI) é uma prática que depende fortemente de um repositório de código fonte centralizado. Esse repositório é o ponto onde todas as mudanças de código são integradas e compartilhadas entre os membros da equipe. A gestão eficaz do repositório de código fonte é crucial para o sucesso da CI, promovendo a consistência e a integridade do código ao longo do ciclo de desenvolvimento.</p><p>Nesse sentido, assinale a alternativa que melhor explica a importância do repositório de código fonte na Integração Contínua.</p><p>a) Permite que os desenvolvedores trabalhem em versões diferentes do código sem precisar integrá-las.</p><p>b) Facilita a colaboração entre os desenvolvedores ao garantir que todos trabalhem com a versão mais recente do código.</p><p>c) Elimina a necessidade de testes automatizados, já que o código é revisado manualmente pelos desenvolvedores.</p><p>d) Garante que o código fonte seja sempre mantido em um servidor local, evitando problemas de segurança.</p><p>e) Reduz a frequência de commits no repositório, diminuindo a necessidade de integrações frequentes.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o repositório de código fonte facilita a colaboração entre os desenvolvedores ao garantir que todos trabalhem com a versão mais recente do código e permitindo a automação de builds e testes. Isso é fundamental para a prática da Integração Contínua, que depende da integração frequente e da detecção precoce de conflitos e bugs.</p><p>15) No contexto da Integração Contínua (CI), a atualização constante do pipeline de build é crucial para manter a eficiência e a qualidade do desenvolvimento de software. Isso inclui a integração de novas ferramentas, ajustes nas etapas de teste e build, e a implementação de novas práticas recomendadas. Manter o pipeline de build atualizado é essencial para detectar e corrigir problemas rapidamente.</p><p>Nesse sentido, assinale a alternativa que melhor explica a importância de manter o pipeline de build atualizado na Integração Contínua.</p><p>a) Garante que o código seja compilado manualmente em cada commit, reduzindo erros.</p><p>b) Permite a execução de testes esporádicos, evitando a sobrecarga de recursos.</p><p>c) Assegurar que todas as etapas de build e teste sejam realizadas de forma consistente.</p><p>d) Elimina a necessidade de integrar novas ferramentas no processo de desenvolvimento.</p><p>e) Reduz a necessidade de manutenção, mantendo o pipeline estático e inalterado.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois manter o pipeline de build atualizado assegura que todas as etapas de build e teste sejam realizadas de forma eficiente e consistente. Isso é crucial para detectar e corrigir problemas rapidamente, melhorar a qualidade do código e garantir que o software esteja sempre pronto para ser liberado em produção.</p><p>16) No desenvolvimento de software, a Integração Contínua (CI) inclui várias etapas essenciais para garantir que o código esteja sempre pronto para ser implantado em diferentes ambientes, incluindo ambientes de teste. Implantar o software nesses ambientes é um passo crucial para validar as novas funcionalidades e detectar possíveis problemas antes da liberação em produção. Um processo bem definido e automatizado para a implantação em ambientes de teste assegura que o software seja testado de maneira consistente</p><p>e eficiente, garantindo sua qualidade e estabilidade.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das etapas para a implantação do software em ambientes de teste na Integração Contínua.</p><p>a) Construir o código manualmente para cada ambiente de teste.</p><p>b) Configurar o ambiente de teste somente após a liberação em produção.</p><p>c) Evitar a integração contínua para reduzir o tempo de implantação.</p><p>d) Realizar a implantação em produção antes de testar no ambiente de teste.</p><p>e) Executar testes automatizados para validar as mudanças no código.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois executar testes automatizados para validar as mudanças no código é uma etapa crucial na implantação do software em ambientes de teste. Essa prática garante que o software seja testado de maneira consistente e eficiente, ajudando a identificar e corrigir problemas antes da liberação em produção.</p><p>17) No contexto da Integração Contínua (CI), a automação de infraestrutura, conhecida como Infrastructure as Code (IaC), desempenha um papel crucial na entrega de software de maneira ágil e confiável. A IaC permite que a configuração e o gerenciamento da infraestrutura sejam tratados como código, utilizando scripts para definir e provisionar automaticamente os recursos necessários.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A automação de infraestrutura (IaC) é essencial para a Integração Contínua (CI),</p><p>POIS</p><p>II. a IaC facilita a replicação de ambientes e assegura consistência e eficiência na entrega de software.</p><p>Assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>A asserção I é verdadeira, pois a automação de infraestrutura (IaC) é de fato essencial para a Integração Contínua (CI). IaC permite que a infraestrutura seja tratada como código, o que significa que as configurações e o gerenciamento de infraestrutura podem ser versionados, testados e implantados da mesma forma que o código-fonte do software. Isso é fundamental para CI, pois permite que mudanças na infraestrutura sejam implementadas de forma rápida, consistente e repetível, promovendo uma entrega de software mais ágil e confiável.</p><p>A asserção II é verdadeira, pois a IaC realmente facilita a replicação de ambientes e assegura consistência e eficiência na entrega de software. Com scripts que definem a infraestrutura, é possível criar ambientes de desenvolvimento, teste e produção que são idênticos entre si, evitando problemas de inconsistência e erros manuais. Isso também torna o processo mais eficiente, pois automatiza a criação e configuração de ambientes.</p><p>A segunda asserção (II) justifica corretamente a primeira asserção (I). A capacidade da IaC de facilitar a replicação de ambientes e assegurar consistência e eficiência é um dos principais motivos pelos quais IaC é essencial para CI. Sem IaC, seria muito mais difícil garantir que as diferentes etapas do pipeline de CI (desenvolvimento, teste, implantação) estejam executando em ambientes idênticos, o que é crucial para detectar e corrigir problemas de forma rápida e eficiente.</p><p>18) A Integração Contínua (CI) tem evoluído para incluir o uso de contêineres e orquestração como práticas essenciais no desenvolvimento e implantação de software. Ferramentas de orquestração, como Kubernetes, gerenciam automaticamente a implantação, escalabilidade e operação de contêineres, facilitando a manutenção de aplicações complexas. A integração de contêineres e orquestração com CI melhora a eficiência, a portabilidade e a escalabilidade do software, permitindo entregas mais rápidas e confiáveis.</p><p>Nesse sentido, assinale a alternativa que melhor explica a importância dos contêineres e da orquestração na Integração Contínua.</p><p>a) Permitem que aplicações sejam implantadas manualmente em servidores físicos.</p><p>b) Garantem a execução consistente de aplicações em qualquer ambiente.</p><p>c) Eliminam a necessidade de dependências e bibliotecas específicas para cada aplicação.</p><p>d) Limitam a escalabilidade das aplicações, reduzindo a eficiência operacional.</p><p>e) Substituem a necessidade de Integração Contínua no desenvolvimento de software.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os contêineres garantem a execução consistente de aplicações em qualquer ambiente e a orquestração facilita a gestão automática de contêineres. Essa combinação é crucial para a Integração Contínua, melhorando a eficiência, a portabilidade e a escalabilidade do software, permitindo entregas mais rápidas e confiáveis.</p><p>19) A ferramenta Jenkins é amplamente utilizada no contexto da Integração Contínua (CI). Jenkins é uma plataforma open-source que permite a integração de várias ferramentas de desenvolvimento, facilitando a criação de pipelines automatizados. Com sua arquitetura extensível baseada em plugins, Jenkins pode ser personalizado para atender às necessidades específicas de qualquer projeto.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do Jenkins na Integração Contínua.</p><p>a) Executar builds manualmente em intervalos regulares, sem integração com outras ferramentas.</p><p>b) Eliminar a necessidade de testes automatizados, focando apenas na compilação do código.</p><p>c) Garantir que a configuração da infraestrutura seja feita manualmente pelos desenvolvedores.</p><p>d) Automatizar a construção, teste e implantação de software em resposta a cada commit de código.</p><p>e) Substituir a necessidade de colaboração entre desenvolvedores e operações no processo de desenvolvimento.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o Jenkins automatiza a construção, teste e implantação de software em resposta a cada commit de código. Isso permite a detecção rápida de problemas e garante a qualidade contínua do software, promovendo uma colaboração eficiente entre desenvolvedores e operações.</p><p>20) Travis CI é uma ferramenta de Integração Contínua que se integra perfeitamente com repositórios distribuídos. Travis CI oferece suporte a uma ampla gama de linguagens de programação e pode ser configurado para executar scripts personalizados, facilitando a personalização do pipeline de integração contínua. Sua facilidade de uso e integração direta com repositórios distribuídos tornam o Travis CI uma escolha popular para muitos projetos de software, ajudando a manter a qualidade do código e a acelerar o ciclo de desenvolvimento.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do Travis CI na Integração Contínua.</p><p>a) Automatizar builds e testes em resposta a commits no GitHub, garantindo verificação contínua do código.</p><p>b) Permitir a execução manual de testes e builds sem integração com repositórios de código.</p><p>c) Eliminar a necessidade de configuração de scripts personalizados para pipelines de integração.</p><p>d) Garantir que a ferramenta só suporte uma única linguagem de programação.</p><p>e) Substituir a necessidade de repositórios de código, gerenciando o código internamente.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois Travis CI automatiza builds e testes em resposta a commits no GitHub, garantindo verificação contínua do código. Isso ajuda a manter a qualidade do código e a acelerar o ciclo de desenvolvimento, proporcionando uma integração eficiente e contínua com repositórios de código.</p><p>21) GitLab CI/CD é uma ferramenta de Integração e Entrega Contínua que faz parte da plataforma GitLab, amplamente utilizada para a gestão de repositórios de código e colaboração em projetos de software. A ferramenta proporciona uma solução completa e flexível para o desenvolvimento ágil e DevOps, além disso, GitLab CI/CD oferece</p><p>uma visibilidade clara do status dos pipelines, ajudando as equipes a monitorar e resolver problemas rapidamente.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do GitLab CI/CD na Integração Contínua.</p><p>a) Executar builds e testes manualmente sem integração com repositórios GitLab.</p><p>b) Automatizar builds, testes e deploys, integrando-se diretamente com os repositórios GitLab.</p><p>c) Eliminar a necessidade de configuração de pipelines, gerenciando tudo automaticamente.</p><p>d) Suportar apenas uma linguagem de programação para automação de pipelines.</p><p>e) Substituir a necessidade de colaboração em projetos de software, gerenciando código de forma isolada.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois GitLab CI/CD automatiza builds, testes e deploys, integrando-se diretamente com os repositórios GitLab. Isso permite uma gestão eficiente do ciclo de vida do software, proporcionando visibilidade clara do status dos pipelines e ajudando as equipes a monitorar e resolver problemas rapidamente.</p><p>22) CircleCI é uma ferramenta de Integração Contínua (CI) e Entrega Contínua (CD) que oferece uma interface amigável e uma ampla variedade de opções de configuração, tornando-o flexível para paralelizar builds e testes, além de ajudar a acelerar o ciclo de desenvolvimento, garantindo que o software seja entregue de maneira rápida e confiável. Além disso, CircleCI proporciona visibilidade e insights sobre o desempenho dos pipelines, permitindo que as equipes identifiquem e resolvam problemas rapidamente.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do CircleCI na Integração Contínua.</p><p>a) Executar builds e testes manualmente, sem integração com repositórios Git.</p><p>b) Automatizar builds, testes e deploys, integrando-se com repositórios GitHub e Bitbucket.</p><p>c) Eliminar a necessidade de configuração de pipelines, gerenciando tudo automaticamente.</p><p>d) Suportar apenas um tipo específico de projeto para automação de pipelines.</p><p>e) Substituir a necessidade de revisão de código, executando apenas testes automatizados.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois CircleCI automatiza builds, testes e deploys, integrando-se com repositórios GitHub e Bitbucket. Isso permite uma configuração eficiente de pipelines, garantindo que cada alteração no código seja verificada e validada automaticamente, acelerando o ciclo de desenvolvimento e garantindo a entrega rápida e confiável do software.</p><p>23) A automação de build é uma parte crucial da Integração Contínua (CI), e o Maven é uma das ferramentas mais populares para gerenciar e automatizar o processo de build de projetos Java. A integração do Maven com CI permite que cada commit de código seja automaticamente construído e testado, garantindo que o software esteja sempre em um estado de prontidão para a implantação.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do Maven na automação de build dentro da Integração Contínua.</p><p>a) Compilar código manualmente sem gerenciar dependências.</p><p>b) Automatizar o build, gerenciar dependências e configurar o ciclo de vida do build.</p><p>c) Eliminar a necessidade de um arquivo de configuração para o build.</p><p>d) Suportar apenas a execução de testes manuais durante o build.</p><p>e) Substituir a necessidade de Integração Contínua, focando apenas na compilação do código.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o Maven automatiza o build, gerencia dependências e configura o ciclo de vida do build. Essas funcionalidades são essenciais para a Integração Contínua, permitindo que cada commit de código seja automaticamente construído e testado, garantindo a prontidão contínua do software para a implantação.</p><p>24) No contexto da Integração Contínua (CI), a automação de build é fundamental para garantir que o software seja continuamente testado e preparado para a implantação. Gradle é uma poderosa ferramenta de automação de build que oferece flexibilidade e desempenho na construção de projetos. Sua integração com CI possibilita a execução automática de builds e testes a cada commit, assegurando a qualidade e a prontidão do software.</p><p>Nesse sentido, assinale a alternativa que melhor descreve uma das principais funcionalidades do Gradle na automação de build dentro da Integração Contínua.</p><p>a) Compilar código manualmente sem gerenciar dependências.</p><p>b) Automatizar o build, gerenciar dependências e configurar tarefas personalizadas.</p><p>c) Eliminar a necessidade de um arquivo de configuração para o build.</p><p>d) Suportar apenas a execução de testes manuais durante o build.</p><p>e) Substituir a necessidade de Integração Contínua, focando apenas na compilação do código.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o Gradle automatiza o build, gerencia dependências e configura tarefas personalizadas. Essas funcionalidades são essenciais para a Integração Contínua, permitindo que cada commit de código seja automaticamente construído e testado, garantindo a qualidade e a prontidão contínua do software para a implantação.</p><p>25) No processo de Integração Contínua (CI), os testes unitários desempenham um papel crucial na garantia da qualidade do software. A execução de testes unitários a cada commit permite detectar e corrigir erros rapidamente, antes que possam causar problemas maiores no sistema. Isso não só melhora a qualidade do código, mas também aumenta a confiança dos desenvolvedores em suas mudanças. A prática de escrever e manter testes unitários é fundamental para um ciclo de desenvolvimento ágil e eficaz.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância dos testes unitários na Integração Contínua.</p><p>a) Permitem que grandes partes do sistema sejam testadas manualmente.</p><p>b) Eliminam a necessidade de testes automatizados em outros níveis do sistema.</p><p>c) Asseguram que pequenas unidades de código funcionem corretamente, facilitando a detecção de erros.</p><p>d) Substituem a revisão de código, garantindo que todos os bugs sejam encontrados automaticamente.</p><p>e) Reduzem o tempo de desenvolvimento ao permitir que os testes sejam executados apenas em produção.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os testes unitários asseguram que pequenas unidades de código funcionem corretamente, facilitando a detecção de erros. Isso é essencial para a Integração Contínua, permitindo a identificação e correção rápida de problemas, melhorando a qualidade do código e a eficiência do desenvolvimento.</p><p>26) Os testes de integração são uma parte essencial do processo de Integração Contínua (CI), garantindo que diferentes módulos ou serviços de um sistema funcionem juntos conforme esperado. Essa prática ajuda a assegurar que o sistema completo opere de maneira coesa e eficiente, contribuindo para a estabilidade e a qualidade do software.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância dos testes de integração na Integração Contínua.</p><p>a) Validam apenas a funcionalidade individual de métodos isolados.</p><p>b) Asseguram que diferentes módulos ou serviços funcionem juntos conforme esperado.</p><p>c) Eliminam a necessidade de testes unitários, pois cobrem todas as funcionalidades.</p><p>d) Substituem a necessidade de revisão de código manual, automatizando todas as verificações.</p><p>e) São executados apenas no ambiente de produção para validar a integração final.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os testes de integração asseguram que diferentes módulos ou serviços funcionem juntos conforme esperado. Isso é fundamental na Integração Contínua, permitindo a detecção precoce de problemas de compatibilidade e integração, contribuindo para a estabilidade e a qualidade do sistema como um todo.</p><p>27) No desenvolvimento de software, os testes de integração são uma prática fundamental na Integração Contínua (CI), uma vez que permite a detecção precoce de problemas de compatibilidade, ajudando a manter a estabilidade e a confiabilidade</p><p>do sistema. Essa abordagem contribui para a entrega de software de alta qualidade, reduzindo o risco de falhas no ambiente de produção.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância dos testes de integração na Integração Contínua.</p><p>a) Validam a interação correta entre diferentes módulos ou componentes do sistema.</p><p>b) Eliminam a necessidade de testes unitários, focando apenas na integração.</p><p>c) São realizados manualmente, sem automação, para garantir precisão.</p><p>d) Substituem os testes de aceitação, verificando a conformidade com os requisitos do usuário.</p><p>e) São executados somente após a implantação em produção para garantir a funcionalidade.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os testes de integração validam a interação correta entre diferentes módulos ou componentes do sistema. Essa prática é essencial na Integração Contínua, permitindo a detecção precoce de problemas de compatibilidade e garantindo a estabilidade e a confiabilidade do sistema.</p><p>28) A automação de implantação é um componente essencial da Integração Contínua (CI) e Entrega Contínua (CD), uma vez que envolve a automação das etapas necessárias para implantar uma aplicação em um ambiente de teste, homologação ou produção. Além disso, promove a colaboração entre as equipes de desenvolvimento e operações.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A automação de implantação garante que todas as etapas de implantação sejam executadas de forma consistente e repetível,</p><p>POIS</p><p>II. a automação de implantação garante uma entrega mais rápida e confiável do software.</p><p>A seguir, assinale a alternativa correta:</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVA</p><p>A afirmação I é verdadeira, pois a automação de implantação é projetada para automatizar o processo de implantação de software, eliminando a variabilidade e o erro humano associados às implantações manuais. Isso garante que todas as etapas de implantação sejam executadas da mesma maneira em todas as execuções, resultando em consistência e repetibilidade.</p><p>A afirmação II é verdadeira, pois a automação de implantação acelera o processo de entrega ao reduzir o tempo necessário para implantar novas versões do software e ao minimizar a ocorrência de erros humanos. Isso resulta em uma entrega mais rápida e confiável do software.</p><p>Todavia, a asserção I não é uma justificativa direta da asserção II, embora ambas as afirmativas sejam verdadeiras e estejam relacionadas.</p><p>A consistência e repetibilidade na implantação (I) contribuem para uma entrega mais confiável (II), mas a entrega mais rápida e confiável (II) também resulta de outros fatores, como a eliminação de etapas manuais demoradas e a detecção precoce de problemas. Portanto, enquanto há uma conexão entre as duas afirmações, a primeira não é uma justificativa completa da segunda.</p><p>29) No contexto da Integração Contínua (CI) e da Entrega Contínua (CD), o uso de scripts de implantação é uma prática comum e essencial, pois automatizam o processo de implantação de aplicações em diversos ambientes, como desenvolvimento, teste, homologação e produção. Além disso, os scripts de implantação podem incluir validações e verificações pós-implantação para assegurar que a aplicação esteja funcionando corretamente após a implantação.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância dos scripts de implantação na Integração Contínua.</p><p>a) Permitem que a implantação seja feita manualmente para maior controle.</p><p>b) Eliminam a necessidade de qualquer tipo de teste após a implantação.</p><p>c) Substituem completamente a necessidade de ambientes de teste e homologação.</p><p>d) Garantem que as etapas de implantação sejam executadas de forma consistente.</p><p>e) Aumentam a complexidade da implantação ao adicionar etapas manuais.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois os scripts de implantação garantem que as etapas de implantação sejam executadas de forma consistente e repetível. Isso minimiza a intervenção manual, reduz a possibilidade de erros humanos e assegura que a aplicação seja implantada de maneira confiável em diferentes ambientes.</p><p>30) No desenvolvimento de software, o pipeline de CI/CD é uma prática essencial para garantir a entrega contínua de alta qualidade. Ao configurar um pipeline, os desenvolvedores definem uma série de estágios que o código deve passar antes de ser considerado pronto para produção. Isso inclui a compilação, execução de testes unitários e de integração, além da implantação em ambientes de teste e produção.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância de um pipeline de CI/CD na Integração Contínua.</p><p>a) Permite que o código seja implantado manualmente para maior controle.</p><p>b) Garante a automação das etapas de build, teste e implantação, integrando mudanças rapidamente.</p><p>c) Elimina a necessidade de testes unitários e de integração, focando apenas na implantação.</p><p>d) Substitui completamente a necessidade de ambientes de desenvolvimento e teste.</p><p>e) Aumenta a intervenção manual necessária para cada estágio do desenvolvimento.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o pipeline de CI/CD garante a automação das etapas de build, teste e implantação, integrando mudanças rapidamente. Isso permite detectar e corrigir problemas precocemente, melhorando a eficiência e a confiabilidade do processo de desenvolvimento, garantindo a entrega contínua de software de alta qualidade.</p><p>31) No desenvolvimento de software, o controle de versão é uma prática fundamental. Ferramentas de controle de versão, como Git, Subversion e Mercurial, ajudam as equipes de desenvolvimento a gerenciar as modificações e reverter para versões anteriores em caso de problemas. Isso melhora a qualidade do software e facilita a colaboração entre os desenvolvedores.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. O controle de versão garante a flexibilidade das alterações no código,</p><p>POIS</p><p>II. permite que as alterações no código sejam feitas sem registro, promovendo a rastreabilidade.</p><p>A seguir, assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>A afirmação I é verdadeira, pois o controle de versão permite que os desenvolvedores façam alterações de forma flexível, criando e mesclando branches, e experimentando novas funcionalidades sem impactar o código principal.</p><p>A afirmação II é falsa, pois o controle de versão registra todas as alterações feitas no código, o que é crucial para a rastreabilidade. Sem registro das alterações, não haveria como rastrear quem fez o quê e quando, o que é um aspecto fundamental do controle de versão.</p><p>32) A configuração de um pipeline CI/CD é uma parte crítica do processo de Integração Contínua (CI) e Entrega Contínua (CD), pois uma configuração eficaz do pipeline CI/CD assegura a qualidade e a prontidão do software para a entrega, reduzindo o tempo e os erros associados ao processo manual.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância da configuração de um pipeline CI/CD na Integração Contínua.</p><p>a) Garante a automação das etapas de build, teste e implantação, assegurando que cada mudança no código seja validada automaticamente.</p><p>b) Permite que todas as etapas do processo sejam realizadas</p><p>manualmente para maior controle.</p><p>c) Elimina a necessidade de testes automatizados, focando apenas na implantação manual.</p><p>d) Substitui a necessidade de ambientes de desenvolvimento e teste, implantando diretamente na produção.</p><p>e) Aumenta o tempo necessário para a entrega do software devido à complexidade das configurações.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a configuração de um pipeline CI/CD garante a automação das etapas de build, teste e implantação, assegurando que cada mudança no código seja validada automaticamente. Isso melhora a qualidade e a prontidão do software para a entrega, reduzindo o tempo e os erros associados ao processo manual.</p><p>33) A automação é um elemento central na prática da Integração Contínua (CI), trazendo inúmeros benefícios para o desenvolvimento de software. Ao automatizar processos como compilação, teste e implantação, a CI permite que as equipes de desenvolvimento integrem mudanças de código de forma rápida e eficiente. Além disso, a automação facilita a repetição consistente de processos, assegurando que cada etapa do desenvolvimento seja realizada de maneira uniforme e confiável.</p><p>Nesse sentido, assinale a alternativa que melhor descreve um dos principais benefícios da automação na Integração Contínua.</p><p>a) Permite que todos os processos sejam realizados manualmente para maior controle.</p><p>b) Acelera o ciclo de desenvolvimento e melhora a qualidade do software ao reduzir erros humanos.</p><p>c) Elimina a necessidade de qualquer tipo de teste, focando apenas na implantação.</p><p>d) Substitui completamente a necessidade de colaboração entre os membros da equipe.</p><p>e) Aumenta a complexidade do processo de desenvolvimento, tornando-o mais suscetível a erros.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois a automação na Integração Contínua acelera o ciclo de desenvolvimento e melhora a qualidade do software ao reduzir erros humanos. Isso permite a detecção precoce de problemas e assegura que cada etapa do desenvolvimento seja realizada de maneira uniforme e confiável.</p><p>34) No processo de Integração Contínua (CI), o checkout do repositório de código é uma etapa crucial. O checkout refere-se ao processo de obter uma cópia específica do código-fonte a partir de um sistema de controle de versão, como Git, para uma máquina de build. Isso permite que todas as mudanças feitas no repositório sejam automaticamente compiladas, testadas e implantadas.</p><p>Nesse sentido, assinale a alternativa que melhor descreve a importância do checkout do repositório na Integração Contínua.</p><p>a) Permite que o código seja obtido manualmente para cada build.</p><p>b) Garante que a versão mais recente do código esteja disponível para compilação e teste automáticos.</p><p>c) Elimina a necessidade de um sistema de controle de versão no processo de CI.</p><p>d) Substitui a necessidade de executar testes automatizados após o build.</p><p>e) Aumenta a complexidade do processo de CI ao exigir mais etapas manuais.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A alternativa está correta, pois o checkout do repositório garante que a versão mais recente do código esteja disponível para compilação e teste automáticos. Isso é essencial para a Integração Contínua, assegurando que todas as mudanças feitas no repositório sejam corretamente integradas, testadas e implantadas, evitando problemas de integração e garantindo a relevância e precisão dos testes e builds.</p><p>35) No ambiente de desenvolvimento ágil, a prática da Integração Contínua (CI) exige que o código seja mantido em um estado constantemente funcional e de alta qualidade. Um dos elementos chave para atingir essa meta é a legibilidade do código, que impacta diretamente na capacidade de equipes múltiplas trabalharem de forma colaborativa e eficiente.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A legibilidade do código facilita a compreensão, manutenção e modificação do código por diferentes membros da equipe,</p><p>POIS</p><p>II. um código legível contribui para a eficiência e a qualidade do desenvolvimento de software, facilitando a detecção de erros e a implementação de novas funcionalidades.</p><p>A seguir, assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I é verdadeira, pois um código legível é mais fácil de entender, o que facilita a manutenção e modificação por qualquer membro da equipe, não apenas pelo autor original do código.</p><p>A afirmativa II é verdadeira, pois a legibilidade do código melhora a eficiência, pois facilita a identificação de erros e a implementação de novas funcionalidades, levando a um desenvolvimento de software de maior qualidade.</p><p>A afirmativa II justifica a afirmativa I, pois a contribuição de um código legível para a eficiência e qualidade do desenvolvimento de software é uma razão pela qual ele facilita a compreensão, manutenção e modificação do código por diferentes membros da equipe.</p><p>OBJETIVA DE RESPOSTA MÚLTIPLA</p><p>36) A qualidade do código é um aspecto fundamental no desenvolvimento de software, especialmente em ambientes de Integração Contínua (CI). Três pilares importantes para garantir a qualidade do código são a legibilidade, a modularidade e a aderência a padrões, cada um destes pilares possuem suas características e fundamentações.</p><p>Considerando o excerto apresentado acima referente à qualidade do código em Integração Contínua, analise as afirmativas a seguir.</p><p>I. A legibilidade do código melhora a colaboração entre os membros da equipe de desenvolvimento.</p><p>II. A modularidade do código dificulta a reutilização de componentes em diferentes partes do projeto.</p><p>III. A aderência a padrões de codificação ajuda a manter a consistência e a previsibilidade do código.</p><p>IV. A legibilidade do código elimina a necessidade de documentar o código e suas funcionalidades.</p><p>Está correto o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) II e III, apenas.</p><p>c) I, II, III e IV.</p><p>d) I, II e III, apenas.</p><p>e) I e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois a legibilidade do código melhora a colaboração entre os membros da equipe de desenvolvimento, facilitando a compreensão e a manutenção do código por diferentes desenvolvedores.</p><p>A afirmativa II está incorreta, pois a modularidade do código facilita a reutilização de componentes em diferentes partes do projeto, permitindo uma gestão mais eficaz e flexível.</p><p>A afirmativa III está correta, pois a aderência a padrões de codificação ajuda a manter a consistência e a previsibilidade do código, garantindo que ele siga convenções e melhores práticas reconhecidas.</p><p>A afirmativa IV está incorreta, pois a legibilidade do código não elimina a necessidade de documentar o código e suas funcionalidades, sendo a documentação ainda essencial para um entendimento completo e detalhado do sistema.</p><p>37) A Integração Contínua (CI) é uma prática essencial no desenvolvimento de software moderno, e as análises estáticas desempenham um papel importante nesse processo. As análises estáticas envolvem a revisão automática do código-fonte sem executá-lo, utilizando ferramentas que identificam possíveis erros.</p><p>Considerando o excerto apresentado acima referente às análises estáticas no desenvolvimento de código, analise as afirmativas a seguir.</p><p>I. As análises estáticas ajudam a identificar erros no código antes mesmo de sua execução.</p><p>II. As ferramentas de análise estática podem detectar vulnerabilidades de segurança no código.</p><p>III. A utilização de análises estáticas elimina a necessidade de testes dinâmicos no desenvolvimento.</p><p>IV. A integração de ferramentas de análise estática no pipeline de CI aumenta o tempo de entrega do software, sem benefícios significativos.</p><p>Está correto o que se afirma</p><p>em:</p><p>a) I e II, apenas.</p><p>b) I e III, apenas.</p><p>c) II e III, apenas.</p><p>d) I, II, III e IV.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois as análises estáticas ajudam a identificar erros no código antes mesmo de sua execução, permitindo a detecção precoce de problemas.</p><p>A afirmativa II está correta, pois as ferramentas de análise estática podem detectar vulnerabilidades de segurança no código, contribuindo para a segurança do software.</p><p>A afirmativa III está incorreta, pois a utilização de análises estáticas não elimina a necessidade de testes dinâmicos no desenvolvimento, sendo ambos complementares na garantia da qualidade do software.</p><p>A afirmativa IV está incorreta, pois a integração de ferramentas de análise estática no pipeline de CI não apenas melhora a qualidade do código, mas também pode acelerar a entrega ao reduzir o retrabalho e a correção de erros posteriormente no ciclo de desenvolvimento.</p><p>38) Durante a revisão de código no processo de Integração Contínua (CI), os revisores focam em vários aspectos para garantir a qualidade e a manutenção do software. Essa prática não só ajuda a detectar problemas precocemente, mas também promove a disseminação de conhecimento.</p><p>Considerando o excerto apresentado acima referente à revisão de código no desenvolvimento de software, analise as afirmativas a seguir.</p><p>I. Durante a revisão de código, os revisores não devem focar na legibilidade do código, apenas na funcionalidade.</p><p>II. A revisão de código ajuda a identificar e corrigir erros antes que o código seja integrado ao repositório principal.</p><p>III. A revisão de código assegura a conformidade com padrões de codificação estabelecidos pela equipe.</p><p>IV. A revisão de código elimina a necessidade de testes automatizados no pipeline de CI.</p><p>Está correto o que se afirma em:</p><p>b) I e II, apenas.</p><p>c) II e IV, apenas.</p><p>a) II e III, apenas.</p><p>d) I, II, III e IV.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está incorreta, pois durante a revisão de código, os revisores devem sim focar na legibilidade do código, além da funcionalidade, para assegurar que o código seja fácil de entender e manter.</p><p>A afirmativa II está correta, pois a revisão de código ajuda a identificar e corrigir erros antes que o código seja integrado ao repositório principal, garantindo a qualidade do software.</p><p>A afirmativa III está correta, pois a revisão de código assegura a conformidade com padrões de codificação estabelecidos pela equipe, promovendo a consistência e a qualidade do código.</p><p>A afirmativa IV está incorreta, pois a revisão de código não elimina a necessidade de testes automatizados no pipeline de CI. Ambos são complementares e essenciais para garantir a qualidade e a funcionalidade do software.</p><p>39) No processo de Integração Contínua (CI), a revisão de código é uma prática essencial para garantir a qualidade do software. Ferramentas como GitHub, GitLab, Bitbucket e Gerrit facilitam a revisão de código, permitindo que os desenvolvedores colaborem de maneira mais eficaz.</p><p>Considerando o excerto apresentado acima referente às ferramentas que facilitam a revisão de código, analise as afirmativas a seguir.</p><p>I. A utilização de ferramentas de revisão de código elimina a necessidade de testes automatizados no pipeline de CI.</p><p>II. Ferramentas de revisão de código substituem completamente a necessidade de colaboração entre os membros da equipe.</p><p>III. Ferramentas como GitHub, GitLab e Bitbucket permitem comentários em linha e sugestões de mudanças durante a revisão de código.</p><p>IV. A integração de ferramentas de revisão de código no pipeline de CI melhora a eficiência e a qualidade do desenvolvimento.</p><p>Está correto o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) II e IV, apenas.</p><p>c) III e IV, apenas.</p><p>d) I, II, III e IV.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está incorreta, pois a utilização de ferramentas de revisão de código não elimina a necessidade de testes automatizados no pipeline de CI. Ambas as práticas são complementares.</p><p>A afirmativa II está incorreta, pois ferramentas de revisão de código não substituem completamente a necessidade de colaboração entre os membros da equipe. A colaboração ainda é crucial para o sucesso do desenvolvimento de software.</p><p>A afirmativa III está correta, pois ferramentas como GitHub, GitLab e Bitbucket permitem comentários em linha e sugestões de mudanças durante a revisão de código, facilitando a colaboração.</p><p>A afirmativa IV está correta, pois a integração de ferramentas de revisão de código no pipeline de CI melhora a eficiência e a qualidade do desenvolvimento, garantindo que o código seja revisado e validado automaticamente.</p><p>40) No contexto da Integração Contínua (CI), a orquestração de containers é uma prática essencial para gerenciar e implantar aplicações de maneira eficiente e escalável. Ferramentas como Kubernetes e Docker Swarm garantem que os containers sejam distribuídos de maneira otimizada entre os recursos disponíveis.</p><p>Considerando o excerto apresentado acima referente à orquestração de containers na Integração Contínua, analise as afirmativas a seguir.</p><p>I. Ferramentas como Kubernetes e Docker Swarm automatizam a implantação, o dimensionamento e a operação de containers.</p><p>II. A orquestração de containers elimina a necessidade de recursos de alta disponibilidade e resiliência.</p><p>III. A integração de ferramentas de orquestração de containers no pipeline de CI/CD melhora a consistência e a confiabilidade das implantações.</p><p>IV. A orquestração de containers facilita a gestão de atualizações e rollback, assegurando que as aplicações possam ser atualizadas sem interrupções significativas.</p><p>Está correto o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) II e IV, apenas.</p><p>c) I, II, III e IV.</p><p>d) I, III e IV, apenas.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois ferramentas como Kubernetes e Docker Swarm automatizam a implantação, o dimensionamento e a operação de containers, facilitando a gestão de aplicações em escala.</p><p>A afirmativa II está incorreta, pois a orquestração de containers, na verdade, promove a alta disponibilidade e resiliência dos recursos ao gerenciar automaticamente a distribuição e operação dos containers.</p><p>A afirmativa III está correta, pois a integração de ferramentas de orquestração de containers no pipeline de CI/CD melhora a consistência e a confiabilidade das implantações, garantindo que o processo seja repetível e eficiente.</p><p>A afirmativa IV está correta, pois a orquestração de containers facilita a gestão de atualizações e rollback, assegurando que as aplicações possam ser atualizadas sem interrupções significativas, o que é crucial para a continuidade do serviço.</p><p>41) O Kubernetes é uma plataforma de orquestração de containers amplamente utilizada para automatizar a implantação, o dimensionamento e a operação de aplicações em containers. Ele é composto por vários componentes essenciais que trabalham juntos para gerenciar clusters de containers de maneira eficiente.</p><p>Considerando o excerto apresentado acima referente aos principais componentes do Kubernetes, analise as afirmativas a seguir.</p><p>I. O kube-apiserver é responsável por servir como a principal interface de gerenciamento do cluster Kubernetes.</p><p>II. O etcd é utilizado para armazenar logs de eventos de cada container dentro do cluster.</p><p>III. O kube-scheduler atribui containers aos nós de trabalho disponíveis no cluster.</p><p>IV. O kubelet roda em cada nó de trabalho e garante que os containers estejam rodando conforme esperado.</p><p>Está correto o que se afirma em:</p><p>a) I, III e IV, apenas.</p><p>b) I e II, apenas.</p><p>c) II e IV, apenas.</p><p>d) I, II, III e IV.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois o kube-apiserver é responsável por servir como a principal interface de gerenciamento do cluster Kubernetes, facilitando a comunicação entre os componentes do cluster.</p><p>A afirmativa II está incorreta, pois o etcd não é utilizado para armazenar logs de eventos de cada container, mas sim para armazenar dados de configuração do cluster de forma</p><p>distribuída.</p><p>A afirmativa III está correta, pois o kube-scheduler é responsável por atribuir containers aos nós de trabalho disponíveis no cluster, garantindo a distribuição eficiente das cargas de trabalho.</p><p>A afirmativa IV está correta, pois o kubelet roda em cada nó de trabalho e garante que os containers estejam rodando conforme esperado, monitorando o estado dos containers e reportando ao kube-apiserver.</p><p>42) A Integração Contínua (CI) é uma prática fundamental na cultura DevOps, que visa a união das equipes de desenvolvimento e operações para melhorar a colaboração e a eficiência, além de ser uma abordagem que busca automatizar e integrar os processos entre desenvolvimento de software e operações de TI.</p><p>Considerando o excerto apresentado acima referente à Integração Contínua como parte de uma cultura DevOps, analise as afirmativas a seguir.</p><p>I. A Integração Contínua automatiza a integração de código e a execução de builds e testes automáticos.</p><p>II. A cultura DevOps elimina a necessidade de colaboração entre as equipes de desenvolvimento e operações.</p><p>III. A adoção de CI em DevOps promove a detecção precoce de erros e facilita a correção rápida.</p><p>IV. DevOps é uma abordagem que busca separar claramente os processos de desenvolvimento e operações para evitar conflitos.</p><p>Está correto o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) II e IV, apenas.</p><p>c) I, II, III e IV.</p><p>d) I, II e III, apenas.</p><p>e) I e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois a Integração Contínua automatiza a integração de código e a execução de builds e testes automáticos, essencial para um ciclo de desenvolvimento eficiente.</p><p>A afirmativa II está incorreta, pois a cultura DevOps promove a colaboração estreita entre as equipes de desenvolvimento e operações, ao invés de eliminá-la.</p><p>A afirmativa III está correta, pois a adoção de CI em DevOps promove a detecção precoce de erros e facilita a correção rápida, contribuindo para um desenvolvimento mais ágil e confiável.</p><p>A afirmativa IV está incorreta, pois DevOps busca integrar os processos de desenvolvimento e operações para melhorar a colaboração e eficiência, e não para separá-los.</p><p>43) A Integração Contínua (CI) é uma prática de desenvolvimento de software que envolve a integração frequente de código em um repositório compartilhado, onde builds e testes automáticos são realizados. Essencialmente, a CI possui pilares que são essenciais para melhorar a qualidade do software, aumentar a eficiência do desenvolvimento e reduzir o tempo de entrega.</p><p>Considerando o excerto apresentado acima referente aos pilares da Integração Contínua, analise as afirmativas a seguir.</p><p>I. A automação de builds e testes é um pilar fundamental da Integração Contínua.</p><p>II. A detecção precoce de erros é um benefício, mas não é considerado um pilar da Integração Contínua.</p><p>III. A colaboração contínua é uma prática necessária na Integração Contínua, apesar de não ser considerada um de seus pilares fundamentais.</p><p>IV. Manter um repositório de código limpo é essencial para a prática da Integração Contínua.</p><p>Está correto o que se afirma em:</p><p>a) I e II, apenas.</p><p>b) II e IV, apenas.</p><p>c) I, II, III e IV.</p><p>d) I e IV, apenas.</p><p>e) I, II e III, apenas.</p><p>JUSTIFICATIVAS</p><p>A afirmativa I está correta, pois a automação de builds e testes é um pilar fundamental da Integração Contínua, garantindo que cada commit seja verificado automaticamente.</p><p>A afirmativa II está incorreta, pois a detecção precoce de erros é considerada um pilar importante da Integração Contínua, permitindo a correção rápida e eficiente de problemas.</p><p>A afirmativa III está incorreta, pois a colaboração contínua entre desenvolvedores é crucial na Integração Contínua, promovendo a integração frequente de código e a melhoria contínua do software.</p><p>A afirmativa IV está correta, pois manter um repositório de código limpo é essencial para a prática da Integração Contínua, garantindo que o código esteja sempre em um estado de prontidão para liberação.</p><p>ASSERÇÃO/RAZÃO</p><p>44) A Integração Contínua (CI) facilita a automação dos processos de build e teste, assegurando que cada alteração no código seja validada continuamente. Além disso, a integração das equipes permite que todos estejam alinhados com os objetivos do projeto, além de contribuir para um ambiente de trabalho mais coeso e produtivo.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A Integração Contínua promove uma colaboração mais eficaz entre as equipes de desenvolvimento, operações e QA,</p><p>POIS</p><p>II. a automação de builds e testes permite a identificação rápida de problemas e a validação contínua do código.</p><p>A seguir, assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A asserção I está certa, pois a Integração Contínua realmente promove uma colaboração mais eficaz entre as equipes de desenvolvimento, operações e QA, facilitando a integração e o alinhamento de objetivos.</p><p>A asserção II está certa, pois a automação de builds e testes permite a identificação rápida de problemas e a validação contínua do código, assegurando a qualidade do software.</p><p>Entretanto, a asserção II não é uma justificativa direta da asserção I, pois a colaboração mais eficaz é um resultado mais amplo da cultura DevOps e da implementação de práticas CI, e não apenas da automação em si.</p><p>45) No contexto da Integração Contínua (CI), a segurança e o compliance são aspectos críticos que devem ser integrados ao pipeline de desenvolvimento. Entretanto, implementar segurança e compliance de forma eficaz em um ambiente de CI pode apresentar desafios, como a necessidade de automatizar verificações de segurança e a gestão de políticas de compliance sem comprometer a agilidade do desenvolvimento.</p><p>A partir do apresentado, analise as asserções a seguir e a relação proposta entre elas.</p><p>I. A Integração Contínua melhora a segurança e o compliance do software,</p><p>POIS</p><p>II. as verificações automatizadas de segurança e compliance ajudam a identificar e corrigir vulnerabilidades e não conformidades mais cedo no ciclo de desenvolvimento.</p><p>A seguir, assinale a alternativa correta.</p><p>a) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.</p><p>b) A asserção I é uma proposição verdadeira e a II é uma proposição falsa.</p><p>c) As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa da I.</p><p>d) A asserção I é uma proposição falsa e a II é uma proposição verdadeira.</p><p>e) As asserções I e II são proposições falsas.</p><p>JUSTIFICATIVAS</p><p>Resposta correta. A asserção I está certa, pois a Integração Contínua realmente melhora a segurança e o compliance do software ao integrar práticas de verificação contínua no processo de desenvolvimento.</p><p>A asserção II está certa, pois as verificações automatizadas de segurança e compliance ajudam a identificar e corrigir vulnerabilidades e não conformidades mais cedo no ciclo de desenvolvimento, assegurando que o software esteja seguro e em conformidade com as normas.</p><p>A asserção II é uma justificativa direta da asserção I, pois a automação dessas verificações permite que a segurança e o compliance sejam mantidos de forma contínua e eficaz, melhorando a qualidade do software desde as primeiras fases do desenvolvimento.</p>