Prévia do material em texto
BDD (Behavior Driven Development) O que e BDD (Behavior Driven Development)? a) Um processo de desenvolvimento de software baseado em testes de unidade. b) Uma abordagem que foca em comportamentos especificos do sistema, utilizando uma linguagem natural. c) Um metodo de desenvolvimento agil que se concentra apenas no codigo-fonte. d) Uma tecnica de integracao continua. Resposta correta: b) Explicacao: O BDD (Behavior Driven Development) e uma abordagem que foca na definicao de comportamentos do sistema antes do desenvolvimento, utilizando uma linguagem mais proxima da linguagem natural, o que facilita a comunicacao entre desenvolvedores e stakeholders. Qual e o principal objetivo do BDD? a) Aumentar a cobertura de testes automatizados. b) Garantir que todos os requisitos sejam atendidos antes do inicio do desenvolvimento. c) Facilitar a comunicacao entre desenvolvedores e stakeholders por meio de exemplos concretos. d) Reduzir o tempo de desenvolvimento ao minimo. Resposta correta: c) Explicacao: O objetivo principal do BDD e facilitar a comunicacao entre os envolvidos no projeto, como desenvolvedores, testers e stakeholders, usando exemplos concretos que representam os comportamentos desejados do sistema. Qual e a linguagem usada no BDD para descrever os comportamentos? a) SQL b) Gherkin c) Python d) Java Resposta correta: b) Explicacao: A linguagem Gherkin e amplamente utilizada no BDD para descrever os comportamentos do sistema de forma simples e compreensivel para todas as partes envolvidas. Ela usa uma sintaxe baseada em palavras-chave como "Dado", "Quando" e "Entao". Em um cenario de BDD, o que significa "Dado" (Given)? a) A acao que o sistema deve realizar. b) A condicao inicial ou contexto do cenario. c) O resultado esperado apos uma acao. d) A funcao ou metodo a ser executado. Resposta correta: b) Explicacao: No BDD, a palavra-chave "Dado" (Given) e usada para descrever a condicao inicial ou o contexto no qual o comportamento sera executado. E a preparacao do cenario. No BDD, o que significa "Quando" (When)? a) A condicao que deve ser verificada para que o comportamento ocorra. b) A acao ou evento que aciona o comportamento esperado. c) O resultado ou saida do comportamento. d) A descricao de um erro ou excecao que ocorre. Resposta correta: b) Explicacao: A palavra-chave "Quando" (When) no BDD descreve a acao ou evento que deve ser realizado no sistema para testar o comportamento esperado. O que a palavra-chave "Entao" (Then) descreve em um cenario de BDD? a) O comportamento do sistema. b) A configuracao ou preparacao do teste. c) O resultado esperado apos a execucao da acao. d) A excecao que o sistema deve lancar. Resposta correta: c) Explicacao: "Entao" (Then) descreve o resultado esperado apos a execucao de uma acao. E a parte do cenario que descreve o comportamento esperado do sistema apos a interacao do usuario ou evento. Qual ferramenta e comumente usada em BDD para executar testes automatizados? a) JUnit b) Cucumber c) Selenium d) JIRA Resposta correta: b) Explicacao: O Cucumber e uma ferramenta amplamente utilizada em BDD para automatizar testes baseados na linguagem Gherkin. Ele permite escrever cenarios de teste de forma legivel e facil de entender. Quais sao os principais beneficios do BDD para equipes de desenvolvimento? a) Aumento da velocidade de desenvolvimento e foco exclusivo em testes. b) Melhora a comunicacao entre as partes interessadas e ajuda na compreensao dos requisitos. c) Reducao dos custos de desenvolvimento por eliminar a necessidade de testes. d) Maior complexidade no desenvolvimento, mas com maior controle sobre o codigo-fonte. Resposta correta: b) Explicacao: O BDD facilita a comunicacao entre todos os envolvidos no projeto e ajuda a garantir que os requisitos sejam compreendidos e atendidos. Ele tambem melhora a colaboracao e o entendimento entre desenvolvedores, testers e stakeholders. Em BDD, qual a principal diferenca entre uma historia de usuario e um cenario de teste? a) Nao ha diferenca; sao usados de forma intercambiavel. b) A historia de usuario descreve o que o usuario quer, enquanto o cenario de teste descreve como o comportamento sera verificado. c) A historia de usuario e mais tecnica, e o cenario de teste e mais geral. d) A historia de usuario descreve os testes, e o cenario de teste e apenas para desenvolvimento. Resposta correta: b) Explicacao: A historia de usuario descreve o que o usuario deseja ou precisa fazer, enquanto o cenario de teste detalha como esse comportamento sera validado, com exemplos especificos e acoes claras para verificar o comportamento do sistema. O que caracteriza um bom cenario de teste no BDD? a) Ele deve ser o mais tecnico possivel para que o desenvolvedor entenda claramente as acoes a serem feitas. b) Deve ser simples e focado em comportamentos especificos, utilizando uma linguagem clara e legivel para todos os envolvidos. c) Deve ser complexo, para cobrir todas as possibilidades de comportamento do sistema. d) Deve ser restrito aos aspectos tecnicos do codigo-fonte do sistema. Resposta correta: b) Explicacao: Um bom cenario de teste no BDD e simples e direto, descrevendo o comportamento do sistema de forma que todos os envolvidos no projeto possam entender facilmente. Ele utiliza uma linguagem acessivel e focada em exemplos concretos. O que e "TDD" (Test Driven Development) e como ele se relaciona com BDD? a) TDD e uma tecnica que foca em testes unitarios, enquanto BDD foca na descricao de comportamentos. b) TDD e BDD sao exatamente a mesma coisa, com a unica diferenca no nome. c) TDD descreve os requisitos de negocios, enquanto BDD testa o codigo-fonte. d) TDD e usado para integrar sistemas, e BDD para desenvolvimento de interfaces de usuario. Resposta correta: a) Explicacao: O TDD e uma pratica que foca em escrever testes antes do codigo, geralmente em nivel de unidade. O BDD, por outro lado, foca na definicao de comportamentos esperados de um sistema, utilizando uma linguagem natural mais acessivel a todos. Ambos sao complementares, mas com focos diferentes. Quais sao as vantagens de utilizar o BDD para validar requisitos de negocios? a) Testes mais rapidos e maior cobertura de codigo. b) Testes baseados em exemplos concretos que ajudam a garantir que os requisitos de negocios estao sendo atendidos de maneira clara e compreensivel. c) Garantia de que todos os testes unitarios serao bem-sucedidos. d) Maior controle sobre a infraestrutura de testes e reducao de erros humanos. Resposta correta: b) Explicacao: O BDD permite validar requisitos de negocios por meio de exemplos concretos e uma comunicacao clara entre desenvolvedores, testers e stakeholders, o que ajuda a garantir que o sistema esteja alinhado com as expectativas dos usuarios e do negocio. O que caracteriza a sintaxe da linguagem Gherkin no BDD? a) E uma linguagem puramente tecnica, focada em codigo-fonte. b) Ela e baseada em palavras-chave como "Dado", "Quando" e "Entao", que ajudam a descrever os comportamentos do sistema. c) Gherkin e uma linguagem utilizada para implementar testes automatizados diretamente no codigo. d) Ela utiliza apenas comandos SQL para descrever os testes. Resposta correta: b) Explicacao: A linguagem Gherkin utiliza palavras-chave como "Dado", "Quando" e "Entao" para descrever comportamentos de forma legivel, permitindo que todos os envolvidos no projeto, incluindo nao tecnicos, compreendam os requisitos e testes. Qual e o papel do "Developer" (Desenvolvedor) no processo de BDD? a) O desenvolvedor e responsavel apenas por implementar as funcionalidades descritas nos cenarios de teste. b) O desenvolvedor deve escrever os testes e garantir que todos os comportamentos estejam funcionando corretamente, de acordo com os cenarios definidos. c) O desenvolvedor apenas realiza os testes manuais, sem automatizar nenhum comportamento. d) O desenvolvedor nao tem participacao ativa no processo de BDD.Resposta correta: b) Explicacao: No BDD, o desenvolvedor tem um papel ativo tanto na criacao dos testes quanto na implementacao do codigo necessario para que os comportamentos descritos nos cenarios de teste sejam atendidos. **Qual e o principal beneficio de usar BDD em uma equipe que trabalha com metodologias ageis