Índice
- Desenvolvedora
- Tecnologias utilizadas
- Configuração para rodar o projeto
- Outras documentações
- Versionamento, code review e padronização
- Futuras Melhorias e Sugestões
- Agradecimentos
Aline Espindola 💻🎨 |
Antes de iniciar, certifique-se de ter o Node instalado.
- Clonar o repositório:
git clone https://github.com/tagplus-qa-lab/qa-junior-playwright-frontend.git
cd qa-junior-playwright-frontend- Copiar o arquivo de exemplo de variáveis de ambiente:
cp .env.example .envEsse arquivo já vem configurado com o link padrão do site Saucedemo, utilizado nos testes automatizados. Caso queira validar outro ambiente (como o de homologação ou produção), basta editar o valor da variável BASE_URL dentro do arquivo .env e inserir o novo endereço.
- Instalar as dependências do projeto:
npm i- Instalar os navegadores necessários do Playwright:
npx playwright install- Executar todos os testes:
npm test- Ver relatório de todos os testes:
npx playwright show-reportNo projeto, algumas documentações adicionais estão disponíveis para referência e melhor organização dos testes e funcionalidades.
- Toda a documentação referente aos testes automatizados (E2E) está localizada na pasta
/docs.
- Controle de versão: Git + GitHub
- Versão inicial: 1.0.0
- Todos requisitos cumpridos e documentados
- Versão: 1.0.1
- Correção da pipeline
- Versão: 1.0.2
- Novas documentações
- Todas as alterações foram commitadas e revisadas via pull request para manter a consistência do código, além de usar o Kanban para fins de organização de tarefas.
Adotei o seguinte padrão:
- frontend-[id-da-tarefa]/
Utilizei o padrão Conventional Commits para manter o histórico limpo e informativo:
📌 Nota: Escrevo os verbos no imperativo. Isso descreve o que o commit faz, como uma instrução ou comando, por exemplo: "Adiciona", "Corrige", "Ajusta".
| Tipo | Descrição | Exemplo de Mensagem |
|---|---|---|
feat |
Adição de nova funcionalidade | feat(frontend-12): adiciona mock do usuário |
fix |
Correção de bugs | fix(frontend-14): corrige erro de exibição dos dados |
docs |
Atualização ou criação de documentação | docs(frontend-12): atualiza README com padrões |
refactor |
Refatorações de código sem mudanças de comportamento | refactor(frontend-11): simplifica lógica dos mocks |
test |
Adição ou atualização de testes | test(frontend-29): adiciona testes para componente Header |
chore |
Atualizações gerais (ex.: dependências, build) | chore(frontend-19): atualiza versão do PLaywright |
perf |
Melhorias de performance | perf(frontend-19): otimiza carregamento de dados |
revert |
Reversão de um commit anterior | revert(frontend-19): remove validação do nome de produto |
Durante o desenvolvimento deste projeto, identifiquei diversas oportunidades de evolução e aprimoramento para torná-lo ainda mais robusto, escalável e aderente a boas práticas de qualidade de software.
- Adicionar novos tipos de testes: incluir testes smoke, não funcionais (como de acessibilidade e performance) para ampliar a cobertura e garantir estabilidade.
- Centralizar repositórios de testes: criar um repositório principal que englobe os três repositórios de testes existentes (frontend e API), permitindo clonar e executar todas as suítes de testes com um único comando.
- Esse repositório também poderia conter:
- Documentação unificada
- Scripts automatizados de execução
- Relatórios consolidados
- Esse repositório também poderia conter:
- Validação ortográfica e textual: implementar testes automatizados que verifiquem ortografia, gramática e conformidade com conteúdo pré-definido (por exemplo, textos de interface).
- Logging: incluir logs estruturados para diferentes níveis de severidade:
- Info: eventos importantes ou etapas concluídas com sucesso.
- Warning: alertas sobre comportamentos inesperados que não quebram o teste.
- Error: falhas críticas ou exceções, com rastreamento detalhado da origem do problema.
- Testar responsividade: desenvolver testes automatizados para validar o comportamento da aplicação em diferentes resoluções e dispositivos (mobile, tablet, desktop).
- Criar validadores personalizados: incluir validações automáticas de campos como:
- E-mail (formato válido)
- Senha (mínimo de caracteres, regras de negócio, complexidade)
- Campos obrigatórios e regras condicionais
- Expandir a cobertura de testes automatizados:
- Testar funcionalidades adicionais, como ordenação de produtos, filtros e fluxos alternativos de login.
- Garantir que as principais jornadas do usuário estejam protegidas contra regressões.
- Notificações automáticas de falhas: implementar envio de e-mail via NodeMailer na pipeline sempre que ocorrerem erros críticos nos testes, permitindo resposta rápida e acompanhamento das falhas.
Essas sugestões representam o próximo passo natural para aprimorar a qualidade do projeto, aumentar a confiabilidade dos testes e tornar a manutenção mais eficiente e escalável.
Gostaria de agradecer a TagPlus pela oportunidade de participar deste processo seletivo.
Agradeço também a todos que irão avaliar o projeto, revisar código e fornecer feedbacks valiosos.
Foi uma experiência enriquecedora aplicar boas práticas de desenvolvimento e testes automatizados neste projeto.