Visão Geral
Bem-vindo ao desafio técnico de QA (Quality Assurance) da Novigi Solution. Este é um teste prático para avaliarmos suas habilidades em testes de API, análise crítica de requisitos e documentação.
API REST
Teste uma aplicação que gerencia produtos eletrônicos através de endpoints REST documentados.
Testes Automatizados
Crie testes automatizados cobrindo fluxos de sucesso e exceção.
Documentação
Documente sua estratégia, bugs encontrados e melhorias sugeridas.
Objetivos
O que será avaliado durante a correção do desafio:
Cobertura funcional dos cenários, incluindo fluxos de exceção. A completude dos testes é fundamental.
Boas práticas de desenvolvimento, código limpo e bem estruturado usando a linguagem Java.
Os testes devem ser claros e legíveis, facilitando sua compreensão e manutenção.
README com informações do projeto, como executar, plano de testes, bugs e melhorias encontradas.
Requisitos Obrigatórios
- Linguagem: Java
- Código final na branch main
- Boas práticas de desenvolvimento
- Cobertura funcional de cenários e fluxos de exceção
- Testes claros e bem estruturados
- README com instruções de execução e documentação
Bônus
Relatório Automático
Gerar relatório automático com resultados dos testes.
+PontosPipeline CI/CD
Configurar pipeline para execução automática dos testes.
+PontosRequisitos Técnicos
Pré-Requisitos
Java 11+
Java Development Kit (JDK) versão 11 ou superior instalado em sua máquina.
Maven ou Gradle
Gerenciador de dependências para o projeto Java.
Git
Controle de versão para versionamento do código.
Frameworks de Teste
JUnit 5+, TestNG ou equivalente. Cliente HTTP como RestAssured, HttpClient, etc.
Stack Sugerida
Test Framework: JUnit 5 ou TestNG
HTTP Client: REST Assured
Build Tool: Maven ou Gradle
Reporting: Allure, Surefire ou equivalente
Documentação da API
Endpoint base: https://dummyjson.com
GET /test
Descrição: Verificar o status da aplicação
Request
Response 200 OK
GET /users
Descrição: Buscar usuários para autenticação
Importante: Os campos username e password são cruciais para o negócio.
Request
Response 200 OK (Exemplo)
POST /auth/login
Descrição: Criar token para autenticação
Request
Request Body
Response 201 OK
GET /auth/products
Descrição: Buscar produtos com autenticação
Requer Autenticação: Bearer Token
Request
Response 200 OK
Response 403 Forbidden
Response 401 Unauthorized
POST /products/add
Descrição: Criar um novo produto
Nota importante: Os produtos criados não serão persistidos.
Request
Request Body
Response 201 OK
GET /products
Descrição: Buscar todos os produtos
Request
Response 200 OK (Exemplo - resumido)
GET /products/{id}
Descrição: Buscar um produto específico pelo ID
Request
Response 200 OK
Response 404 Not Found
Como Entregar o Desafio
Crie o repositório
Crie um repositório com visibilidade pública.
Implemente os Testes
Crie testes automatizados usando Java e frameworks de teste recomendados.
Documente
Adicione README com instruções, plano de testes, bugs e melhorias.
Push para Main
Envie seu código para a branch main do repositório.
README Deve Conter
- Descrição do Projeto: O que é o desafio
- Como Executar: Passo a passo para rodar os testes
- Plano de Testes: Estratégia e cenários cobertos
- Bugs Encontrados: Lista de bugs identificados (se houver)
- Melhorias Sugeridas: Sugestões de melhoria (se houver)
- Stack Utilizado: Versões das ferramentas e dependências
Exemplo de Execução
mvn clean install
# Executar todos os testes
mvn test
# Executar testes com relatório
mvn test -Dgroups=@api
Dicas
Testes de Sucesso
Comece testando os cenários felizes (happy path) - quando tudo funciona como esperado.
Testes de Exceção
Não esqueça de testar casos de erro: autenticação inválida, dados malformados, etc.
Dados de Teste
Use dados realistas e cobra diferentes cenários com variações nos dados de entrada.
Automação
Automação de testes é crucial. Quanto mais automatizado, melhor!
Dúvidas?
Se tiver dúvidas sobre o desafio, entre em contato com o time de Recursos Humanos da Novigi Solution.
Não deixe de fazer seu melhor! Boa sorte!