bdd warriors - regras
Transcrição
bdd warriors - regras
1 CONTEÚDO Regras Cartas, Contador de Pontos e Fichas Apêndice A – Behaviour-driven Development BDD WARRIORS - REGRAS Cenário: Jogadores devem receber 5 cartas Dado que há entre 2 e 5 jogadores E as cartas foram embaralhadas E cada jogador tem sua pilha de fichas Quando forem distribuídas as cartas Então cada jogador deve ter 5 cartas na mão, voltadas para si E as demais ficam na pilha de compras voltadas para baixo Cenário: Jogador que assistiu um filme de Ficção Científica/Fantasia mais recentemente começa o jogo Dado uma jogadora “Alice” que assistiu “Cidade das Sombras” em “05/01/2015” E uma jogadora “Bobbie” que assistiu “O Hobbit” em “01/01/2015” E uma jogadora “Carol” que assistiu “Velozes e Furiosos” em “10/01/2015” Quando o jogo iniciar Então “Alice” deve fazer a primeira jogada E o jogo deve prosseguir em sentido horário Esquema de Cenário: Cenário do jogo pode iniciar fora de ordem Dado que é a vez da jogadora Alice E ela tem uma carta com a cláusula <cláusula> Quando ela começar um novo cenário com essa carta Então esta jogada será considerada válida E a jogadora coloca sua ficha sobre a carta jogada E compra uma nova carta ficando com 5 na mão Exemplos: |cláusula | Então | E | Dado | Quando | | | | | Cenário: Jogadores contabilizam pontos ao completar cenário Dado o seguinte cenário incompleto |Carta | Pontos | Jogador | |Dado um vampiro | 1 | Alice | |Então ele deve virar pó | 1 | Carol | Quando a jogadora Bobbie jogar a carta “Quando for atingido por uma estaca” de 1 ponto nesse cenário Então Bobbie deve avançar dois pontos por completar o cenário E Alice deve avançar um ponto referente à sua carta E Bobbie deve avançar um ponto referente à sua carta E Carol deve avançar um ponto referente à sua carta E o cenário deve ser recolhido para a pilha de descarte 2 Cenário: Jogo termina quando um jogador atingir um limite de pontos Dado que o limite estabelecido é de “15” pontos E que “Alice” tem “10” pontos E que “Bobbie” tem “13” pontos Quando “Bobbie” marcar “2” pontos Então o jogo será encerrado com “Bobbie” como vencedora Cenário: Jogo termina quando o jogo atingir um limite de tempo Dado que o limite estabelecido é de “30” minutos E que “Alice” tem “8” pontos E que “Bobbie” tem “4” pontos Quando o tempo decorrido atingir o limite Então o jogo será encerrado com “Alice” como vencedora Cenário: Um cenário só é considerado completo se fizer sentido Dado que uma jogadora jogou uma carta em um cenário E o cenário passou a conter uma cláusula Dado, uma Quando e uma Então E a jogadora leu o cenário em voz alta completando as frases de forma lógica e de acordo com as regras de BDD Quando a jogadora der um título único para o cenário Então o cenário deve ser considerado completo Esquema de Cenário: Jogador joga uma carta de ação Dado que é a vez de uma jogadora Quando ela optar por uma carta do tipo ação como <carta> Então os jogadores devem seguir as instruções daquela carta específica E encerrar a vez da jogadora atual Exemplos: |carta | |Trocar uma carta com alguém | |Pegar uma cláusula do lixo | Esquema de Cenário: Leitura de carta coringa deve incluir a palavra-chave Dado um cenário com uma cláusula <tipo> faltando Quando a carta “ninja” for colocada nesse cenário Então <frase> será considerada <status> Exemplos: | | | | | | tipo Dado Então Dado Quando Dado | | | | | | frase Dado um ninja Então o ninja deve subir no telhado Dado um ninja com um shuriken Quando o ninja chegar em casa Dado um pirata no seu navio | | | | | | status válida válida válida válida inválida | | | | | | Esquema de Cenário: Cartas coringas devem completar um cenário Dado um cenário com duas cláusulas obrigatórias faltando Quando uma jogadora jogar uma <carta coringa> valendo por uma cláusula Então esta jogada não será considerada válida E a jogadora terá que pensar em algo melhor Exemplos: |carta coringa | | ninja | | cãozinho | 3 Cenário: Trocar uma carta com alguém Dado que é a sua vez Quando jogar essa carta Então troque uma carta com alguém sem ver as cartas dela, descarte esta e compre uma Cenário: Trocar uma carta com alguém Dado que é a sua vez Quando jogar essa carta Então troque uma carta com alguém sem ver as cartas dela, descarte esta e compre uma Cenário: Baixar duas cartas de uma vez Dado que é a sua vez Quando jogar essa carta Então baixe duas cartas em um cenário e compre três, ficando com 5 na mão Cenário: Baixar duas cartas de uma vez Dado que é a sua vez Quando jogar essa carta Então baixe duas cartas em um cenário e compre três, ficando com 5 na mão Cenário: Escolher cláusula do lixo Dado que é a sua vez Quando jogar essa carta Então escolha uma carta de cláusula do lixo e não compre outra Cenário: Escolher cláusula do lixo Dado que é a sua vez Quando jogar essa carta Então escolha uma carta de cláusula do lixo e não compre outra Cenário: Trocar uma carta de cenário Dado que é a sua vez Quando jogar essa carta Então passe uma cláusula para outro cenário, mantendo a ficha, descarte esta e compre uma Cenário: Trocar uma carta de cenário Dado que é a sua vez Quando jogar essa carta Então passe uma cláusula para outro cenário, mantendo a ficha, descarte esta e compre uma Cenário: Comprar duas cartas Dado que é a sua vez Quando jogar essa carta Então compre duas cartas e descarte qualquer uma carta sua mão, e depois descarte esta Cenário: Comprar duas cartas Dado que é a sua vez Quando jogar essa carta Então compre duas cartas e descarte qualquer uma carta sua mão, e depois descarte esta Cenário: Bloquear alguém por um turno Dado que é a sua vez Quando jogar essa carta Então selecione alguém para não jogar o próximo turno, descarte esta e compre uma Cenário: Bloquear alguém por um turno Dado que é a sua vez Quando jogar essa carta Então selecione alguém para não jogar o próximo turno, descarte esta e compre uma Cenário: Alguém descarta uma carta Dado que é a sua vez Quando jogar essa carta Então escolha alguém para descartar uma carta e comprar outra, descarte esta e compre uma Cenário: Alguém descarta uma carta Dado que é a sua vez Quando jogar essa carta Então escolha alguém para descartar uma carta e comprar outra, descarte esta e compre uma 3 pts 3 pts _____ cãozinho ____________ _____ ninja ____________ 4 3 pts _____ sorvete ____________ 3 pts _____ raios laser ____________ 3 pts _____ aranhas ____________ 3 pts _____ no espaço ____________ 3 pts _____ submarino ____________ 3 pts _____ Chuck Norris ____________ 2 pts Dado _____________________ 2 pts Dado ______________________ 2 pts Dado ________________ 2 pts Dado ____________________ 2 pts Dado que _______________ 1 pt Dado um robô insano _________ 2 pts Dado um robô ______________ 1 pt Dado um detetive amador 1 pt Dado uma policial veterana 1 pt Dado uma investigadora particular 5 1 pt Dado um avião _________ 1 pt Dado uma espaçonave _________ 1 pt Dado um balão _________ 1 pt Dado um foguete teleguiado 1 pt Dado uma espaçonave 1 pt Dado uma alienígena 1 pt Dado um ônibus com _________ 1 pt Dado uma cientista ____________ 1 pt Dado que ______ foi irradiado com raios ________ 1 pt Dado que Alice é uma lobisomem 1 pt Dado que Bob é um deus nórdico ___ 1 pt Dado que Bob é um mero mortal 1 pt Dado um vampiro _________ 1 pt Dado que Bob foi mordido por _____ 1 pts Dado que Alice está numa ilha _____ 1 pt Dado que Alice é uma zumbi 6 2 pts Quando ______________________ 2 pts Quando ______________________ 2 pts Quando ______________________ 2 pts Quando _______________________ 2 pts Quando ______________________ 1 pt Quando ____ atirar __________ 1 pt Quando ___ chegar em _________ 1 pt Quando ___ chegar em _________ 1 pt Quando ____ atacar __________ 1 pt Quando ____ atacar __________ 1 pt Quando ____ encontrar __________ 1 pt Quando ____ encontrar __________ 1 pt Quando _______ lançar _________ 1 pt 1 pt Quando ____ em frente de ____ 1 pt Quando ___estiver a __ metros de __ Quando __ estiver a __metros de___ 7 1 pt Quando passarem-se __________ 1 pt Quando _____ ouvir _________ 1 pt Quando _____ estiver com fome 1 pt Quando ____ pressionar _______ 1 pt Quando _____ passar de _____ 1 pt Quando ___ passar para o estado ___ 1 pt Quando for noite ___________ 1 pt Quando for dia __________________ 1 pt 1 pt Quando for dado o comando _______ Quando for dado o comando _______ 2 pts Então ______________________ 2 pts Então ______________________ 2 pts Então ____ não deve __________ 2 pts Então ____________________ 2 pts Então ______ não deve ___________ 2 pts Então _____________________ 8 1 pt Então Bob deve ______________ 1 pt Então _____ deve atingir _________ 1 pt Então _____ deve conseguir _______ 1 pt Então __ deve se transformar em ___ 1 pt Então _____ deve explodir 1 pt Então _____ deve escolher ______ 1 pt Então ______ deve ficar verde 1 pt Então __ deve estar na forma humana 1 pt Então _____ deve correr para _____ 1 pt Então _____ deve correr para _____ 1 pt 1 pt Então _____ não deve aparecer _____ Então _____ deve prender _______ 1 pt Então _____ deve desviar de _____ 1 pt Então _____ deve desviar de _____ 1 pt Então ____ deve colocar _____ 1 pt Então ____ deve colocar _____ 9 1 pt Então _____ deve aterrissar ______ 1 pt Então _____ deve aterrissar ______ 1 pt Então ____ deve chamar reforços 2 pts E ___ tem ___________________ 2 pts E ______________________ 2 pts E ______________________ 2 pts E ______________________ 2 pts E _____ não deve ______________ 2 pts E _____ deve _______________ 2 pts E que _________________ 2 pts E que ______ tem __________ 2 pts E uma mesa com _____ e um cérebro 2 pts E está chovendo 2 pts E um martelo _________ 2 pts E um martelo comum 2 pts E um crime ocorrido 10 Contador de Pontos (pode ser substituído por ir anotando num papel) 20 20 20 20 20 20 19 19 19 19 19 19 18 18 18 18 18 18 17 17 17 17 17 17 16 16 16 16 16 16 15 \o/ 15 \o/ 15 \o/ 15 \o/ 15 \o/ 15 \o/ 14 14 14 14 14 14 13 13 13 13 13 13 12 12 12 12 12 12 11 11 11 11 11 11 10 10 10 10 10 10 9 9 9 9 9 9 8 8 8 8 8 8 7 7 7 7 7 7 6 6 6 6 6 6 5 5 5 5 5 5 4 4 4 4 4 4 3 3 3 3 3 3 2 2 2 2 2 2 1 1 1 1 1 1 0 0 0 0 0 0 11 Fichas (pode ser substituído por picotar papel colorido) 12 Apêndice A – Behaviour-driven Development BDD (Behaviour-Driven Development) é uma técnica colaborativa para implementar uma aplicação através da descrição do seu comportamento do ponto de vista dos stakeholders.Utilizada juntamente com automação de testes funcionais e TDD, ela permite a geração de uma documentação viva, onde mudanças tanto na especificações como na aplicação são detectadas pelos testes automatizados. Algumas dicas sobre BDD: - O cenário deve ser descrito em termos de Dados (Dado que... E...), Evento (Quando...) e Resultados (Então... E...) - A linguagem ubíqua permite o entendimento pela equipe técnica e de negócios e os exemplos criados em conjunto facilitam a discussão - Uso do termo Deve ajuda a manter o teste focado e a questionar sua necessidade - A ordem dos cenários ajuda a determinar o comportamento mais importante - Os Dados devem definir tudo o que for requerido para a execução, porém não mais do que isso - Uma situação com “OU” necessita de dois cenários (ou de um esquema de cenário) -Parâmetros devem descrever valores ou estados e não comportamentos Critério de aceitação: um caixa eletrônico não deve permitir tirar dinheiro se o correntista não tiver saldo. Um critério de aceitação pode ser coberto por um ou mais cenários. Nesse caso precisamos de um teste positivo e um negativo. Contexto: Dado um caixa eletrônico com R$1000 em notas de 50 E um limite de saque de R$ 300 O contexto é válido para todos os cenários abaixo e é composto apenas de précondições. Ele é útil para deixar os cenários só com o essencial para seu entendimento. Cenário: Correntista deve tirar dinheiro se tiver saldo Dado que sou uma correntista E tenho R$ 100 de saldo na minha conta Quando eu solicitar R$100 Então deve receber R$100 E a minha conta deve ficar com saldo 0 O título do cenário deve ser único e tornar claro o que está sendo validado Deve existir apenas uma condição de disparo (Quando). “R$100” e “0” são parâmetros, de forma que essas cláusulas podem ser reaproveitadas na automação com valores diferentes. Esquema de Cenário: Correntista não deve tirar dinheiro se não tiver saldo Dado que sou uma correntista E tenho <valorSaldo> de saldo na minha conta Quando eu solicitar <valorPedido> Então deve ser mostrado “Saldo Insuficiente” E a minha conta deve ficar com saldo <valorSaldo> Exemplos: | valorSaldo | valorPedido| | 100 | 150 | |0 | 50 | Esquemas de cenários levam a parametrização a outro nível. Nesse caso dois cenários serão executados, um para cada linha dos exemplos com os parâmetros substituídos pelos respectivos valores daquela linha.