{"id":51335976,"url":"https://github.com/daviteixeira-dev/novaml-testing-architecture-pytest","last_synced_at":"2026-07-02T02:32:35.422Z","repository":{"id":363680170,"uuid":"1263042080","full_name":"daviteixeira-dev/novaml-testing-architecture-pytest","owner":"daviteixeira-dev","description":"Automated testing architecture (API, RAG, and Machine Learning) for the NOVAML ecosystem. Developed with PyTest, HTTPX, and Pandas, following ISO/IEC/IEEE 29119-3 guidelines and BDD/Gherkin scenarios focused on astronomical data.","archived":false,"fork":false,"pushed_at":"2026-06-09T22:13:49.000Z","size":11,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T00:08:59.443Z","etag":null,"topics":["astronomy-data-analysis","automated-testing","bdd","chromadb","httpx","machine-learning","ollama","pandas","pytest","qa-automation","rag-pipeline"],"latest_commit_sha":null,"homepage":"","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-08T15:06:45.000Z","updated_at":"2026-06-09T22:13:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/daviteixeira-dev/novaml-testing-architecture-pytest","commit_stats":null,"previous_names":["daviteixeira-dev/novaml-testing-architecture-pytest"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/daviteixeira-dev/novaml-testing-architecture-pytest","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fnovaml-testing-architecture-pytest","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fnovaml-testing-architecture-pytest/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fnovaml-testing-architecture-pytest/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fnovaml-testing-architecture-pytest/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviteixeira-dev","download_url":"https://codeload.github.com/daviteixeira-dev/novaml-testing-architecture-pytest/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviteixeira-dev%2Fnovaml-testing-architecture-pytest/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":["astronomy-data-analysis","automated-testing","bdd","chromadb","httpx","machine-learning","ollama","pandas","pytest","qa-automation","rag-pipeline"],"created_at":"2026-07-02T02:32:34.649Z","updated_at":"2026-07-02T02:32:35.410Z","avatar_url":"https://github.com/daviteixeira-dev.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔬 NOVAML Testing Architecture (PyTest)\n\nEste repositório apresenta uma **arquitetura de testes automatizados de backend e inteligência artificial robusta**, projetada para o ecossistema **NOVAML (No-Code Visual Astronomical Machine Learning)**. O projeto implementa técnicas avançadas de testes de contrato e integração para validar o pipeline RAG (Retrieval-Augmented Generation), motores de Machine Learning locais e ingestão de dados astronômicos, seguindo rigor metodológico acadêmico de P\u0026D.\n\nPara evitar a duplicidade de código e garantir a independência e isolamento do ecossistema de QA, adotamos a estratégia de **Git Submodules**, trazendo os projetos originais de desenvolvimento como dependências acopladas na pasta `vendor/`.\n\n## 🏗️ Estrutura e Práticas de Arquitetura\n\nO ecossistema utiliza separação rígida de responsabilidades e centralização de testes:\n\n- **docs/specs/**: Plano de Testes (ISO/IEC/IEEE 29119-3) e cenários BDD/Gherkin.\n- **tests/api/**: Validação do motor backend (`novaml-api`) e pipelines de ML.\n- **tests/chat_ia/**: Validação do fluxo do assistente (`novaml-chat`) e ChromaDB/Ollama.\n- **tests/utils/**: Geração de massa de dados sintética com Pandas.\n- **`vendor/`**: Projetos originais do time de desenvolvimento (API, Chat e App) gerenciados como submódulos vivos.\n\n```text\nnovaml-testing-architecture-pytest/\n├── .gitmodules             # Mapeamento dos submódulos do ecossistema\n├── .venv/                  # Ambiente virtual unificado de QA\n├── docs/                   # Artefatos e rigor acadêmico\n├── tests/                  # Códigos de teste automatizados\n└── vendor/                 # Código de produção do time de desenvolvimento\n    └── novaml-api/         # Submódulo da API do Lazuli (FastAPI)\n```\n\n## 🛠️ Stack Tecnológica e Requisitos (Windows)\n\n- **Sistema Operacional:** Windows 10 / Windows 11.\n- **Linguagem Base:** Python 3.10+.\n- **Engine de Testes:** PyTest.\n- **Client HTTP / Simulação:** HTTPX (async) e FastAPI TestClient.\n- **Gerenciador de Dados:** Pandas.\n\n## 🚀 Guia de Configuração Rápida (Windows)\n\nSiga os passos abaixo para configurar o hub de testes unificado na sua máquina:\n\n### 1. Clonar o Repositório com os Submódulos\nComo este projeto depende de repositórios externos, use o comando `--recursive` para baixar o projeto de testes e os códigos de produção juntos:\n```powershell\ngit clone --recursive \u003curl-do-repositorio\u003e\ncd novaml-testing-architecture-pytest\n```\n*(Caso já tenha clonado de forma simples, inicialize os submódulos manualmente com: `git submodule update --init --recursive`)*\n\n### 2. Configurar o Ambiente Virtual (.venv)\nCrie e ative a `.venv` unificada na raiz do projeto para gerenciar todas as ferramentas de QA:\n```powershell\n# Criar o ambiente\npython -m venv .venv\n\n# Ativar no Windows (PowerShell)\n.venv\\Scripts\\Activate.ps1\n\n# Para desativar o ambiente virtual e voltar para o terminal global do seu Windows:\ndeactivate\n```\n\n### 3. Instalar as Dependências\nInstale as bibliotecas necessárias para rodar os motores de desenvolvimento do time e as suas ferramentas de teste:\n```powershell\n# Dependências do motor de produção (Ex: API do Lazuli)\npip install -r vendor/novaml-api/requirements.txt\n\n# Ferramentas de QA do Repositório\npip install pytest httpx python-dotenv sqlmodel\n```\n\n### 4. Executar os Testes Automatizados\nPara rodar toda a suíte de testes de integração com relatórios detalhados:\n```powershell\npytest -v --html=reports/dashboard_report.html --self-contained-html\n```\n\n---\n\n## 🧠 Gestão de Dependências: Git Submodules\n\n### O que é e por que usamos?\nO **Git Submodule** permite manter repositórios Git externos dentro deste repositório de QA. Ele funciona como um ponteiro para o commit exato do projeto dos desenvolvedores, trazendo dois grandes benefícios de Engenharia de Software:\n1. **Isolamento de Escopo:** O código de produção (API/Chat) não se mistura com o código de teste (QA).\n2. **Sincronização Dinâmica:** Sempre que o time atualizar as aplicações deles, atualizamos nossa pasta `vendor/` local sem a necessidade de novos clones através do comando:\n   ```powershell\n   git submodule update --remote --merge\n   ```\n\n---\n\n## 📑 Artefatos e Rigor Acadêmico\nDocumentos formais na pasta `/docs` detalham o Plano de Testes (ISO 29119-3) e as Especificações de Casos de Teste (BDD), focando em gestão de riscos técnicos e qualidade da infraestrutura local.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviteixeira-dev%2Fnovaml-testing-architecture-pytest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaviteixeira-dev%2Fnovaml-testing-architecture-pytest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaviteixeira-dev%2Fnovaml-testing-architecture-pytest/lists"}