Primeira Avaliação 📝

Questões práticas

  1. Crie um teste unitário em JUnit 5 que verifique se o método multiplicar(int a, int b) da classe Calculadora retorna corretamente o resultado da multiplicação de dois números.
  1. Implemente um teste unitário em JUnit 5 para o método contarCaracteres(String texto) da classe UtilTexto.
    • O teste deve verificar se, ao passar a string “java”, o método retorna o valor 4.
  1. Crie um teste unitário em JUnit 5 que verifique se o método ehPositivo(int numero) da classe Verificador retorna true quando recebe o valor 5 e false quando recebe o valor -3.
  1. Crie um teste unitário em JUnit 5 que verifique se o método dividir(int a, int b) da classe Calculadora lança uma exceção do tipo ArithmeticException quando o valor de b é igual a zero. Utilize assertThrows para validar o lançamento da exceção.
  1. Crie um teste unitário em JUnit 5 que verifique se o método buscar(String id) da classe Repositorio lança uma exceção do tipo IllegalArgumentException quando recebe uma string nula. Utilize assertThrows e verifique se a mensagem da exceção é “ID não pode ser nulo”.
  1. Utilizando Mockito e JUnit 5, crie uma classe de teste com a anotação @ExtendWith(MockitoExtension.class). Declare um mock da interface Repositorio com @Mock e configure o método buscarNome(1) para retornar “Maria” usando when(…).thenReturn(…). Verifique o resultado com assertEquals.

