Buscar

Manutenção de Software e DevOps (Unidade 4)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Manutenção de Software e DevOps
Unidade 4
Deixe seu like!
Test-driven development
1. Para equipes que usam o método TDD, os aprimoramentos realizados na etapa de refatoração não são uma tarefa fácil, pois envolvem desde a padronização do código e a eliminação de redundância e de elementos não utilizados até o uso de algoritmos e estruturas de dados mais adequados, considerando recursos como tempo e memória. Nessa etapa, tudo é feito para garantir que o melhor código possível seja entregue.
Considere que o código abaixo, escrito em C++, deve realizar a ordenação de cinco valores inteiros em um vetor. Nesse momento, o incremento passou para o estado refatorar, pois o código já contém um teste (estado vermelho) e implementou um código que funciona (estado verde). Confira o código:
...
Com base no enunciado e em seus conhecimentos sobre TDD, analise o código e assinale a alternativa que contém a lista correta de ações a serem realizadas para refatorar o código.
B. Comentar o código, utilizar um algoritmo de ordenação mais eficiente e remover VetorAux.
2. Suponha que um desenvolvedor esteja trabalhando em uma equipe que utiliza o método TDD. Ele precisa desenvolver um teste para uma função (ainda não desenvolvida) que deve receber dois valores inteiros representando base e altura de um retângulo e identificar se eles formam um quadrado, ou seja, identificar se a base e a altura são iguais. Se forem iguais, deve retornar 1; se forem diferentes, deve retornar 0. A assinatura da função, elaborada em uma pseudolinguagem de programação, encontra-se abaixo:
inteiro ehQuadrado(inteiro base, inteiro altura)
O desejo do desenvolvedor é escolher dois dados de teste que estejam entre os dois tipos diferentes de retorno da função. 
Assinale a alternativa que contém um código que testará corretamente dois dados de teste que resultam em dois valores de retorno diferentes.
C. Confira a alternativa C.
3. Os objetos de simulação (mock objects) servem para imitar comportamentos de objetos reais que não estão disponíveis no momento. Sobre esses objetos, analise as alternativas e assinale a única que contém uma afirmativa correta.
C. Um exemplo correto de uso de mock em um sistema de segurança patrimonial seria a substituição de um componente de alarme sonoro por um simulador em led que acende.
4. Há diferentes métodos de desenvolvimento de software, cada um com suas características. Considerando um software que precisa de rápidas entregas, a serem realizadas em pequenas partes, assinale a alternativa que justifica corretamente se o TDD pode ser sugerido como método de desenvolvimento nesse caso.
E. Pode, pois o TDD é um método ágil e incremental, cumprindo os requisitos solicitados.
5. A história do TDD mostra que o método é inspirado em ações que datam do século XX e foram redescobertas por Kent Beck. Sobre a história do TDD, assinale a alternativa correta.
D. A prática de desenvolver testes antes do código já foi relatada com diferentes nomenclaturas, tais como casos de verificação, no século XX, e depois, com o advento do método XP, chamado de test-first (teste antes).
Gerenciamento de problemas
1. Gerenciar é planejar, executar atividades para facilitar um processo, evitando futuras falhas no software. O gerenciamento de problemas de software visa a planejar ações, tomar decisões, acompanhar o processo do software, testando-o para evitar erros que causem falhas. Entre os benefícios do gerenciamento de problemas está o aumento da qualidade no software.
Quais são as principais melhorias no software com a aplicação do gerenciamento de problemas?
A. Maior garantia de funcionamento do sistema como um todo, atendimento de requisitos, redução de erros e aumento de proatividade.
2. No gerenciamento de problemas de software,o testador de software pode executar testes de forma manual ou automatizada. A execução manual do teste é feita por meio de documentos chamados cenários, enquanto a execução automatizada é feita por meio de programas ou scripts, ferramentas que executam as funcionalidades do sistema. Considerando o contexto apresentado, quais dos dois tipos de testes é mais vantajoso? Quais são essas vantagens?
A. Os testes automatizados trazem uma maior vantagem. Isto se dá pelo fato de se testar mais de uma parte do código ao mesmo tempo. As ferramentas facilitam a alteração do código e vários testes podem ser feitos na versão compilada do software.
3. Na maioria das vezes as empresas resolvem os erros baseando-se no histórico de erros, resolvendo 80% deles no primeiro nível do processo de gerenciamento de problemas. Por que isso ocorre?
C. Porque por meio do processo desenvolvido no gerenciamento de erros é possível registrar todos os erros encontrados e as soluções de contorno para eles, evitando a reincidência.
4. Para evitar erros ou encontrá-los no software, podemos fazer uso do processo de gerenciamento de problemas, que foca na identificação dos problemas e na transformação deles em erros conhecidos, trazendo a solução. O que seria a solução de contorno dentro de um processo de gerenciamento?
B. Solução de contorno é uma solução que permite restabelecer o nível de serviço. O erro que causa a falha não é apontado, mas é criada uma solução provisória para a falha.
5. O gerenciamento de problemas passa por um processo do registro de todos os erros encontrados e as suas soluções de contorno. Esse possui etapas ou níveis de processos para a sua execução. Analisando os principais conceitos aplicados ao gerenciamento de problemas, qual deles cria uma solução que abrange o problema como um todo e o resolve definitivamente? Em qual etapa do processo de gerenciamento esse conceito é aplicado?
B. Os conceitos que abrangem o problema como um todo são a solução definitiva e a gestão de incidentes e problemas, que são aplicadas após a solução de contorno ser validada e aceita (etapa 6 do gerenciamento de problemas).
Gerenciamento de entregas
1. A seguinte afirmação: “Os dois ambientes precisam ser diferentes, mas tão idênticos quanto possível” se refere a qual das alternativas a seguir?
D. Blue-green deployment.
2. Na implantação contínua, cada nova alteração que é enviada ao repositório dá início de forma automática a um processo automatizado que realiza o envio de mudanças para o ambiente solicitado. Existem muitas vantagens em relação à implantação contínua. Assinale a alternativa que apresenta algumas dessas vantagens :
A. Visibilidade de produção de seus aplicativos e fornece feedback a cada alteração no sistema.
3. O código alterado e/ou desenvolvido no projeto principal é integrado na mesma frequência com que as funcionalidades são desenvolvidas. O objetivo principal de sua utilização é verificar se as alterações ou novas funcionalidades não criarão defeitos no projeto já existente.
Assinale a alternativa correspondente a essa afirmação:
E. Integração contínua.
4. Integração contínua é uma prática realizada no desenvolvimento de softwares para realizar uma junção dos códigos, alternando e inserindo-os em um repositório central. Quais são os benefícios na utilização de ferramentas automatizadas para a integração contínua?
B. Permitem que sejam configurados o sistema e o ambiente de desenvolvimento. Permitem a configuração do sistema de build automatizado, integram com o repositório de controle de versão e permitem o envio de e-mails de notificação.
5. A entrega contínua é um processo automático em que é iniciado de forma manual quando o desenvolvedor tem a intenção de enviar uma versão atual da aplicação. Dentre os benefícios da entrega contínua, estão:
C. Agilizar os processos, melhorar a performance da equipe, dar maior segurança e qualidade para as entregas e aumentar a satisfação dos clientes.
Introdução a DevOps
1. O termo DevOps foi apresentado como uma metodologia que surgiu a partir das ideias propostas pelo manifesto ágil. Sobre os objetivos associados à metodologia DevOps, leia as assertivas a seguir:
I - Ser transversal a todas as etapas de desenvolvimento de software.
II - Estar apto a administrarde forma eficiente alterações de requisitos em qualquer etapa do desenvolvimento de software.
III - Possibilitar o uso de ferramentas de automação no ciclo de desenvolvimento.
IV - Estabelecer ciclos de desenvolvimento de tamanho fixos.
V - Romper com a sequência tradicional de passos de desenvolvimento.
Quais estão corretas?
A. I e II.
2. Quando corretamente implementado, DevOps tende a agregar grandes benefícios às equipes de desenvolvimento e operações. Marque V para Verdadeiro e F para Falso nos itens que descrevem os benefícios esperados com a adoção da metodologia:
( ) Departamentos ou setores com responsabilidades mais especializadas.
( ) Mais eficiência na disponibilização de versões do produto para o usuário final.
( ) Equipes com mais autonomia para a definição dos requisitos dos sistemas.
( ) Padronização dos documentos de especificação de um software.
( ) Redução da alteração dos requisitos do sistema por parte do cliente.
Feito isso, assinale a alternativa que apresenta a sequência correta.
B. F - V - F - F - F.
3. O ciclo de vida DevOps é composto de várias fases ou estágios que definem o nível de maturidade de uma organização quanto ao uso da metodologia. Assinale a alternativa correta a respeito das fases DevOps.
C. No desenvolvimento contínuo, as alterações no código-fonte feitas por cada desenvolvedor são propagadas para cada versão local dos membros da equipe.
4. A variedade de ferramentas disponíveis para dar suporte à metodologia DevOps é muito extensa. Indique a opção que relaciona corretamente a ferramenta à sua função dentro do ciclo de vida DevOps.
D. SVN oferece comandos de envio e recuperação de código-fonte para fins de sincronização entre um repositório local e um central.
5. A integração contínua (IC) é uma das principais etapas ou fases do desenvolvimento baseado em DevOps.A respeito dessa etapa, assinale a alternativa que apresenta uma característica correta dela.
E. A implantação de IC depende da interoperabilidade de três elementos básicos: servidor de integração, versionador de código e estações de trabalho.

Continue navegando