Primeiramente, não se preocupe em entregar algo perfeito, sério, não é isso que queremos neste desafio. O propósito dele é simples: queremos conhecer suas abordagens para entender regras de negócios, coletar cenários de testes, fluxos e afins.
Topa?
Trabalhamos com APIs (REST e GraphQL), temos Apps (Android e iOS) e portais web. Contudo para este desafio pedimos o foco em duas situações apenas:
- Levantamento de cenários e automatizações de testes em portais web;
- Validação de APIs.
Queremos que você acesse a página da Juntos Somos+, mapeie e automatize os testes das principais funcionalidades dessa página.
Algumas funcionalidades:
- A landing page possui a função
entrar
na parte superior direita. Ao ser clicado, é mostrado um formulário para login no loyalty; - Cadastros para os fomentadores (donos de lojas) e executores (profissionais do mercado como por exemplo pedreiros) de obras no botão
quero participar
na parte superior direita, com listagem de profissões.
O site StackExchange
possui uma documentação de suas APIs disponível no link abaixo:
Veja por exemplo a parte de users. O que você vê como passível de teste? Quais são os cenários? Tente nos mostrar como testar uma API validando seu contrato e afins.
Abaixo seguem algumas dicas falando de tecnologia e tals que podem endossar ou não a sua resposta ao desafio:
- Selenium como ferramenta de automatização;
- Embora o teste não tenha algo voltado para Apps (por enquanto), Appium é uma ferramente bastante utilizada no mercado;
- Uso do Gherkin para a criação dos cenários com o auxílio do Cucumber;
- Não precisa se prender a ferramentas dedicadas para Java, Capybara ou qualquer outra ferramenta de mercado (como Golem) é bem-vinda;
- O teste deve ser executado no Google Chrome. Se preferir, pode ser headless, tanto faz;
- É possível baixar o executável do WebDriver automaticamente por exemplo com a ajuda do WebDriverManager;
- Evidências que comprovam o funcionamento;
- Uma conhecida ferramenta para avaliar endpoints é o Rest Assured. PyRestTest é legal também, mas lembrando: fique a vontade para escolher uma que prefira;
- Uso de conteinerização (por exemplo via Docker).
Você deve disponibilizar seu código em algum serviço de hospedagem como Bitbucket, GitLab ou GitHub e manter o repositório como privado.
É obrigatório ter um README com todas as instruções sobre o seu desafio, não esqueça de nos informar a linha de comando para rodar os testes!
Assim que finalizar, nos avise para enviarmos os usuários que devem ter acesso para avaliação.