{"id":51335980,"url":"https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress","last_synced_at":"2026-07-02T02:32:35.817Z","repository":{"id":364071663,"uuid":"1266273764","full_name":"daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress","owner":"daviteixeira-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-11T13:29:38.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-11T15:18:32.777Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daviteixeira-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-11T13:20:16.000Z","updated_at":"2026-06-11T13:31:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress","commit_stats":null,"previous_names":["daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviteixeira-dev","download_url":"https://codeload.github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35030920,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-02T02:00:06.368Z","response_time":173,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-02T02:32:35.065Z","updated_at":"2026-07-02T02:32:35.775Z","avatar_url":"https://github.com/daviteixeira-dev.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚀 Scale Systems Challenge: Testing Architecture with Cypress\n\nEste repositório contém a solução completa para o desafio técnico de automação e engenharia de qualidade da **X2 Eventos**. O projeto consiste na validação, análise de negócio e estruturação da suíte de testes para a nova plataforma interna de gerenciamento automatizado de workshops.\n\n---\n\n## 📸 Visão Geral da Plataforma\n\nAbaixo está o layout atualizado da tela de cadastro de participantes avaliada neste projeto:\n\n![Tela de Cadastro de Workshops](./docs/images/x2-ventos-tela-de-cadastro-workshop.PNG)\n\n---\n\n## 🎯 Contexto do Desafio \u0026 História de Usuário\n\n**Título:** Gerenciamento de Inscrições para Eventos\n\u003e **Eu como** um organizador de eventos  \n\u003e **Preciso** adicionar um novo participante a um evento existente através de um formulário e gerenciar a lista de inscritos  \n\u003e **Para que** eu possa manter o controle do número de participantes e garantir uma comunicação eficaz com eles.\n\n### 📋 Critérios de Aceite Originais (AC)\n\n| ID | Critério | Regra de Negócio Detalhada |\n| :--- | :--- | :--- |\n| **AC1** | **Formulário de Inscrição** | Apresentar campos na tela de detalhes: Nome Completo (Obrigatório), E-mail (Obrigatório) e Telefone com DDD (Opcional). |\n| **AC2** | **Validação dos Campos** | Botão \"Inscrever\" só habilita se os campos obrigatórios estiverem preenchidos. Validação de Regex para e-mail padrão. Nome não deve aceitar caracteres especiais ou números. |\n| **AC3** | **Limite de Vagas** | Bloquear inscrições se o limite do evento for atingido. Exibir mensagem em tela: `\"Vagas esgotadas!\"`. |\n| **AC4** | **Confirmação de Inscrição** | Exibir feedback visual: `\"Inscrição realizada com sucesso!\"`. Limpar o formulário imediatamente após o envio. |\n| **AC5** | **Atualização da Lista** | A listagem de participantes deve reagir em tempo real, renderizando o nome e e-mail do novo inscrito. |\n| **AC6** | **E-mail de Confirmação** | Disparar um e-mail de confirmação automático para o endereço de e-mail informado pelo participante. |\n| **AC7** | **Remoção de Participante** | Exibir botão \"Remover\" (lixeira) ao lado de cada inscrito. Ao clicar, o participante é removido e a contagem de vagas do evento é atualizada. |\n\n---\n\n## 🗂️ Documentação Estratégica da Entrega\n\nToda a análise de qualidade, especificação técnica e mapeamento de riscos foram centralizados na pasta `/docs` seguindo as melhores práticas do mercado (como a norma ISO 29119-3). Clique nos links abaixo para auditar cada artefato:\n\n1. 🧠 **[Análise Heurística \u0026 Crítica (SFDPOT)](https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/blob/main/docs/specs/test_analysis_heuristics.md)**: Investigação profunda baseada no modelo de James Bach. Contém o mapeamento de limites físicos, matriz *\"E se...?\"* de exceções, e a revisão de acessibilidade para operações no mundo real.\n2. 📝 **[Plano de Testes de Software (ISO 29119-3)](https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/blob/main/docs/specs/test_plan.md)**: Definição formal do escopo, matriz de riscos técnicos do negócio (Foco em *Overbooking* e integridade), além das travas de qualidade (*Quality Gates*).\n3. 🥒 **[Especificação de Casos de Teste (BDD / Gherkin)](https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/blob/main/docs/specs/test_specification.md)**: Mapeamento detalhado dos cenários de teste traduzidos em sintaxe Gherkin. Cobre desde o caminho feliz até comportamentos de resiliência de layout (*text truncation*).\n4. 🐛 **[Relatório de Bugs \u0026 Insights Arquiteturais](https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/blob/main/docs/specs/bug_report_insights.md)**: Registro formal de defeitos críticos encontrados (incluindo o erro de lógica inversa do AC7 e inconsistência visual do contador) com sugestões de engenharia (*Debounce* e *Optimistic Updates*).\n\n*O documento original com as diretrizes do processo seletivo encontra-se arquivado localmente em: [Processo Seletivo QA - Desafio Técnico.pdf](https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress/blob/main/docs/Processo%20seletivo%20QA%20-%20Desafio%20T%C3%A9cnico.pdf).*\n\n---\n\n## 🛠️ Guia de Configuração e Execução do Projeto\n\nSiga o passo a passo abaixo para preparar o ambiente e rodar a suíte de testes automatizados localmente em qualquer computador.\n\n### 1. Pré-requisitos (Instalação do Node.js)\nO Cypress necessita do ambiente **Node.js** para gerenciar dependências e executar.\n* Abra o seu terminal e verifique se já possui o Node instalado digitando: `node -v`.\n* Caso o comando não seja reconhecido, faça o download da versão estável **LTS** no site oficial [nodejs.org](https://nodejs.org) e instale-a seguindo o instalador padrão. Reinicie o seu terminal após a conclusão.\n\n### 2. Clonando o Repositório\nNo terminal, faça o clone deste projeto para a sua máquina local e acesse a pasta raiz:\n```bash\ngit clone https://github.com/daviteixeira-dev/scale-systems-challenge-testing-architecture-cypress.git\ncd scale-systems-challenge-testing-architecture-cypress\n```\n\n### 3. Instalando as Dependências\nCom o ambiente acessado, baixe o framework Cypress e todas as configurações necessárias através do gerenciador de pacotes padrão (NPM):\n```bash\nnpm install\n```\n\n### 4. Executando a Suíte de Testes Automatizados\n\nComo a aplicação real ainda não possui um servidor frontend ativo, os testes foram desenvolvidos utilizando uma estratégia arquitetural avançada de **Injeção de Interface em Memória Dinâmica**. Desse modo, o Cypress renderiza o escopo visual e intercepta as chamadas HTTP (Mocks/Spy) sem a necessidade de servidores web adicionais.\n\nVocê pode executar os testes de duas maneiras:\n\n#### Opção A: Interface Gráfica Interativa (Recomendado)\nPara abrir o painel interativo do Cypress e acompanhar as asserções visualmente:\n```bash\nnpx cypress open\n```\n1. No painel que se abrirá, clique em **E2E Testing**.\n2. Selecione o navegador de sua preferência (ex: Chrome ou Electron) e clique em **Start E2E Testing**.\n3. Na lista de especificações, clique sobre o arquivo **`cadastro_workshop.cy.js`** para assistir à execução dos 7 cenários em tempo real.\n\n#### Opção B: Modo Headless (Execução rápida em terminal)\nPara rodar os testes direto no terminal (ideal para esteiras de Integração Contínua / CI/CD):\n```bash\nnpx cypress run\n```\n\n## 🏁 Conclusão \u0026 Práticas de Engenharia Aplicadas\n\nEste projeto foi desenvolvido aplicando metodologias modernas de Engenharia de Qualidade e Testes de Software Orientados ao Contexto, indo muito além da escrita mecânica de scripts de automação.\n\n### 💡 Principais Diferenciais Desta Entrega:\n*   **Abordagem Shift-Left Testing:** Análise estática dos requisitos realizada antes da codificação, permitindo identificar e documentar falhas lógicas críticas (como a inversão da regra do AC7 e ambiguidade no display de vagas) de forma proativa.\n*   **Estratégia de UI In-Memory TDD:** Arquitetura de automação inovadora desenvolvida sem dependência de um servidor frontend ativo. A injeção dinâmica de componentes HTML em memória simula perfeitamente o comportamento reativo da aplicação real.\n*   **Isolamento Absoluto de Testes (Mocking/Spying):** interceptação de chamadas de API (`cy.intercept`) e implementação de *Window Spies* para validar a integridade de payloads enviados a microsserviços externos de e-mail de forma confiável e resiliente.\n*   **Padrões Profissionais de Mercado:** Toda a documentação estratégica foi estruturada em total conformidade com as diretrizes internacionais da norma **ISO/IEC/IEEE 29119-3**, utilizando histórico de versionamento com **Commits Semânticos**.\n\n---\n*Desafio concluído com sucesso e pronto para avaliação. Sinta-se à vontade para explorar os artefatos técnicos na pasta `/docs` e executar a suíte Cypress localmente!*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviteixeira-dev%2Fscale-systems-challenge-testing-architecture-cypress/lists"}