GoConqr has a new look! Let us know what you think.

Flashcards

VERIVAL P2

Mariah Freire Portuguese 131 cards

Cards in this deck (131)

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

Feedback

What is it about?

What do you think of the new look?

How do you like it?