Configurazione di QA automatizzata e barriere di sicurezza¶
Panoramica¶
Ogni pezzo di codice generato da 4Geeks AI Factory passa attraverso un Quality Gate automatizzato prima che uno sviluppatore umano lo riveda. Questo gate esegue scansioni istantanee delle vulnerabilità e test unitari guidati dall’intelligenza artificiale, garantendo che la velocità non comprometta mai la sicurezza.
In questo tutorial imparerai:
- Come funziona il Portale della Qualità
- Quali scansioni di sicurezza vengono eseguite
- Come i test unitari vengono generati automaticamente
- Come configurare le regole di QA per il tuo progetto
- Come interpretare i risultati del Quality Gate
La pipeline del Quality Gate¶
AI-Generated Code
│
▼
┌─────────────────────────────────┐
│ QUALITY GATE │
│ │
│ 1. Static Code Analysis │
│ 2. Vulnerability Scanning │
│ 3. AI-Generated Unit Tests │
│ 4. Code Style Validation │
│ 5. Performance Analysis │
│ 6. Dependency Audit │
│ │
│ ┌─────────┐ ┌─────────┐ │
│ │ PASS │───►│ FAIL │ │
│ └─────────┘ └─────────┘ │
└────────┬───────────────┬───────┘
│ │
▼ ▼
Human Review Auto-Fix & Retry
(Senior Arch) (up to 2 attempts)
Passaggio 1: comprendere le scansioni¶
1. Analisi del codice statico¶
- Cosa controlla: qualità del codice, complessità, manutenibilità
- Strumenti utilizzati: ESLint, Pylint, SonarQube (a seconda della lingua)
- Regole applicate: standard di codifica del tuo progetto + migliori pratiche del settore
- Risultato: punteggio di qualità (A-F) con suggerimenti di miglioramento specifici
2. Scansione delle vulnerabilità¶
- Cosa controlla: OWASP Top 10, vulnerabilità CWE, rischi di injection
- Strumenti utilizzati: Snyk, Semgrep, CodeQL
- Copertura: SQL injection, XSS, CSRF, difetti di autenticazione, dipendenze non sicure
- Output: rapporto sulla vulnerabilità con classificazione di gravità (critico, alto, medio, basso)
3. Unit test generati dall’intelligenza artificiale¶
- Che cosa fa: genera automaticamente unit test per il nuovo codice
- Obiettivo di copertura: copertura del codice minima dell‘80% per il nuovo codice
- Framework di test: Jest (JavaScript/TypeScript), pytest (Python), JUnit (Java)
- Output: testare i file con asserzioni, casi limite e scenari di errore
4. Convalida dello stile del codice¶
- Cosa controlla: formattazione, convenzioni di denominazione, organizzazione dei file
- Strumenti utilizzati: Prettier, Nero, gofmt (a seconda della lingua)
- Regole: guida allo stile configurato del tuo progetto
- Output: codice formattato automaticamente o rapporto sulla violazione dello stile
5. Analisi delle prestazioni¶
- Che cosa controlla: complessità temporale, utilizzo della memoria, N+1 query
- Rilevamento: cicli inefficienti, ricorsione illimitata, indici mancanti
- Output: avvisi sulle prestazioni con suggerimenti di ottimizzazione
6. Controllo delle dipendenze¶
- Cosa controlla: vulnerabilità note nelle dipendenze
- Database: NVD, database consultivo GitHub, database delle vulnerabilità Snyk
- Output: elenco delle dipendenze vulnerabili con consigli sull’aggiornamento
Passaggio 2: configura le regole QA¶
Accedi alle impostazioni QA¶
- Vai alle Impostazioni di fabbrica AI del tuo progetto
- Passare a Configurazione Quality Gate
Configura le regole di scansione¶
| Impostazione | Opzioni | Predefinito |
|---|---|---|
| Punteggio di qualità minimo | A, B, C, D, F | B |
| Blocco su vulnerabilità critiche | Sì/No | Sì |
| Blocco su vulnerabilità elevate | Sì/No | Sì |
| Copertura minima del test | 0-100% | 80% |
| Violazioni di stile di correzione automatica | Sì/No | Sì |
| Numero massimo di tentativi | 1-5 | 2 |
Regole personalizzate¶
Aggiungi regole specifiche del progetto:
custom_rules:
# Require JSDoc comments on all public functions
- rule: require-jsdoc
severity: warning
pattern: "export (function|class)"
# No console.log in production code
- rule: no-console-log
severity: error
pattern: "console\\.log"
exclude:
- "**/*.test.*"
- "**/debug/**"
# Maximum function length
- rule: max-function-length
severity: warning
max_lines: 50
Passaggio 3: interpretare i risultati del Quality Gate¶
Cancello di passaggio¶
CODICE_BLOCCO_2
Cancello guasto¶
❌ Quality Gate FAILED
Quality Score: C (72/100)
Vulnerabilities: 1 High (SQL injection risk in line 42)
Test Coverage: 65% (target: 80%)
Style Issues: 12 (auto-fixed: 8, remaining: 4)
Performance: 1 warning (N+1 query in getUserOrders)
Dependencies: 2 vulnerable packages found
→ Auto-fixing (attempt 1 of 2)
Dopo la correzione automatica¶
✅ Quality Gate PASSED (after auto-fix)
Quality Score: B (85/100) — improved from C
Vulnerabilities: 0 Critical, 0 High — SQL injection fixed
Test Coverage: 82% — improved from 65%
Style Issues: 0 — all auto-fixed
Performance: 1 warning remains (manual review needed)
Dependencies: 2 packages updated
→ Ready for Human Review
Passaggio 4: gestire gli errori del Quality Gate¶
Quando il gate fallisce dopo tutti i tentativi:
- Il codice è contrassegnato per la revisione manuale
- Il tuo architetto senior riceve un rapporto dettagliato
- L’architetto risolve i problemi rimanenti
- Il codice viene reinviato attraverso il gate
- Una volta superato, viene creato il PR
Motivi comuni di errore¶
| Fallimento | Causa tipica | Risoluzione |
|---|---|---|
| Copertura del test bassa | Logica di ramificazione complessa | L’architetto aggiunge test sui casi limite |
| Elevata vulnerabilità | Gestione dell’input non sicura | L’architetto implementa la sanificazione |
| Violazioni di stile | Modelli non standard | Correzione automatica o formattazione manuale |
| Problemi di prestazioni | Algoritmi inefficienti | L’architetto ottimizza il codice |
| Vulnerabilità delle dipendenze | Pacchetti obsoleti | L’architetto aggiorna le dipendenze |
Migliori pratiche¶
Impostazione delle soglie appropriate¶
- Inizia in modo rigoroso: soglie più elevate rilevano più problemi in anticipo
- Adeguamento in base al progetto: i sistemi critici necessitano di regole più rigide
- Bilancia velocità e qualità: Troppo rigido = consegna più lenta
- Revisione mensile: modifica le soglie in base ai modelli di guasto
Approccio che mette la sicurezza al primo posto¶
- Non disattivare mai la scansione delle vulnerabilità
- Blocca sempre sulle vulnerabilità critiche e elevate
- Esamina settimanalmente le vulnerabilità medie
- Mantieni automatizzati i controlli delle dipendenze
Testa la qualità¶
- Concentrarsi sulla copertura significativa: 80% del codice importante > 100% di tutto
- Includi casi limite: input nulli, valori limite, percorsi di errore
- Punti di integrazione del test: chiamate API, query sul database, servizi esterni
- Esamina i test generati automaticamente: assicurati che testino il comportamento reale, non solo i percorsi del codice
Qual è il prossimo passo?¶
- Ulteriori informazioni sul Monitoraggio dell’utilizzo dei token
- Esplora Comprendere AI Factory
- Leggi informazioni su Private AI Gateway
Hai bisogno di aiuto?¶
- Documentazione: docs.4geeks.io
- Discord: Discord
- Supporto: disponibile tramite il dashboard della console
Hai ancora domande? Richiedi supporto or explore tutoriali