Prévia do material em texto
GABARITO Protocolo: 871399 Página 1 - 04/06/2024 às 16:01 Prova Data de aplicação: 02/05/2024 Curso: Engenharia de Software Disciplina: Verificação e Validação de Software Ano: 20241 / Semestre: 4 RGM: 123.1478 / Aluno: GILVAN GABRIEL CORREIA DE ALENCAR PROVA 01 Questão 1 Em relação a Qualidade de Software, explique os fatores de qualidade “Confiabilidade” e “Integridade” na visão de McCall. Resposta do aluno: confiabilidade: refere-se a capacidade do software de desempenhar suas funcoes sem falhas durante um periodo especifico de tempo integridade: diz respeito a capacidade do software de fornecer resultados corretos e precisos sem comprometer as segurança ou consistencia dos dados Parecer do professor: Questão correta. Questão 2 Diferencie Verificação de Software de Validação de Software. Resposta do aluno: verificao refere-se ao processo de avaliar se o software atende aos requisitos e especificacoes definidos durante o desenvolvimento validacao refere se ao processo de avaliar se o software atende as necessidades e expectativas do cliente Parecer do professor: Questão correta. Questão 3 Em relação as oito dimensões de Garvin, marca a alternativa relativa a Durabilidade. a) O software fornece todo o conteúdo, funções e recursos que são especificados como parte do modelo de requisitos de forma a gerar valor ao usuário final? b) O software está de acordo com os padrões de software locais e externos relacionados com a aplicação? Segue as convenções de projeto e codificação de fato? Por exemplo, a interface com o usuário está de acordo com as regras de projeto aceitas para seleção de menus ou entrada de dados? c) O software pode ser mantido (modificado) ou corrigido (depurado) sem a geração involuntária de efeitos colaterais indesejados? as mudanças farão com que a taxa de erros ou a confiabilidade diminuam com o passar do tempo? (correta) d) O software fornece recursos que surpreendem e encantam usuários fi nais que os utilizam pela primeira vez? Questão 4 Em relação aos Fatores de Qualidade ISO 9126, marca a alternativa relativa Confiabilidade. a) O grau com que o software satisfaz às necessidades declaradas conforme indicado pelos seguintes subatributos: adequabilidade, exatidão, interoperabilidade, conformidade e segurança b) O grau de otimização do uso, pelo software, dos recursos do sistema conforme indicado pelos seguintes subatributos: comportamento em relação ao tempo, comportamento em relação aos recursos c) A facilidade com a qual um software pode ser transposto de um ambiente a outro conforme indicado pelos seguintes subatributos: adaptabilidade, facilidade de instalação, conformidade, facilidade de substituição. GABARITO Protocolo: 871399 Página 2 - 04/06/2024 às 16:01 d) A quantidade de tempo que o software fica disponível para uso conforme indicado pelos seguintes subatributos: maturidade, tolerância a falhas, facilidade de recuperação. (correta) Questão 5 Em relação as oito dimensões de Garvin, marca a alternativa relativa a Qualidade de Desempenho. a) O software fornece todo o conteúdo, funções e recursos que são especificados como parte do modelo de requisitos de forma a gerar valor ao usuário final? (correta) b) O software está de acordo com os padrões de software locais e externos relacionados com a aplicação? Segue as convenções de projeto e codificação de fato? Por exemplo, a interface com o usuário está de acordo com as regras de projeto aceitas para seleção de menus ou entrada de dados? c) O software pode ser mantido (modificado) ou corrigido (depurado) sem a geração involuntária de efeitos colaterais indesejados? as mudanças farão com que a taxa de erros ou a confiabilidade diminuam com o passar do tempo? d) O software fornece recursos que surpreendem e encantam usuários fi nais que os utilizam pela primeira vez? Questão 6 Segundo a norma ISO 9126, e também pelos estudos de McCall, um dos fatores de qualidade que se aplicam ao software é a confiabilidade, que é definida como: a) a facilidade de migrar o software de um ambiente computacional para outro. b) a probabilidade de o software operar sem falhas durante um período de tempo. (correta) c) o esforço dispendido para efetuar correções em um software. d) o nível de aproveitamento dos recursos computacionais pelo software. e) o nível de facilidade do uso de um software. Questão 7 Para Pressman (2011), há três pontos a serem analisados no que diz respeito à qualidade de software, marque a alternativa que NÃO diz respeito aos três pontos proposto por Pressman. a) Uma gestão de qualidade efetiva estabelece infraestrutura que dá suporte a qualquer tentativa de construir um produto de software de qualidade. b) Um produto útil fornece o conteúdo, as funções e os recursos que o usuário final deseja, além disso, deve fornecer confiabilidade e isenção de erros. c) o agregar valor tanto para o fabricante quanto para o usuário de um produto de software, um software de alta qualidade gera benefícios para a empresa bem como para os usuários finais. d) O software não deve está de acordo com os padrões de software locais e externos relacionados com a aplicação. (correta) Questão 8 Podemos definir a revisão como um processo onde várias pessoas se reúnem para procurar erros nos artefatos de software. Pressman e Maxim (2016) apontam alguns pontos que são feitos nessas revisões, sendo assim, julguem os itens a seguir, I - Apontar aperfeiçoamentos necessários no produto de uma única pessoa ou de uma equipe. II - Confirmar as partes de um produto em que aperfeiçoamentos são indesejáveis ou desnecessários. III - Obter trabalho técnico de qualidade mais uniforme, ou pelo menos mais previsível; qualidade que possa ser alcançada sem revisões, de modo a tornar o trabalho técnico mais gerenciável. São corretos: GABARITO Protocolo: 871399 Página 3 - 04/06/2024 às 16:01 a) Apenas I b) I e II c) II e III d) I e III e) I, II e III (correta) Questão 9 A meta principal de aplicarmos as revisões é: a) descobrir erros de forma tardia, evitando um aumento do prejuízos. b) organizar a equipe para que a revisão ocorra. c) descobrir erros de forma precoce, evitando prejuízos. (correta) d) organizar eventos para verificação das tarefas a serem realizadas. Questão 10 Em relação aos Fatores de Qualidade de McCall, marca a alternativa relativa a Usabilidade. a) O quanto um programa satisfaz a sua especificação e atende aos objetivos da missão do cliente. b) O quanto o acesso ao software ou dados por pessoas não autorizadas pode ser controlado. c) Esforço necessário para aprender, operar, preparar a entrada de dados e interpretar a saída de um programa. (correta) d) A quantidade de recursos computacionais e código corrigidos por um programa para desempenhar sua função. PROVA 02 Questão 1 Defina o que é o TDD, explique em detalhes, detalhando também o que seria o chapéu TDD. Resposta do aluno: o tdd e uma metodolgia de desenvolvimento de software que consiste em desenvolver os testes antes do codigo, deste modo é possivel pensar de outra maneira na hora de escrever o codigo, ele passa pelas seguintes etapas: escrevemos o teste para a nossa funcionalidade, se o teste falhar, escrevemos a implementação da nossa funcionalidade e se o teste passa para essa funcionalidade junto com os dematis teste anteriores, verificamos se é necessario promover melhorias em nosso codigo e se for necessario sao feitas as melhorias e executamos os testes para verificar chapeu tdd trata se de um bone de tres abas onde cada aba representa uma cor do clico tdd, o vermelho indica queestamos escrevendo os teste, o verde quando estamos escrevendo a implementação da funcionalidade e o azul correspondeao momento de refatoração do codigo Parecer do professor: Questão correta. Questão 2 Qual é a função do método assertEquals? Resposta do aluno: sua funcao e comparar dois valores e verificar se eles sao iguais. se os valores forem iguais o teste passa caso contrario o teste falha Parecer do professor: Questão correta. Questão 3 Considerando o códigoabaixo, suponha um método de teste com um objeto da classe Funcionario denominado de “func”, com o valor para o atributo data_demissao configurado com uma string vazia (“”). Suponha que as asserções a seguir fazem parte de um mesmo teste, usando o mesmo objeto. Apenas um deles vai passar. Qual dessas asserções é correta? GABARITO Protocolo: 871399 Página 4 - 04/06/2024 às 16:01 a) assertEquals("", func.status()); b) assertEquals("Eliminado", func.status()); c) assertEquals("Demitido", func.status()); d) assertEquals("Ativo", func.status()); (correta) Questão 4 Julgue a assertiva a seguir: Quando uma pessoa escreve testes usando a metodologia TDD, estará escrevendo seus testes aos poucos, fazendo que os testes evoluam à medida que o sistema está sendo escrito. PORQUE Como é o computador que realiza a execução dos testes, os resultados dos testes são dados em segundos, fazendo que o programador economize o seu tempo. Com base na análise feita, podemos afirmar que: a) As duas assertivas são verdadeiras e a segunda é uma justificativa correta da primeira; b) As duas assertivas são verdadeiras, mas a segunda não é uma justificativa correta da primeira; (correta) c) As duas assertivas são falsas; d) A primeira afirmativa é falsa e a segunda é verdadeira e) A primeira afirmativa é verdadeira e a segunda é falsa Questão 5 Em relação ao ciclo de vida do TDD, marque a alternativa relativa a primeira etapa do ciclo de vida. a) Escrever o teste mais simples (correta) b) Vê ele falhar c) Implementa a solução mais simples que resolve o problema d) Refatora para remover duplicidade de dados e de código GABARITO Protocolo: 871399 Página 5 - 04/06/2024 às 16:01 Questão 6 Em relação ao chapéu do TDD, onde cada aba corresponde a uma cor do ciclo TDD, assinale a alternativa que o descreve corretamente as cores: a) O Vermelho, que indica quando estamos escrevendo o teste, o Verde, quando escrevemos a implementação da funcionalidade, e o Azul, que corresponde ao momento da refatoração do nosso código. (correta) b) O Azul, que indica quando estamos escrevendo o teste, o Verde, quando escrevemos a implementação da funcionalidade, e o Vermelho, que corresponde ao momento da refatoração do nosso código. c) O Verde, que indica quando estamos escrevendo o teste, o Azul, quando escrevemos a implementação da funcionalidade, e o Vermelho, que corresponde ao momento da refatoração do nosso código. d) O Verde, que indica quando estamos escrevendo o teste, o Vermelho, quando escrevemos a implementação da funcionalidade, e o Azul, que corresponde ao momento da refatoração do nosso código. e) O Vermelho, que indica quando estamos escrevendo o teste, o Azul, quando escrevemos a implementação da funcionalidade, e o Verde, que corresponde ao momento da refatoração do nosso código. Questão 7 O _______________ é uma ferramenta muito interessante. Com ele você pode emular a interação humana de páginas. A lacuna refere-se a ferramente de teste: a) JUnit b) PHPUnit c) Selenium Web Driver (correta) d) Teste Code Questão 8 A respeito do processo de desenvolvimento dirigido por testes (TDD), assinale a afirmativa CORRETA. a) O desenvolvedor precisa escrever casos de teste automatizados que vão além das fronteiras do projeto de software para validar o comportamento esperado em processos externos. b) Após a implementação do projeto de software, os componentes de testes devem ser descartados porque não se tornarão parte da manutenção do projeto. c) Não há necessidade de refatoração de código, uma vez que essa técnica de desenvolvimento pressupõe que o código será produzido em padrões aceitáveis. d) O desenvolver escreve seus testes aos poucos, fazendo que os testes evoluam à medida que o sistema está sendo escrito. (correta) e) Testes de unidade automatizados que definam requisitos em código são criados somente após escrever o código da aplicação. Questão 9 Considerando o código abaixo, suponha um método de teste com um objeto da classe Funcionario denominado de “func”, com o valor para o atributo data_demissao configurado para “18-04-2019”. Suponha que as asserções a seguir fazem parte de um mesmo teste, usando o mesmo objeto. Apenas um deles vai passar. Qual dessas asserções é correta? GABARITO Protocolo: 871399 Página 6 - 04/06/2024 às 16:01 a) assertEquals("", func.status()); b) assertEquals("Eliminado", func.status()); c) assertEquals("Demitido", func.status()); (correta) d) assertEquals("Ativo", func.status()); Questão 10 Considerando o código abaixo, qual seria o método assertEquals correto para testar se o um objeto da classe Funcionario, denominado de “func”, com o valor do atributo salario previamente configurado com o valor R$1700.00 retorna o mesmo salário? GABARITO Protocolo: 871399 Página 7 - 04/06/2024 às 16:01 a) assertEquals(1700, a.calcularSalarioLiquido()); b) assertEquals(1700, func.calcularSalarioLiquido(), 0.0001); (correta) c) assertEquals(1700, func.calcularSalarioLiquido()); d) assertEquals(1700, 0.0001);