Flashcards
VERIVAL P2
Cards in this deck (131)
- 1O que é teste estrutural?Técnica de teste que usa a estrutura do código fonte para guiar a criação dos testes.
- 2Qual a diferença entre teste funcional e estrutural?Teste funcional usa a especificação; teste estrutural usa o código fonte.
- 3Quais são os níveis de testes?Teste Unitário, Teste de Integração, Teste de Sistema, Teste de Aceitação.
- 4Por que utilizar teste estrutural?Para gerar testes sistematicamente a partir do código e saber quando parar.
- 5O que é cobertura de testes?É a quantidade ou percentual de código exercitado pelos testes.
- 6Como calcular a cobertura de linha?Número de linhas cobertas dividido pelo número total de linhas.
- 7O que é cobertura de bloco?Avalia blocos sequenciais de código executados.
- 8O que é cobertura de decisão (ou ramo)?Verifica se todas as saídas possíveis de decisões (true/false) foram testadas.
- 9O que é cobertura de condição?Verifica cada condição lógica separadamente dentro de uma decisão.
- 10O que é cobertura de caminho?Considera todas as combinações possíveis de execução no código.
- 11Qual o problema da cobertura de caminho?O número de testes cresce exponencialmente com o número de condições.
- 12O que é MC/DC?Modified Condition/Decision Coverage: cada condição deve afetar o resultado da decisão de forma independente.
- 13Quantos testes são necessários para MC/DC?N + 1, onde N é o número de condições.
- 14Como se avalia um laço com testes estruturais?Executando o laço zero, uma e várias vezes.
- 15O que são critérios subordinados?Critérios mais abrangentes implicam na cobertura dos mais simples.
- 16O que é JaCoCo?Ferramenta de cobertura de código para Java que pode ser usada com Maven.
- 17Como executar o JaCoCo?Usar o comando 'mvn clean test verify' com configuração no pom.xml.
- 18O que significam as cores no relatório do JaCoCo?Verde: coberto, Amarelo: parcialmente coberto, Vermelho: não coberto.
- 19Code coverage garante testes eficazes?Não. Alta cobertura não garante bons testes, mas baixa cobertura geralmente indica problemas.
- 20Qual a função ideal do code coverage?Informar onde os testes são insuficientes, não decidir pela qualidade do software.
- 21O que é um Projeto Baseado em Contratos?É uma abordagem que define obrigações e garantias entre componentes de software, com base em especificações formais.
- 22Quem criou o conceito de Projeto Baseado em Contratos?Bertrand Meyer, em 1986.
- 23Quais são os três tipos principais de asserções em contratos?Pré-condições, Pós-condições e Invariantes de classe.
- 24O que são pré-condições?Condições que o cliente deve garantir antes de chamar um método.
- 25O que são pós-condições?Condições que a classe garante após a execução do método.
- 26O que são invariantes de classe?Condições que devem ser sempre verdadeiras durante o ciclo de vida do objeto.
- 27Por que usar contratos em software?Para tornar claros os limites de responsabilidade entre cliente e fornecedor de métodos.
- 28Qual é a relação entre contratos e testes?Contratos ajudam a definir claramente o comportamento esperado, facilitando a criação de testes.
- 29Como se verifica contratos no código Java?Com o uso de 'asserts' que validam pré e pós-condições.
- 30O que acontece se uma pré-condição não for satisfeita?O método pode lançar exceções, retornar valores incorretos, corromper dados ou entrar em loop.
- 31Quais são os dois tipos de contrato segundo Cheesman e Daniels?Contrato de uso (interface e cliente) e contrato de realização (especificação e implementação).
- 32Quais são as vantagens dos contratos?Maior clareza, menos verificação excessiva de erros, facilita testes.
- 33Qual é a principal desvantagem dos contratos?Usuários da classe podem ignorar o contrato, gerando erros de uso.
- 34Por que o método equals deve estar coerente com o método hashCode?Porque estruturas como Set usam ambos para verificar unicidade de elementos.
- 35Como assertivas ajudam nos testes de integração?São ativadas durante testes e garantem que os contratos sejam respeitados.
- 36O que deve ser feito se uma pilha pode estar cheia?A classe deve fornecer um método como isFull() para verificar isso.
- 37Qual é o objetivo do método verificaOrdenacao em uma lista ordenada?Verificar se os elementos da lista estão em ordem crescente.
- 38Como os contratos lidam com herança?Devem manter as pré e pós-condições e invariantes nas subclasses.
- 39O que deve ocorrer com as invariantes durante o ciclo de vida de um objeto?Devem ser verdadeiras após o construtor e antes/depois de métodos públicos.
- 40Como ativar asserts em Java com Maven?Executando os testes com o parâmetro java –ea, que ativa assertivas.
- 41O que são testes com dependências?São testes realizados em classes que dependem de outras para funcionar corretamente.
- 42Por que testar classes com dependências pode ser difícil?Porque as dependências podem ser lentas, complexas ou envolver infraestrutura externa.
- 43O que são 'dubles' em testes?Objetos que substituem comportamentos reais de dependências para facilitar testes.
- 44Quais são as vantagens de usar dubles?Maior controle, mais velocidade e melhoria no design das classes.
- 45O que são 'dummys'?Objetos passados mas nunca usados, apenas para satisfazer o sistema de tipos.
- 46O que são 'fakes'?Objetos com implementação simplificada, como repositórios em memória.
- 47O que são 'stubs'?Objetos que retornam respostas prontas para chamadas durante o teste.
- 48O que são 'mocks'?Stubs que registram chamadas de métodos para verificação posterior.
- 49O que são 'spies'?Envelopes que monitoram interações de objetos reais.
- 50Qual a diferença entre stubs e mocks?Stubs verificam estado, mocks verificam comportamento.
- 51Como evitar dependências hard-coded?Utilizando injeção de dependência via construtor.
- 52O que é o Mockito?Framework para criar mocks, stubs e spies em Java.
- 53Como configurar Mockito com Maven?Adicionar as dependências mockito-core e mockito-junit-jupiter no pom.xml.
- 54Como criar mocks com Mockito?Usar a anotação @Mock ou o método mock().
- 55Como configurar retorno de métodos com Mockito?Usar when(...).thenReturn(...) ou when(...).thenThrow(...).
- 56Como verificar chamadas de método com Mockito?Usar verify(mock).metodo() ou verify(mock, times(n)).metodo().
- 57O que são 'matchers' em Mockito?Funções como anyInt(), isA(), etc., usadas para configurar stubs.
- 58Como criar spies com Mockito?Usar @Spy ou spy(new Objeto()).
- 59Quando usar dubles?Quando as dependências são lentas, externas ou difíceis de simular.
- 60Quando evitar dubles?Quando as dependências são simples ou utilitárias.
- 61O que é o objetivo do teste de software?Detectar falhas, removê-las e analisar a qualidade do produto e do processo.
- 62Quais são as principais métricas estáticas de qualidade de código?Tamanho do código (ILOCK), Complexidade ciclomática (CC), Densidade de comentários (CDENS), Percentual de reuso, WMC, DIT, NOC, RFC, CBO, LCOM.
- 63Como se calcula a complexidade ciclomática?V(G) = E – N + 2, onde E é o número de arestas e N o número de nodos do grafo do programa.
- 64O que é WMC?Weighted Methods per Class: soma das complexidades ciclomáticas dos métodos de uma classe.
- 65O que indica o DIT?Profundidade da árvore de herança; sugere-se DIT <= 6.
- 66O que é CBO?Coupling Between Objects: número de classes com as quais uma classe está acoplada.
- 67O que é LCOM?Lack of Cohesion of Methods: indica quanto os métodos de uma classe estão relacionados entre si.
- 68Quando investigar uma classe segundo as métricas?Quando ocorrerem pelo menos dois dos seguintes: RFC > 100, RFC > 5x métodos, CBO > 5, WMC > 100, métodos > 40.
- 69O que significa TDD?Test Driven Development: Desenvolvimento Dirigido por Testes.
- 70Qual o ciclo do TDD?1. Escrever teste que falha; 2. Escrever código para passar o teste; 3. Refatorar o código.
- 71Quais são os benefícios do TDD?Evita esquecer testes, incentiva clareza de requisitos, melhora testabilidade e design, permite feedback rápido.
- 72TDD é uma bala de prata?Não, TDD não resolve todos os problemas de desenvolvimento de software.
- 73O que é o problema FizzBuzz no contexto de TDD?Exemplo clássico para praticar TDD: imprimir números de 1 a 100 com regras para múltiplos de 3 e 5.
- 74Como TDD lida com casos de teste?Seleciona um caso simples, escreve o teste, implementa o código, reflete e repete o ciclo.
- 75O que é teste de integração?Visa descobrir defeitos na interação entre módulos integrados do sistema.
- 76Como testar integração com banco de dados?Usar bancos em memória, bancos específicos para teste, ferramentas como Flyway ou Liquibase, e entity builders.
- 77Quais frameworks podem ser usados em testes de integração?Spring (Java), Angular (JavaScript), Jasmine, Karma, Docker Compose, Testcontainers.
- 78O que é teste de sistema?Procura identificar defeitos nas funcionalidades do sistema como um todo, incluindo testes funcionais e não-funcionais.
- 79Quais ferramentas são usadas em testes de sistema?Cucumber, Selenium, Selenide, Playwright, Cypress, Puppeteer, Appium, Maestro, Detox.
- 80Quais são os prós e contras dos testes de sistema?Prós: mais realísticos, cobrem partes críticas. Contras: mais complexos, lentos, frágeis e sujeitos a flakiness.
- 81O que é Selenium?Ferramenta para automatizar testes de sistemas web interagindo com navegadores.
- 82O que são testes estáticos?Buscam problemas de qualidade sem executar o código, usando análise estática e linters.
- 83O que são testes de desempenho?Testam requisitos não-funcionais como velocidade, eficiência, disponibilidade, usando testes de carga, estresse e performance.
- 84O que são testes de segurança?Verificam se mecanismos de proteção do sistema funcionam, incluindo pentesting.
- 85O que são testes de aceitação?Testes baseados nos requisitos do usuário, realizados pelo cliente, podendo ser Alfa ou Beta.
- 86O que é bug tracking?Registro e acompanhamento do ciclo de vida de defeitos encontrados durante os testes.
- 87Por que medir qualidade de software?Para detectar falhas, analisar qualidade do produto e do processo, e melhorar continuamente.
- 88O que é KSLOC?Thousand Source Lines of Code, métrica de tamanho do código.
- 89O que é densidade de comentários (CDENS)?Proporção de linhas de comentário em relação ao total de linhas de código.
- 90O que é percentual de reuso?Mede quanto do código é reutilizado em diferentes partes do sistema.
- 91Como a complexidade ciclomática auxilia no teste?Ajuda a estimar o esforço de teste e identificar módulos que podem ser difíceis de manter.
- 92O que é NOC?Number of Children: número de subclasses de uma classe, indicando reuso.
- 93O que é RFC?Response for a Class: número de métodos que podem ser executados em resposta a uma mensagem recebida.
- 94Como calcular LCOM?Número de pares de métodos sem variáveis compartilhadas menos pares com variáveis compartilhadas; se negativo, considera-se 0.
- 95Quais ferramentas podem ser usadas para calcular métricas de código?CK, NDepend, CodeMR, SonarQube.
- 96O que é Extreme Programming (XP)?Metodologia ágil que propõe práticas como TDD para melhorar a qualidade do software.
- 97Por que escrever o teste antes do código em TDD?Para garantir que o código atenda aos requisitos e seja testável desde o início.
- 98Quais são as etapas do ciclo TDD?1. Escrever teste que falha; 2. Escrever código para passar o teste; 3. Refatorar o código.
- 99O que é refatoração no TDD?Melhorar o código sem alterar seu comportamento externo, visando legibilidade e manutenibilidade.
- 100Quais problemas TDD ajuda a evitar?Esquecer de escrever testes, requisitos pouco claros, código difícil de testar.
- 101O que é a pirâmide de testes?Estratégia que sugere mais testes unitários, menos testes de integração e poucos testes de sistema.
- 102O que são mocks e stubs?Objetos simulados usados para isolar partes do sistema durante testes.
- 103Quando usar testes de integração?Quando é necessário testar a interação entre módulos, dependências externas ou frameworks.
- 104Dê um exemplo de teste de integração com banco de dados.Testar se consultas e operações funcionam corretamente usando bancos em memória ou específicos para teste.
- 105Como frameworks facilitam testes de integração?Oferecem APIs e ferramentas para simular ambientes reais e automatizar testes.
- 106O que é injeção de dependência?Técnica para fornecer dependências a uma classe, facilitando testes e modularidade.
- 107Por que usar entity builders em testes?Facilitam a criação de entidades complexas para cenários de teste.
- 108O que é teste end-to-end (E2E)?Testa o sistema do ponto de vista do usuário, cobrindo todo o fluxo funcional.
- 109O que é BDD?Behavior Driven Development: desenvolvimento orientado por comportamento, usando cenários dados/quando/então.
- 110Quais são exemplos de critérios de aceitação?Condições que devem ser atendidas para que uma funcionalidade seja considerada pronta pelo cliente.
- 111O que é o padrão Page Object?Padrão de projeto que encapsula a lógica de interação com páginas web em classes, facilitando manutenção dos testes.
- 112Quais plataformas auxiliam testes de sistema?BrowserStack, SauceLabs, LambdaTest, Firebase Test Lab, TestGrid.
- 113O que é flakiness em testes?Quando um teste apresenta resultados inconsistentes, às vezes passa, às vezes falha sem alteração no código.
- 114O que são testes dinâmicos?Testes que exigem a execução do código para verificar seu comportamento.
- 115O que são testes estatísticos?Testes que avaliam desempenho e confiabilidade sob condições operacionais variadas.
- 116O que são testes de defeitos?Testes focados em encontrar inconsistências entre o programa e sua especificação.
- 117O que são testes funcionais?Testam as principais funcionalidades do sistema conforme especificação.
- 118O que são testes não-funcionais?Testam características como desempenho, segurança, usabilidade, entre outros.
- 119O que é linting?Processo de análise estática do código para encontrar padrões inadequados e erros de estilo.
- 120Quais ferramentas são exemplos de linters?SonarLint, SonarQube, SpotBugs, MegaLinter.
- 121O que é um teste de carga?Avalia o desempenho do sistema sob diferentes níveis de usuários ou transações.
- 122O que é um teste de estresse?Força o sistema além de sua capacidade para identificar limites e pontos de falha.
- 123O que é um teste de performance?Busca encontrar o limite saudável de operação do sistema.
- 124Quais ferramentas são usadas em testes de desempenho?JMeter, JMH, Gatling, Apache Bench, Locust, K6, Taurus.
- 125O que é pentesting?Teste de intrusão para identificar vulnerabilidades de segurança simulando ataques reais.
- 126O que é OWASP?Projeto global que fornece recursos e ferramentas para segurança de aplicações.
- 127O que são testes Alfa e Beta?Alfa: grupo reduzido, ambiente controlado. Beta: grupo maior, ambiente real.
- 128O que é bug tracking?Processo de registrar, acompanhar e fechar defeitos encontrados durante os testes.
- 129Quais são os estados do ciclo de vida de um defeito?Ativo, Teste, Verificado, Fechado, Reaberto.
- 130Como classificar a severidade de um defeito?Catastrófico, funcionalidade prejudicada, falha não-crítica, menor.
- 131Quais ferramentas são usadas para bug tracking?Bugzilla, MantisBT, GitHub Issues, Datadog.
Information
- Description
- Flashcards on VERIVAL P2, created by Mariah Freire on 12/06/2025.
- Created by
- Mariah Freire · Jun 2025
- Updated
- Jun 12, 2025
- Views
- 3
- Rating