Questões teóricas

  1. O que representa “V&V” no contexto de desenvolvimento de software?
    • A) Versão e Velocidade
    • B) Validação e Verificação
    • C) Visualização e Versatilidade
    • D) Valor e Viabilidade
  1. Qual afirmativa descreve melhor a diferença entre verificação e validação?
    • A) Verificação se concentra no código em execução, enquanto validação se concentra somente em documentos.
    • B) Verificação é uma atividade dinâmica; validação é estática.
    • C) Verificação avalia se o produto atende requisitos e especificações; validação se preocupa se atende às necessidades do usuário.
    • D) Verificação é feita somente por testes manuais; validação é sempre automatizada.
  1. O que são inspeções no contexto de V&V?
    • A) Testes automatizados para garantir desempenho sob carga.
    • B) Revisões formais e sistemáticas de artefatos como documentos ou código, procurando erros e inconsistências.
    • C) Simulações com usuários finais para verificar usabilidade.
    • D) Compilação e execução de código em diferentes ambientes.
  1. Qual dos seguintes é um objetivo dos testes, conforme descrito no texto?
    • A) Modificar requisitos que se mostraram inadequados.
    • B) Reduzir o número de desenvolvedores necessários.
    • C) Criar artefatos que substituam documentos de design.
    • D) Executar o software em condições específicas para ver se ele se comporta como esperado.
  1. No planejamento de V&V, o que significa “rastreabilidade de requisitos”?
    • A) Mapear os requisitos do produto para as atividades de V&V, garantindo que cada requisito seja verificado e validado.
    • B) Rastrear os autores dos requisitos para responsabilização.
    • C) Medir a quantidade de requisitos alterados durante o desenvolvimento.
    • D) Registrar cada requisito em uma ferramenta de versionamento de código.
  1. Em que momento a validação deve ocorrer no ciclo de vida do software?
    • A) Apenas após a entrega final ao cliente
    • B) Somente na fase de testes de integração
    • C) Ao longo de todo o processo de desenvolvimento, garantindo que o produto em construção atenda às necessidades do usuário
    • D) Antes da definição de requisitos, para confirmar as metas do projeto
  1. Qual é a principal consequência de não realizar atividades adequadas de V&V durante o desenvolvimento de software?
    • A) Aumento da velocidade de entrega do produto.
    • B) Redução dos custos de manutenção a longo prazo.
    • C) Possibilidade de entregar um produto que não atende aos requisitos ou às necessidades do usuário.
    • D) Maior compatibilidade com diferentes sistemas operacionais.
  1. Qual dos ciclos de vida do Maven é responsável por limpar artefatos criados em builds anteriores?
    • A) default
    • B) site
    • C) clean
    • D) verify
  1. Qual é a fase do ciclo de vida default do Maven em que são executados testes unitários?
    • A) validate
    • B) compile
    • C) test
    • D) package
  1. Sobre plugins e goals no Maven: qual das afirmações abaixo está de acordo com o conteúdo explicado?
    • A) Um plugin é uma tarefa específica, e um goal é o conjunto de plugins que compõem uma fase.
    • B) Um goal é uma tarefa específica executada por um plugin; um plugin pode ter vários goals.
    • C) Plugins servem só para empacotar o código e não para análise estática.
    • D) Goals apenas determinam a versão do Maven utilizada no projeto.
  1. Em um projeto Maven, qual arquivo central contém as configurações, dependências e informações do projeto?
    • A) build.gradle
    • B) settings.xml
    • C) project.json
    • D) pom.xml
  1. Qual é a função do comando mvn package no Maven?
    • A) Compilar o código-fonte do projeto.
    • B) Executar os testes de integração.
    • C) Empacotar o código compilado em um formato distribuível (como JAR ou WAR).
    • D) Instalar dependências no repositório remoto.
  1. Em que formato o PMD pode gerar relatórios de análise?
    • A) Apenas em PDF
    • B) Somente em HTML
    • C) Em diversos formatos, como XML, CSV e HTML
    • D) Exclusivamente em JSON
  1. Qual é o principal objetivo do Checkstyle?
    • A) Detectar falhas de segurança no código Java.
    • B) Garantir que o código siga padrões de estilo e boas práticas de formatação.
    • C) Executar testes unitários automaticamente.
    • D) Gerar relatórios de cobertura de código.
  1. Qual é uma vantagem de integrar o Checkstyle ao ciclo de build do Maven?
    • A) O Maven passa a compilar o código mais rapidamente.
    • B) O Checkstyle substitui o compilador Java, evitando erros de sintaxe.
    • C) O processo de build pode garantir automaticamente que o código siga padrões de estilo antes de ser aceito.
    • D) A execução de testes unitários se torna opcional.
  1. Qual é o principal objetivo do JUnit?
    • A) Facilitar a criação de interfaces gráficas em Java.
    • B) Automatizar testes unitários para validar o comportamento do código.
    • C) Compilar o código Java com maior eficiência.
    • D) Substituir o Maven no gerenciamento de dependências.
  1. No JUnit 5, qual anotação deve ser usada para marcar um método como um caso de teste?
    • A) @RunTest
    • B) @Testing
    • C) @Test
    • D) @Execute
  1. O que acontece quando uma asserção falha em um teste JUnit?
    • A) O teste continua normalmente até o fim.
    • B) O compilador ignora o erro.
    • C) O resultado do teste é marcado como “inconclusivo”.
    • D) O teste é interrompido e marcado como falho.
  1. Qual anotação do JUnit 5 deve ser usada para indicar que um método de teste não deve ser executado?
    • A) @Disabled
    • B) @IgnoreTest
    • C) @Skip
    • D) @NoRun
  1. Qual é a principal finalidade de um objeto mock em testes unitários?
    • A) Substituir o banco de dados de produção durante o desenvolvimento.
    • B) Simular o comportamento de dependências externas para isolar o código em teste.
    • C) Gerar relatórios de cobertura de código automaticamente.
    • D) Compilar o código-fonte antes da execução dos testes.
  1. No Mockito, qual é a função da construção when(…).thenReturn(…)?
    • A) Executar um método real e armazenar o resultado em cache.
    • B) Definir o valor que um método simulado deve retornar quando chamado com determinados argumentos.
    • C) Verificar se um método foi chamado durante o teste.
    • D) Criar automaticamente uma instância real da classe testada.
  1. Qual anotação deve ser utilizada em uma classe de teste JUnit 5 para habilitar o uso de anotações do Mockito como @Mock?
    • A) @RunWith(Mockito.class)
    • B) @ExtendWith(MockitoExtension.class)
    • C) @EnableMocks
    • D) @MockitoSettings
  1. No Mockito, qual é a diferença entre @Mock e @Spy?
    • A) @Mock cria um objeto real e @Spy cria um objeto simulado.
    • B) @Mock cria um objeto totalmente simulado, enquanto @Spy envolve um objeto real permitindo monitorar e sobrescrever comportamentos pontuais.
    • C) @Spy serve apenas para verificar exceções, enquanto @Mock serve para todos os cenários.
    • D) Não há diferença; ambas as anotações possuem a mesma funcionalidade.
Rodrigo Prestes Machado
CC BY 4.0 DEED

Copyright © 2026 RPM Hub. Distributed by CC-BY-4.0 license.

This site uses Just the Docs, a documentation theme for Jekyll.