Buscar

ENGENHARIA DE SOFTWARE ATIVIDADE 04

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

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.

Continue navegando