Cenário de Teste
Feature: Controle de ferramenta
Cenário: Cadastrar Ferramenta com dados preenchidos corretamente
Dado que estou na página de cadastro de ferramenta
Quando digito o nome e link
E clico em cadastrar
Então recebo uma notificação de “Ferramenta cadastrada com sucesso”
E sou redirecionado para a página ferramentas
Esquema do cenário: Cadastrar Ferramenta com algum campo em branco
Dado que estou na página de cadastro de ferramenta
Quando digito <nome> e <link>
E clico em cadastrar
Então recebo uma mensagem de erro no campo não preenchido.
| <nome> | <link> |
|---|---|
| GitHub | |
| www.drive.google.com |
Esquema do cenário: Cadastrar Ferramenta com algum campo inválido
Dado que estou na página de cadastro de ferramenta
Quando digito <nome> e <link>
E clico em cadastrar
Então recebo uma mensagem de erro informando que o campo link é inválido
| <nome> | <link> |
|---|---|
| GitHub | chorumelas |
| Google Drive | 123#$%$# |
Feature: Controle de Usuário
Background:
Dado que eu clico no botão cadastre-se da tela de Login
Cenário: Cadastrar Usuário com sucesso
Quando digito o nome, e-mail, matricula e informo minhas credenciais nas ferramentas
E clico em cadastrar
Então recebo uma notificação de “Usuário cadastrado com sucesso”
E sou redirecionado para a página de login.
Esquema do Cenário: Cadastrar Usuário sem informar algum campo
Quando não preencho o <nome> ou <e-mail> ou <matrícula> ou <ferramenta_nome> ou <ferramenta_usuario> ou <ferramenta_senha>
E clico em cadastrar
Então recebo uma notificação de erro no campo não preenchido.
Exemplos: Não informar nome,email e matrícula.
| <nome> | <e-mail> | <matrícula> |
|---|---|---|
| [email protected] | 11111BSI5587 | |
| nome2 | 11111BSI5587 | |
| 11111BSI5587 | ||
| nome3 | [email protected] | 11111BSI55872 |
Exemplos: Não informar ferramentas.
| <ferramenta_nome> | <ferramenta_usuario> | <ferramenta_senha> |
|---|---|---|
| Github | fulano | |
| sicrano | 123123444 | |
| 11123223 | ||
Feature: Controle de Projeto
Background:
Dado que estou logado no sistema.
Quando clico no botão cadastrar novo projeto.
Cenário: Cadastrar projeto com sucesso
E informo todos os campos corretamente
Então recebo uma notificação de que o projeto foi salvo com sucesso
E sou redirecionado para a página principal.
E o projeto será criado em cada uma das ferramentas escolhidas.
Esquema de Cenário: Cadastrar projeto sem informar algum campo
E não o <nome> ou <cliente> ou <equipe> ou <ferramenta>.
Então recebo uma notificação de que faltou o preenchimento daquele campo
E o projeto não é criado.
Exemplos:
| <nome> | <cliente> | <equipe> | <ferramenta> |
|---|---|---|---|
| Fulano | [{nome: “”, função: Desenvolvedor,,},{nome: “fulano”, função: “”}] | [{nome: “”},{nome: “Github”}] | |
| sicrano | [{nome: “sicrano”, função: Desenvolvedor},{nome: “fulano”, função: “”}] | [{nome: “Drive”},{nome: “Github”}] |
Os testes acima não foram implementados pois após a primeira entrega ficou decidido que iríamos utilizar o django admin para fazer as operações de CRUD.
Feature: Integração Github
Background:
Dado que estou logado no sistema.
e possuo projetos cadastrados
Cenário: Cadastrar projeto no Github
Quando clico no botão cadastrar projeto
Então Sou redirecionado para a página principal de projetos
E um repositório é criado no github com o nome do projeto
E os participantes são incluídos como colaboradores do projeto
Cenário: adicionar colaboradores ao projeto
Quando clico no botão atualizar participantes
Então Sou redirecionado para a página principal de projetos
E os participantes que forem selecionados no projeto serão adicionados como colaboradores no repositório
Cenário: remover colaboradores do projeto
Quando clico no botão atualizar participantes
Então Sou redirecionado para a página principal de projetos
E os participantes que forem deselecionado não serão mais colaboradores do repositório do projeto
O primeiro passo para que os testes de integração funcionem é ter um objeto contendo um usuário logado com o github. Porém, ao tentar logar o usuário o behave exibe o seguinte erro no console: “selenium.common.exceptions.WebDriverException: Message: {"errorMessage":"Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: \"script-src assets-cdn.github.com\".\n","request":{"objectName":"","statusCode":200,"headers":{"Cache":"no-cache","Content-Type":"application/json;charset=UTF-8"}}}”.
Após pesquisar sobre o erro apresentado, achamos um link onde a pessoa teve exatamente o mesmo problema. Neste link, um usuário diz que isso seria resolvido com o “Ghostdriver” na versão 2.0, porém a última versão do Phantomjs, que é o responsável pelo problema, contém o “Ghostdriver” na versão 1.2.0. Aparentemente a versão do Phantomjs que contará com a versão 2.0 do “Ghostdriver” será a 2.5 que ainda está em desenvolvimento. Sendo assim, ficamos impossibilitados de realizar a implementação dos testes.
Na última entrega, foi sugerido criar um usuário e utilizar o token como seu password para poder realizar os testes. Conforme explicado na seção 3.8.4, mesmo colocando o token na mão não foi possível autenticar o usuário. Não conseguimos descobrir o porque que o mesmo não era autenticado mesmo passando usuário e senha na mão. Acreditamos ser alguma restrição imposta pelo Django Admin. Sendo assim, os testes continuaram passando com o comando “pass”.