Este documento tem como objetivo avaliar suas habilidades e conhecimentos fundamentais na área de QA. Através deste teste buscamos entender sua capacidade de identificar e relatar bugs, criar casos de teste, criar testes de frontend e backend, criar teste automatizados e aplicar práticas de teste de maneira eficiente e eficaz.
Durante a realização do teste, você será avaliado sob as seguintes competências:
- Identificação e descrição de bugs: Sua habilidade em encontrar e descrever bugs de forma clara e detalhada.
- Sinalização de melhorias: Sua capacidade de apontar melhorias referente ao produto de forma coesa e explicativa.
- Criação de casos de teste: Sua capacidade de elaborar casos de teste em BDD que cobrem os diversos cenários existentes na aplicação.
- Testes automatizados: Sua capacidade de desenvolver e executar de forma lógica testes automatizados.
- Documentação: Sua habilidade em documentar os processos e resultados de testes de maneira organizada.
É necessário a instalação do Docker na máquina.
Preferencialmente, utilize alguma distribuição Linux para a configuração do ambiente e realização dos testes.
-
Descompacte o projeto enviado por e-mail e acesse a pasta raiz do projeto via terminal.
-
Dentro da pasta raiz do projeto você deve rodar o seguinte comando:
docker-compose up --build -d
. -
Após o comando ser rodado, você poderá acessar a aplicação pela URL:
http://localhost:5400
.
Outros endpoints que irá expor ao subir o projeto:
- Banco de dados (MySQL):
port 3400
- Backend (PHP):
port 8400
O projeto pode demorar para ser inicializado.
Após executar pela primeira vez o comando acima, pode deve subir o ambiente local pelo seguinte comando: docker-compose up -d
O projeto consiste em um CRUD de usuários para um grupo que contém diversas empresas.
Seu desafio será testar o projeto por completo, documentando o máximo de cenários possíveis que encontrar, desenvolver os testes automatizados para o projeto e criar os testes de API sobre as rotas disponibilizadas na área API.
O formulário de cadastro deve conter os campos de Nome, E-mail, Telefone, Data e Empresa como preenchimento obrigatório para realização do cadastro.
Abaixo você encontrará instruções que deve seguir:
- Casos de teste: Os casos devem ser documentados em BDD utilizando Gherkin para a documentação.
- Teste automatizado: O tipo de teste automatizado avaliado será o E2E. De preferência, utilize o framework Cypress para criação dos testes.
- Testes de API: Os testes de API devem ser documentados no formato BDD com Gherkin. De preferência, utilize o framework Postman ou Insomnia para a criação das rotas.
- Path:
/
- Parameters: None
- HTTP Method: GET
- Body: None
- Possible Returns:
- 200:
{"msg": "home"}
- Path:
/api/user
- Parameters: None
- HTTP Method: GET
- Body: None
- Possible Returns:
- 200: List of users
- Path:
/api/user/{id}
- Parameters:
id
: User ID- HTTP Method: GET
- Body: None
- Possible Returns:
- 200: User data
- 400: Bad request
- 500: Internal server error
- Path:
/api/user/create
- Parameters: None
- HTTP Method: POST
- Body:
{
"name": "string",
"e-mail": "string",
"companies": ["string"]
}
- Possible Returns:
- 201: Created user data
- 400: Bad request
- 500: Internal server error
- Path:
/api/user/{id}/update
- Parameters:
id
: User ID- HTTP Method: PATCH
- Body:
{
"name": "string",
"e-mail": "string",
"companies": ["string"]
}
- Possible Returns:
- 200: Updated user data
- 400: Bad request
- 500: Internal server error
- Path:
/api/user/{id}/delete
- Parameters:
id
: User ID- HTTP Method: DELETE
- Body: None
- Possible Returns:
- 200: Deletion confirmation
- 400: Bad request
- 500: Internal server error
- Path:
/api/company
- Parameters: None
- HTTP Method: GET
- Body: None
- Possible Returns:
- 200: List of companies
- Path:
/api/company/{id}
- Parameters:
id
: Company ID- HTTP Method: GET
- Body: None
- Possible Returns:
- 200: Company data
- 400: Bad request
- 500: Internal server error
- Path:
/api/company/create
- Parameters: None
- HTTP Method: POST
- Body:
{
"name": "string",
"cnpj": "string",
"adress": {
"cep": "string",
"country": "string",
"city": "string",
"street_location": "string",
"number": "string",
"district": "string"
}
}
- Possible Returns:
- 201: Created company data
- 400: Bad request
- 500: Internal server error
- Path:
/api/company/{id}/update
- Parameters:
id
: Company ID- HTTP Method: PATCH
- Body:
{
"name": "string",
"cnpj": "string",
"adress": {
"cep": "string",
"country": "string",
"state": "string",
"city": "string",
"street": "string",
"number": "string",
"district": "string"
}
}
- Possible Returns:
- 200: Updated company data
- 400: Bad request
- 500: Internal server error
- Path:
/api/company/{id}/delete
- Parameters:
id
: Company ID- HTTP Method: DELETE
- Body: None
- Possible Returns:
- 200: Deletion confirmation
- 400: Bad request
- 500: Internal server error
Para enviar seu projeto, siga os passos abaixo. É crucial o envio de todas as partes do teste para a sua avaliação seja completa.
-
Repositório no GitHub: Crie um repositório público no GitHub e forneça o link do repositório por e-mail.
-
Documentação: Envie a documentação como anexo no e-mail ou disponibilize-a publicamente se estiver usando uma plataforma de documentação.
-
Teste de API: As rotas criadas para o teste de API devem ser exportadas e enviadas em um arquivo com extensão
.json
. Preferencialmente, utilize as ferramentas Postman ou Insomnia para exportar as rotas.