Behavior Driven Development
Histórico de Revisão
Data | Versão | Descrição | Autor(es) |
---|---|---|---|
19/06/2023 | 0.1 | Primeira versão do BDD | Ana Luíza |
1. BDD
1.1. US01 - Eu, como usuário, desejo poder cadastrar um cliente para salvar suas informações no sistema.
1.1.1. Critério de Aceitação: Deve ser possível cadastrar clientes no sistema.
CASO VÁLIDO:
Cenário - Cadastrar cliente com sucesso
1. Dado que o usuário está na tela de cadastro de cliente
2. Quando o usuário preenche todos os campos obrigatórios corretamente. Por exemplo:
- Nome: João
- Telefone: 61 9 9999-9999
- Data de Nascimento: 19/02/1995
3. Então o sistema exibe uma mensagem de sucesso
CASO INVÁLIDO:
Cenário - Cadastrar cliente com **falha**
1. Dado que o usuário está na tela de cadastro de cliente
2. Quando o usuário não preenche todos os campos obrigatórios corretamente. Por exemplo:
- Nome: João
- Telefone:
- Data de Nascimento: 19/02/1995
3. Então o sistema exibe uma mensagem de erro
- O campo telefone deve ser preenchido!
4. E o sistema não cadastra o cliente
1.1.2. Critério de Aceitação: A página de cadastro de cliente deve ter campos para inserir as seguintes informações: Nome, endereço, número de telefone, CPF e e-mail, data de nascimento .
CASO VÁLIDO:
Cenário - inserir dados do cliente com sucesso
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o nome: Ana Luíza Fernandes, CPF: 064.998.785-99,telefone: (61)98888-8888, email: ana@email.com e a data de nascimento: 18/05/2003
3. Então com os dados válidos o sistema deve armazenar os dados cadastrais do cliente.
CASO INVÁLIDO:
Cenário - inserir dados do cliente com **falha**
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o nome: Ana Luíza Fernandes, CPF: 06.998.785-99,telefone: (6)98888-888, email: anaemail.com e a data de nascimento: 18/05/1000
3. Então com os dados inválidos o sistema não deve armazenar os dados cadastrais do cliente.
1.1.3. Critério de Aceitação: O sistema deve validar se o CPF inserido é válido.
CASO VÁLIDO:
Cenário - inserir CPF válido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o CPF: 064.998.785-99
3. Então com o CPF válido o sistema deve armazenar os dados cadastrais do cliente.
CASO INVÁLIDO:
Cenário - inserir CPF inválido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o CPF: 06.998.785-99
3. Então com o CPF inválido o sistema não deve armazenar os dados cadastrais do cliente.
1.1.4. Critério de Aceitação: O sistema deve validar se o e-mail inserido é válido.
CASO VÁLIDO:
Cenário - inserir e-mail válido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o e-mail:ana@email.com
3. Então com o e-mail válido o sistema deve armazenar os dados cadastrais do cliente.
CASO INVÁLIDO:
Cenário - inserir e-mail inválido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o e-mail:anaemail.com
3. Então com o e-mail inválido o sistema não deve armazenar os dados cadastrais do cliente.
1.1.5. Critério de Aceitação: O sistema deve validar se o telefone inserido é válido.
CASO VÁLIDO:
Cenário - inserir telefone válido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o telefone:(61)98888-8888
3. Então com o telefone válido o sistema deve armazenar os dados cadastrais do cliente.
CASO INVÁLIDO:
Cenário - inserir telefone inválido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente, cujo o telefone:(6)98888
3. Então com o telefone inválido o sistema não deve armazenar os dados cadastrais do cliente.
1.1.6. O sistema deve conter máscara para os campos de telefone e CPF.
CASO VÁLIDO:
Cenário - contém "máscara" para os campos de telefone e CPF
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente e inserir o CPF e o telefone, o sistema deve conter máscara para os campos de telefone e CPF.
3. Então com o telefone e CPF válidos o sistema deve armazenar os dados cadastrais do cliente.
CASO INVÁLIDO:
Cenário - não contém "máscara" para os campos de telefone e CPF
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente
2. Quando o usuário começar a cadastrar o cliente e inserir o CPF e o telefone, o sistema não deve conter máscara para os campos de telefone e CPF.
3. Então com o telefone e CPF inválidos o sistema não deve armazenar os dados cadastrais do cliente.
1.1.7. Após o cadastro, o sistema deve exibir uma mensagem de sucesso do cadastro.
CASO VÁLIDO:
Cenário - exibir mensagem de sucesso do cadastro
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente.
2. Quando o usuário começar a cadastrar o cliente e inserir todos os dados válidos, cujo o nome: Ana Luíza Fernandes, CPF: 064.998.785-99,telefone: (61)98888-8888, email: ana@email.com e a data de nascimento: 18/05/2003
3. Então o sistema deve exibir uma mensagem de sucesso do cadastro.
CASO INVÁLIDO:
Cenário - não exibir mensagem de sucesso do cadastro
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar o cliente.
2. Quando o usuário começar a cadastrar o cliente e inserir todos os dados inválidos, cujo o nome: Ana Luíza Fernandes, CPF: 06.998.785-99,telefone: (6)98888-888, email: anaemail.com e a data de nascimento: 18/05/1000
3. Então o sistema não deve exibir uma mensagem de sucesso do cadastro.
1.2. US02 - Eu, como usuário, desejo uma lista para visualizar as informações do cliente no sistema.
1.2.1. A lista de clientes deve possuir uma página própria.
CASO VÁLIDO:
Cenário - exibir lista de clientes
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário entrar na aba de listar clientes
3. Então o sistema deve exibir uma lista de clientes
CASO INVÁLIDO:
Cenário - não exibir lista de clientes
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário não tiver cadastrado nenhum cliente
3. Então o sistema não deve exibir uma lista de clientes
1.2.2. Deve se possível vizualizar informações básicas na lista: Nome, Telefone.
CASO VÁLIDO:
Cenário - exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário entrar na aba de listar clientes
3. Então o sistema deve exibir uma lista de clientes com as informações básicas, como: Ana Luíza Fernandes, telefone: (61)98888-8888
CASO INVÁLIDO:
Cenário - não exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário entrar na aba de listar clientes
3. Então o sistema não deve exibir uma lista de clientes com as informações básicas, como: Ana Luíza Fernandes, telefone: (61)98888-8888
1.2.3. Deve ser possível filtrar a lista com base em informações específicas: Nome, CPF.
CASO VÁLIDO:
Cenário - filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário entrar na aba de listar clientes e filtrar a lista com base em informações específicas
3. Então o sistema deve exibir uma lista de clientes com as informações específicas, como: Ana Luíza Fernandes, CPF: 064.998.785-99
CASO INVÁLIDO:
Cenário - não filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de listar clientes
2. Quando o usuário entrar na aba de listar clientes e não filtrar a lista com base em informações específicas
3. Então o sistema não deve exibir uma lista de clientes com as informações específicas, como: Ana Luíza Fernandes, CPF: 064.998.785-99
1.5. US03 - Eu, como usuário, desejo poder cadastrar um novo produto para manter um estoque atualizado.
1.5.1. Deve ser possível cadastrar produtos.
CASO VÁLIDO:
Cenário - cadastrar produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto
3. Então o sistema deve exibir os campos: Nome do produto:Rayban, Quantidade: 10, Valor: R$500,00, data de cadastro: 01/01/2021
CASO INVÁLIDO:
Cenaŕio - não cadastrar produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e não inserir os dados do produto
3. Então o sistema não deve cadastrar produtos
1.5.2. A página de cadastro deve possuir os seguintes campos:Nome do Produto, Quantidade, Valor, Data de Cadastro
CASO VÁLIDO:
Cenário - exibir campos para cadastrar produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto
3. Então o sistema deve exibir os campos: Nome do produto:Rayban, Quantidade: 10, Valor: R$500,00, data de cadastro: 01/01/2021
CASO INVÁLIDO:
Cenário - não exibir campos para cadastrar produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e não começar a inserir os dados do produto
3. Então o sistema não deve exibir os campos
1.5.3. O sistema deve validar se a quantidade informada é válida: valor positivo e inteiro.
CASO VÁLIDO:
Cenário - validar se a quantidade informada é válida
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto, como quantidade: 10
3. Então o sistema deve validar a quantidade informada
CASO INVÁLIDO:
Cenário - não validar se a quantidade informada é válida
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto, como quantidade: -10
3. Então o sistema não deve validar a quantidade informada
1.5.4. O sistema deve validar se o valor informado é válido: valor positivo e real.
CASO VÁLIDO:
Cenário - validar se o valor informado é válido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto, como valor: R$500,00
3. Então o sistema deve validar que o valor informado é válido
CASO INVÁLIDO:
Cenário - não validar se o valor informado é válido
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto, como valor: -500,00
3. Então o sistema não deve validar que o valor informado é válido
1.5.5. Após o cadastro, o sistema deve exibir uma mensagem de sucesso do cadastro.
CASO VÁLIDO:
Cenário - exibir mensagem de sucesso do cadastro
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e começar a inserir os dados do produto, como Nome do produto:Rayban, Quantidade: 10, Valor: R$500,00, data de cadastro: 01/01/2021 e clicar em cadastrar
3. Então o sistema deve exibir uma mensagem de sucesso do cadastro
CASO INVÁLIDO:
Cenário - não exibir mensagem de sucesso do cadastro
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de cadastrar produtos
2. Quando o usuário entrar na aba de cadastrar produtos e não começar a inserir os dados do produto, como Nome do produto:Rayban, Quantidade: -10, Valor: -500,00, data de cadastro: 01/01/2021 e clicar em cadastrar
3. Então o sistema não deve exibir uma mensagem de sucesso do cadastro
1.6. US04 - Eu, como usuário, desejo uma lista de produtos para poder visualizar a quantidade disponível.
1.6.1. A lista de produtos deve possuir uma página própria.
CASO VÁLIDO:
Cenário - exibir lista de produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos
3. Então o sistema deve exibir uma lista de produtos
CASO INVÁLIDO:
Cenário - não exibir lista de produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário não tiver nenhum produto cadastrado
3. Então o sistema não deve exibir uma lista de produtos
1.6.2. Deve se possível vizualizar informações básicas na lista: Nome do Produto, Quantidade, Valor.
CASO VÁLIDO:
Cenário - exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos
3. Então o sistema deve exibir uma lista de produtos com as informações básicas: Nome do Produto: Rayban, Quantidade: 10, Valor:R$500,00, data de cadastro: 01/01/2021
CASO INVÁLIDO:
Cenário - não exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário não tiver nenhum produto cadastrado
3. Então o sistema não deve exibir uma lista de produtos com as informações básicas
1.6.3. Deve ser possível filtrar a lista com base em informações específicas: Quantidade, Valor.
CASO VÁLIDO:
Cenário - filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos e começar a filtrar a lista com base em informações específicas, como quantidade: 10
3. Então o sistema deve filtrar a lista com base em informações específicas inseridas
CASO INVÁLIDO:
Cenário - não filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos e começar a filtrar a lista com base em informações que não existem, como quantidade: -10
3. Então o sistema não deve filtrar a lista com base em informações específicas inseridas
1.7. US05 - Eu, como usuário, desejo ser notificado quando a quantidade de um determinado produto estiver baixa para que possa realizar novos pedidos.
1.7.1. A lista de produtos deve possuir uma página própria.
CASO VÁLIDO:
Cenário - exibir lista de produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos e exista produtos cadastrados
3. Então o sistema deve exibir uma lista de produtos
CASO INVÁLIDO:
Cenário - não exibir lista de produtos
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário não tiver nenhum produto cadastrado
3. Então o sistema não deve exibir uma lista de produtos
1.7.2. Deve se possível vizualizar informações básicas na lista: Nome do Produto, Quantidade, Valor.
CASO VÁLIDO:
Cenário - exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos
3. Então o sistema deve exibir uma lista de produtos com as informações básicas: Nome do Produto: Rayban, Quantidade: 10, Valor:R$500,00, data de cadastro: 01/01/2021
CASO INVÁLIDO:
Cenário - não exibir informações básicas na lista
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário não tiver nenhum produto cadastrado
3. Então o sistema não deve exibir uma lista de produtos com as informações básicas
1.7.3. Deve ser possível filtrar a lista com base em informações específicas: Quantidade, Valor.
CASO VÁLIDO:
Cenário - filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos e começar a filtrar a lista com base em informações específicas, como nome: Rayban
3. Então o sistema deve filtrar a lista com base em informações específicas inseridas
CASO INVÁLIDO:
Cenário - não filtrar a lista com base em informações específicas
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de lista de produtos
2. Quando o usuário entrar na aba de lista de produtos e começar a filtrar a lista com base em informações que não existem, como nome: Salmão
3. Então o sistema não deve filtrar a lista com base em informações específicas inseridas
1.8. US06 - Eu, como usuário, desejo realizar o cadastro de uma venda a fim de manter um histórico de vendas.
1.8.1. Deve ser possível realizar uma venda
CASO VÁLIDO:
Cenário - realizar uma venda
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e cadastrar sua venda
3. Então o sistema deve exibir uma página de venda
CASO INVÁLIDO:
Cenário - não realizar uma venda
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não cadastrar sua venda
3. Então o sistema não deve exibir uma página de venda
1.8.2. A página de venda deve possuir os seguintes campos: Cliente, Produtos e Desconto.
CASO VÁLIDO:
Cenário - exibir campos na página de venda
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda
3. Então o sistema deve exibir uma página de venda com os seguintes campos: Cliente, Produtos e Desconto.
CASO INVÁLIDO:
Cenário - não exibir campos na página de venda
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não existir nenhum Produto cadastrado e cliente cadastrado
3. Então o sistema não deve exibir uma página de venda
1.8.3. O usuário deve selecionar um cliente cadastrado.
CASO VÁLIDO:
Cenário - selecionar um cliente cadastrado
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e selecionar um cliente cadastrado, cujo nome é: Ana Luiza Fernandes
3. Então o sistema deve exibir uma página de venda com o cliente selecionado
CASO INVÁLIDO:
Cenário - não selecionar um cliente cadastrado
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não selecionar um cliente cadastrado
3. Então o sistema não deve exibir uma página de venda
1.8.4. O usuário deve selecionar um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto.
CASO VÁLIDO:
Cenário - selecionar um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto, cujo são:Ana Luiza Fernandes, Rayban, 2
3. Então o sistema deve exibir uma página de venda com o cliente e os produtos selecionados
CASO INVÁLIDO:
Cenário - não selecionar um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto
3. Então o sistema não deve exibir uma página de venda
1.8.5. Após a conclusão da venda, o sistema deve exibir uma mensagem de venda realizada.
CASO VÁLIDO:
Cenário - exibir mensagem de venda realizada
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto e concluir a venda
3. Então o sistema deve exibir uma mensagem de venda realizada
CASO INVÁLIDO:
Cenário - não exibir mensagem de venda realizada
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto e concluir a venda
3. Então o sistema não deve exibir uma mensagem de venda realizada
1.8.6. Após a conclusão da venda, a compra deve ser incluída no histórico de compras do cliente.
CASO VÁLIDO:
Cenário - incluir a compra no histórico de compras do cliente
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto e concluir a venda
3. Então o sistema deve incluir a compra no histórico de compras do cliente
CASO INVÁLIDO:
Cenário - não incluir a compra no histórico de compras do cliente
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto e concluir a venda
3. Então o sistema não deve incluir a compra no histórico de compras do cliente
1.8.7. Após a conclusão da venda, os produtos comprados devem ser removidos do estoque.
CASO VÁLIDO:
Cenário - remover os produtos comprados do estoque
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e selecionar o cliente e um ou mais produtos cadastrados bem como a quantidade que o cliente comprará de cada produto e concluir a venda
3. Então o sistema deve remover os produtos comprados do estoque
CASO INVÁLIDO:
Cenário - não remover os produtos comprados do estoque
1. Dado que o usuário irá abrir o sistema da SoSÓptica e entrará na aba de venda
2. Quando o usuário entrar na aba de venda e não concluir a venda pois não há produtos cadastrados no estoque
3. Então o sistema não deve remover os produtos comprados do estoque