Baixe o app para aproveitar ainda mais
Prévia do material em texto
Revisar envio do teste: ATIVIDADE 4 Usuário Curso ENGENHARIA DE SOFTWARE I Teste ATIVIDADE 4 Iniciado Enviado Status Completada Resultado da tentativa Tempo decorrido Resultados exibidos Respostas enviadas, Respostas corretas, Comentários · Pergunta 1 “O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. Quando se testa o software, o programa é executado usando dados fictícios. Os resultados do teste são verificados à procura de erros, anomalias ou informações sobre os atributos não funcionais do programa.”. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 144. Para se executar uma eficiente massa de testes, Sommerville (2011) propõe um fluxo formal de testes a ser seguido. Coloque na ordem correta as etapas do fluxo de teste: 1- Preparar dados do teste. 2- Projetar casos de teste. 3- Comparar resultados para casos de teste. 4- Executar programa com dados de teste. A ordem correta das etapas do fluxo de teste é: Resposta Selecionada: d. 2, 1, 4, 3; Resposta Correta: d. 2, 1, 4, 3; Feedback da resposta: Sua resposta está correta. É correta a ordem escolhida, pois para que os testes sejam realizados de forma satisfatória e que consigam abordar todas as situações possíveis, o fluxo deve seguir as etapas conforme indicado. · Pergunta 2 “Testes de desenvolvimento incluem todas as atividades de testes que são realizadas pela equipe de desenvolvimento do sistema. O testador do software geralmente é o programador que o desenvolveu, embora nem sempre seja assim.”. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 147. A ordem correta é: Durante o desenvolvimento, o teste pode ocorrer em três níveis de granularidade. Associe os níveis de granularidade da coluna da esquerda com as situações expostas na coluna à direita: Resposta Selecionada: a. 3, 1, 2; Resposta Correta: a. 3, 1, 2; Feedback da resposta: Sua resposta está correta. Esta correta a relação das situações expostas com a classificação da granularidade dos testes, sendo do nível centrado nas classes do código, relação entre componentes e testes globais do sistema. · Pergunta 3 Existem diferentes níveis de testes em desenvolvimento, em nível de código. Destes, os de caixa branca, que visam analisar o que foi implementado, sobressaem-se, principalmente, por três vertentes: · os que testam objetos, métodos ou classes individualmente; · os que analisam sua integração, ou seja, como os blocos de código funcionam, quando juntos; · por fim, os testes de um sistema todo, considerando o código como um todo. Exemplos desses testes, seriam: · testar um método de uma classe; · testar uma classe chamando outra, que acessa o banco; · testar desde a tela, passando por uma classe que chama uma terceira indo até o banco. Dentre as alternativas a seguir, marque a que apresenta os exemplos na sequência, pela ordem de testes. Resposta Selecionada: d. Unitário; Componentes; Sistema. Resposta Correta: d. Unitário; Componentes; Sistema. Feedback da resposta: Resposta correta. A sequência traz primeiro, a unidade ou classe, portanto Unitário, que se unem em componentes que tem de ser testados novamente, para ver se funcionam bem em conjunto, por último o teste de sistema, para verificar se os componentes trabalham bem em conjunto. · Pergunta 4 “A manutenção de software é o processo geral de mudança em um sistema depois que ele é liberado para uso. O termo geralmente se aplica ao software customizado em que grupos de desenvolvimento separados estão envolvidos antes e depois da liberação.”. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 170. Sobre a manutenção de software é correto afirmar: I – As manutenções feitas no software podem ser simples mudanças para correção de erros de codificação, até mudanças mais extensas para correção de erros de projeto. II – A manutenção evolutiva compreende a incorporação de novos requisitos que atendem às necessidades não levantadas inicialmente no projeto, mas necessários devido às mudança nas regras de negócio. III – A manutenção adaptativa compreende corrigir erros que foram enviados para a produção, mas que não foram devidamente analisados e testados na fase inicial do projeto. IV – A manutenção corretiva não é desejável, pois se supõem que todos os testes executados antes da produção já foram devidamente realizados e todas as situações de erro já foram abordados. V – A manutenção preventiva é executada com a intenção de antecipar problemas futuros que possam acarretar erros em tempo de execução e que merecem ser tratados. Os enunciados verdadeiros são: Resposta Selecionada: b. I, II, IV, V; Resposta Correta: b. I, II, IV, V; Feedback da resposta: Sua resposta está correta. Os processos de manutenção foram corretamente identificados conforme a sua aplicabilidade e situação exposta. É muito importante para o desenvolvedor saber aplicar cada tipo de manutenção à situação necessária. · Pergunta 5 Considerando a realidade de desenvolvimento de uma empresa, é comum ter de tratar com diferentes tipos de manutenção, conforme mencionamos o código tem um tempo de vida e uso, e durante este tempo de vida, pode necessitar de alterações para manter-se. Como exemplo, abaixo temos alguns tipos de manutenções que podem ser realizadas em algum sistema, durante sua vida, por algum motivo. Considere as seguintes informações: · alteração de código, devido a erros no sistema; · alterando o sistema para funcionar em outro browser; · desenvolvendo uma nova funcionalidade; · refatorando o código, para evitar um problema futuro. De acordo com as definições acima, estamos falando, respectivamente de quais tipos de manutenção? Resposta Selecionada: b. Corretiva, adaptativa, evolutiva e preventiva. Resposta Correta: b. Corretiva, adaptativa, evolutiva e preventiva. Feedback da resposta: Resposta correta. O conhecimento das diferentes formas de manutenção é fundamental para o trato com o cliente no contexto de manutenção de software, entender que corretiva é erro, adaptativa é infra, evolutiva é melhoria e preventiva é alterar, para evitar problemas futuros, é um bom começo. · Pergunta 6 “Testes de desenvolvimento incluem todas as atividades de testes que são realizadas pela equipe de desenvolvimento do sistema [...um determinado tipo de teste] em que você identifica os grupos de entradas que possuem características comuns e devem ser tratados da mesma maneira. Você deve escolher os testes dentro de cada um desses grupos.”. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 147. Para que se possa garantir a qualidade dos testes é fundamental escolher uma metodologia. A metodologia citada acima é considerada teste de: Resposta Selecionada: d. partição; Resposta Correta: d. partição; Feedback da resposta: Sua resposta está correta. É correto afirmar que, quando se identificam grupos com características em comum para que sejam executados os testes, conforme descrito no enunciado, é considerado um teste de partição. · Pergunta 7 Leia o trecho abaixo. “Um sistema sociotécnico que é útil, ou até essencial para uma organização, mas que foi desenvolvido com uso de tecnologias ou métodos obsoletos. Pelo fato destes sistemas frequentemente executarem funções críticas para o negócio, eles precisam ser mantidos”. Fonte: SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 533. Com o que estudamos no capítulo, podemos compreender que existem alguns sistemas que são necessários para a empresa e embora sejam antigos, não podem ser facilmente descartados, sem grandesimpactos. Estamos falando de um sistema? Resposta Selecionada: e. Legado. Resposta Correta: e. Legado. Feedback da resposta: Resposta correta. É interessante analisar o contexto de uso de sistemas legados, pois, embora não traga mais tantas vantagens para a empresa, pode estar tão integrado aos processos cotidianos, que sua troca, pode ser muito complexa, seu uso deve ser muito analisado e tentar migrá-lo deve ser analisado com muito cuidado. · Pergunta 8 Ao contrário de outro tipo de teste, que tem uma relação muito próxima da codificação, este considera somente as entradas e as saídas. Pode ser aplicado em qualquer nível de teste, em todo o sistema, em um componente, ou um teste unitário. Como é um teste que se preocupa somente com a saída, ele não depende do tipo de linguagem, além disso, pode ser automatizado, um sistema externo pode realizar os testes de uma forma previamente configurada. Esta definição refere-se a qual tipo de teste? Resposta Selecionada: b. Caixa preta. Resposta Correta: b. Caixa preta. Feedback da resposta: Resposta correta. Assim como dito no enunciado, o teste de caixa preta considera que o que o sistema deve receber e o que ele deve retornar, não tem interação com o código, e se o código mudar, em tese, não deve mudar os resultados do teste de caixa preta. · Pergunta 9 “O desenvolvimento dirigido a testes (TDD, do inglês Test-Driven Development) é uma abordagem para o desenvolvimento de programas em que se intercalam testes e desenvolvimento de código.”. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison Wesley, 2011. p. 155. A sequência correta é: Conforme enunciado acima e estudado no curso, associe as boas práticas do TDD da coluna da esquerda com as situações expostas na coluna à direita: Resposta Selecionada: c. 3, 4, 1, 5, 2; Resposta Correta: c. 3, 4, 1, 5, 2; Feedback da resposta: Sua resposta está correta. É muito importante para o desenvolvedor em sistema ter um conhecimento sólido sobre processos de gestão de testes para que os aplicativos sejam desenvolvidos com alto padrão de qualidade. · Pergunta 10 Sobre a metodologia de desenvolvimento que utiliza TDD, verificamos que existe uma ordem para realizar a implementação e os testes, ou seja, em um momento, você está, efetivamente, criando um teste, em outro, está implementando o código fim, em separado. Este processo é essencial para o TDD, pois é por ele que se consegue o teste, criado com o código implementado, e, de forma incremental, vai sendo construído o código. Sobre isso, analise as afirmações abaixo. 1. Execute o teste (não há código de implementação, o teste não é aprovado). 2. Escreva o teste. 3. Escreva apenas o código de implementação suficiente para fazer o teste passar. 4. Execute novamente os testes. Assinale a alternativa que apresenta a sequência correta para executar o TDD. Resposta Selecionada: b. 2; 1; 3; 4. Resposta Correta: b. 2; 1; 3; 4. Feedback da resposta: Resposta correta. A resposta está correta, para executar o TDD, deve-se sempre implementar o teste, antes do código para ser testado, mesmo que ele não exista.
Compartilhar