Qualità, sicurezza e criteri di accettazione
Strategia di test
| Livello | Copertura minima |
|---|---|
| Unit | Intervalli temporali, tariffe, capacità, ferie, limiti, normalizzazione città, compatibilità sedi, strategie employee/freelancer |
| Contract | API, eventi e ogni adapter import/export/versione |
| Integration | PostgreSQL/datahub, transazioni, vincoli tenant e outbox |
| End-to-end | Due utenti stesso tenant, due tenant isolati, HR/progetto/forecast/actual/delivery/report |
| Golden dataset | Costi reali/standard, forecast fattibile/impossibile, correzioni retroattive |
| Non funzionali | Load, concorrenza, retry/idempotenza, backup/restore, security/IDOR |
Invarianti da automatizzare
- Nessun record tenant-owned senza organizzazione.
- Nessuna relazione collega entità di organizzazioni diverse.
- Nessun intervallo costo/tariffa/ruolo si sovrappone quando la regola richiede unicità.
- Nessuna assegnazione sede di un dipendente si sovrappone temporalmente a un'altra.
- Ogni associazione a un progetto con sede è compatibile, per l'intero intervallo, con la città della sede della risorsa.
- Nessun risultato forecast supera capacità o limite progetto-risorsa.
- La somma allocata è coerente tra dettaglio e aggregati.
- Un periodo consegnato non cambia, inclusi import, job e chiamate dirette.
- Lo stesso evento/import ripetuto non duplica dati o calcoli.
- Un run è riproducibile dagli input/versione registrati.
Definition of Done per feature
- Regole e acceptance criteria approvati.
- Migrazione forward e rollback/mitigazione documentati; schema clean-install aggiornato.
- API e UI autorizzano server-side e rispettano il tenant.
- Audit ed eventi includono correlation e organization ID.
- Test unit/integration/E2E rilevanti verdi.
- Errori utente spiegabili, metriche e log operativi presenti.
- Documentazione utente/tecnica e checklist aggiornate.
- Nessun dato personale o segreto nei log/fixture.
KPI del prodotto
- percentuale domanda progetto coperta;
- numero/ore di risorse over-allocate (target: 0 nei piani validi);
- ore scoperte e motivazioni;
- tempo medio/p95 di ricalcolo;
- tasso errori import e righe da correggere;
- modifiche retroattive per periodo e tempo di propagazione;
- percentuale mesi consegnati entro scadenza;
- incidenti cross-tenant (target: 0).
UAT MVP avanzato
Il committente deve completare almeno questi scenari:
- Due operatori della stessa organizzazione lavorano sullo stesso progetto.
- HR crea una risorsa, assegna società, sede con validità temporale, ruolo, livello, manager, costo e ferie.
- Un dipendente accede e inserisce il proprio piano ferie.
- Si configurano le sedi, un ente con cambio tariffa e un progetto a costi standard associato a una sede.
- Si verifica che una risorsa della stessa città sia associabile e una di città diversa venga rifiutata con errore esplicito.
- Si importa un nuovo formato employee/project e si approva il diff.
- Si genera un forecast senza over-allocation, con evidenza di eventuali ore scoperte.
- Si importa il consuntivo, si corregge un mese aperto e si verifica il ricalcolo futuro.
- Si consegna un mese e si prova che ogni modifica precedente sia bloccata.
- Si esportano report coerenti per dipendente e progetto.
- Si verifica che un utente di un'altra organizzazione non possa accedere agli stessi ID.
Requisiti Release 1
- Vulnerabilità critiche/alte risolte o formalmente accettate con mitigazione.
- SLO e alert concordati; runbook di recovery provato.
- Restore completo testato su ambiente isolato.
- Migrazione di onboarding ripetibile e riconciliata con conteggi/checksum.
- Prestazioni validate sui volumi target con margine concordato.
- Audit esportabile per azioni sensibili e retention definita.
- Manuali e processo supporto pronti; ownership operativa assegnata.