Baixe o app para aproveitar ainda mais
Prévia do material em texto
As leis de evolução de um software podem ser aplicadas em qualquer software, de forma geral para momentos de tomada de decisão, de planejamento, desenvolvimento e manutenção, conhecidas como as leis de Lehman (SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011). Das alternativas abaixo, assinale a que descreve as características de algumas das leis de Lehman. • .Conservação de familiaridade: no ciclo de vida de um programa, as mudanças são diversas, umas menos e outras mais complexas. • .Evolução de programa de grande porte: Consiste em saber que o processo de evolução de um programa é um processo não regulável. • .Mudança contínua: é preciso estar atento às mudanças do ambiente real que afetem o sistema ou este se torna progressivamente menos útil. • .Complexidade constante: A mudança no sistema tende a fazer com que a estrutura seja cada vez mais simples, devido aos recursos adicionados. • .Estabilidade organizacional: no ciclo de vida de um programa, a taxa de desenvolvimento tem vários altos e baixos. Resposta correta. As leis de Lehman são aplicadas para qualquer software, em vários momentos de seu desenvolvimento e ainda durante a fase de alteração. O uso de sistemas legados ainda é muito utilizado porque permite resolver problemas do cotidiano da empresa com sucesso (PRESSMAN, R. Engenharia de Software. 8. ed. Porto Alegre: AMGH, 2016). Das alternativas abaixo, assinale a que descreve algumas características que devem ser consideradas em um software legado. • .Não serve à empresa, mais de 20 anos feito, sem pessoal especialista. • .Manutenção com baixo custo, com baixo eventos e com facilidade. • .Código legível, poucas linhas de código e em uso atualmente. • .É complemento para a empresa, uso de tecnologia obsoletas e usa atualmente. • .Uso de linguagem nova, arquitetura flexível, e sem documentação. Resposta correta. Para ser legado, precisa ter características que digam que é antigo, com muito tempo, sem especialistas. Para saber se um teste é funcional é preciso estabelecer uma metodologia adequada para o que se quer de informação, e assim ter cobertas todas as possibilidades desejadas (SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011). Das alternativas abaixo, assinale a que informa corretamente sobre os tipos de teste durante o desenvolvimento. • .Ao executar teste de qualidade com uso de valor, não existe limite para ser definido, pois assim é possível avaliar o maior número de valores. • .Em todos os testes utilizar sempre o mesmo valor como parâmetro pois assim é possível saber se o resultado está correto. • .Sempre é importante testar o que é correto como resultado e também o que deve e precisa estar errado como informação final do teste de qualidade. • .O uso do teste de partição e do teste de valor limite são pouco eficazes, pois apenas têm-se testes de valores dentro de uma parte delimitada. • .Quando precisar analisar um parâmetro, não é necessário dividir o código em partes, pois quanto mais testes executar no código, melhor a qualidade do teste. Resposta correta. Saber se um teste de software realmente executa um teste correto consiste em saber os fatos positivos e negativos, com variações, por partes acertadas e limites determinados. O teste de usuário é o momento que o sistema tem maturidade de uso, depois de realizadas algumas sugestões do cliente (GALLOTTI, G. M. A. Qualidade de Software. São Paulo: Pearson, 2017). Das alternativas abaixo, assinale a que descreve a característica do tipo de teste de usuário denominado teste Beta • .Momento em que o sistema é disponibilizado para teste para a equipe de desenvolvimento para o seu uso de forma não real. • .Momento em que o sistema é testado pelo usuário em conjunto com os desenvolvedores para estar o máximo próximo dos requisitos. • .Momento em que o sistema é disponibilizado para usuários com experiência do negócio, mesmo que não esteja acabado. • .Momento em que o desenvolvedor testa o sistema, para saber se as funcionalidades que ele associou ao código estão corretas. • .Momento final quando usuários testam se o sistema pode ser usado, realizado em um intervalo definido de tempo. Resposta correta. Esta versão mesmo que não esteja acabada pode ser utilizada no ambiente real e revelar a associação com a infraestrutura. Conseguir ver os testes em execução pode ser importante para a análise do sistema. Porém também pode não ter esta importância, pois depende do objetivo que está associado ao teste do software. (PRESSMAN, R. Engenharia de Software. 8. ed. Porto Alegre: AMGH, 2016). Considerando os tipos de processo de teste durante o desenvolvimento, avalie as afirmações a seguir. I. O teste de caixa preta importa-se somente com o resultado do teste, o resultado que é apresentado em sua saída. II. O teste de caixa branca executa testes na parte interna do sistema, com análise sobre os fluxos internos. III. O teste de regressão analisa como era o sistema antes de uma alteração realizada no código. IV. O teste de carga verifica que o sistema pode ser ilimitado quanto às linhas de código presentes. V. O teste de segurança analisa o sistema quanto aos ataques, vulnerabilidades ou outro tipo de ameaça. Agora, assinale a alternativa que apresenta informações corretas quanto ao processo de desenvolvimento de teste. • .II, III e IV. • .II, IV e V. • .I, II, III, IV e V. • .I, II e V. • .I, III e V. Resposta correta. O termo caixa preta consiste em não saber a parte interna, ao contrário do termo caixa branca. Para o de regressão diz respeito ao teste de versões. O de carga é sobre o limite de dados e o de segurança sobre a segurança digital. Os testes devem ser feitos com um planejamento, para se pensar o que vai ser testado e preparar dados (SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Education, 2011). Das alternativas abaixo, assinale a que informa corretamente sobre os passos iniciais para a produção de teste de software com coerência. • .Preparar dados de teste; Projetar casos de teste; Executar programa com dados de teste; Fazer os relatórios. • .Projetar casos de teste; Executar programa com dados de teste; Comparar resultados; Fazer os relatórios. • .Preparar dados de teste; executar dados de teste; Analisar os dados de teste; Comparar resultados. • .Projetar casos de teste; Preparar dados de teste; Executar programa com dados de teste,; Comparar resultados. • .Preparar dados de teste; Projetar casos de teste; Executar programa com dados de teste; Comparar resultados. Resposta correta. Para qualquer projeto é preciso planejar e depois agir e, por fim, ver os resultados, inclusive em teste de software. Analise as afirmativas abaixo e a relação entre elas: I. O processo de mudança e evolução em um software é inevitável PORQUE II. O software como qualquer produto, tem um tempo de vida. Analisando as afirmações acima, conclui-se que: • .As duas afirmações são falsas. • .A primeira afirmação é verdadeira, e a segunda é falsa. • .As duas afirmações são verdadeiras, e a segunda justifica a primeira. • .As duas afirmações são verdadeiras, e a segunda não justifica a primeira. • .A primeira afirmação é falsa, e a segunda é verdadeira. Resposta correta. Nenhum produto sobrevive sem alterações devido aos novos recursos. Para um software não é diferente. Leia as afirmações a seguir e a relação entre elas: I. TDD, ou Test-Driven Development, é técnica de implementação PORQUE II. É um processo comum de desenvolvimento com uso de teste de software. Analisando as afirmações acima, conclui-se que: • .As duas afirmações são falsas.• .As duas afirmações são verdadeiras, e a segunda não justifica a primeira. • .As duas afirmações são verdadeiras, e a segunda justifica a primeira. • .A primeira afirmação é falsa, e a segunda é verdadeira. • .A primeira afirmação é verdadeira, e a segunda é falsa. Resposta correta. O TDD é uma técnica de implementação e o fato de ser comum não justifica o seu conceito de ser técnica de implementação. Existem vários tipos de manutenção, com nomes ligeiramente diferentes, porém com o mesmo propósito (PFLEEGER, S. L. Engenharia de Software - Teoria e Prática. 2. ed. São Paulo: Pearson Addison Wesley, 2004). Das alternativas abaixo, assinale a que descreve as características de alguns tipos de manutenção de software. • .Manutenção evolutiva: é a que mais se evita pelo fato de alterar, incluir e excluir as funcionalidades e requisitos que já são aplicados ao sistema. • .Manutenção preditiva: consiste em alterar as funcionalidades quando o sistema está inoperante, pois assim inclui novos recursos, quando está parado. • .Manutenção corretiva: é a mais desejada pelo cliente porque consiste em correção dos erros presentes e também inclusão de novos recursos. • .Manutenção preventiva: muito utilizada é consiste em ver os erros que podem afetar o sistema e que o cliente tem o orçamento alterado para maior. • .Manutenção adaptativa: são as alterações que o sistema sofre devido à mudança de ambiente, que não estava previsto no início do sistema. Resposta correta. A evolutiva diz respeito ao acréscimo de novos recursos, a adaptativa é sobre adequar-se a uma situação nova. Para a corretiva é ajuste de erros que ocorrem. A preventiva é ajuste de erros antes de ocorrerem. A preditiva é ajuste devido o limite de tempo de seu uso. O TDD ( Test-Driven Development - Desenvolvimento Dirigido a Testes) auxilia na validação do código e dos requisitos (PRESSMAN, R. Engenharia de Software. 8. ed. Porto Alegre: AMGH, 2016). Considerando as boas práticas de aplicação do TDD, avalie as afirmações a seguir. I. Manter acoplada a implementação do projeto que se deseja desenvolver com o teste que vai ser executado neste código. II. Usar convenções para facilitar a organização dos blocos de desenvolvimento, inclusive com o uso de termos padronizados. III. Não existe a necessidade de seguir o TDD à risca, visto que é apenas um direcionador de ideias de como fazer. IV. Toda vez que qualquer parte de código alterar, executar todos os testes novamente, para garantir integridade do todo. V. Na execução do teste é sempre importante utilizar de ferramentas que permitam a integração contínua entre as partes. Agora, assinale a alternativa que apresenta informações corretas quanto o uso das boas práticas de uso do TDD. • .I, II, III, IV e V. • .II, IV e V. • .I, II e V. • .II, III e V. • .II, III e IV. Resposta correta. Se for um teste, precisa ser utilizado com padrões, de separações de módulos, com novos testes para novos recursos e ferramentas que permitam o teste de integração.
Compartilhar