Spero che tu porti con me qui. È difficile spiegare questo problema, soprattutto senza riferimento diretto al dominio specifico.
Lavoro su un componente di un sistema più grande che esegue preelaborazioni computazionalmente costose in modo che il componente "in tempo reale" possa eseguire rapidamente le sue funzioni. Il mio prodotto crea efficacemente un set di dati di grande ricerca per il componente principale da interrogare.
Il mio prodotto calcola i risultati di un insieme finito di "scenari" (alcune centinaia di migliaia) ognuno dei quali può essere eseguito da un cliente. Il componente utilizza un algoritmo k-shortest paths e un numero di motori di regole per considerare ogni scenario e creare le ricerche, operando su dati di riferimento che rappresentano il dominio problematico.
Per gli scenari che vengono comunemente eseguiti dai nostri clienti i casi di test sono facili; i risultati attesi sono facili da ideare e affermare test di accettazione. Tuttavia, per gli scenari che non sono "popolari", i risultati attesi sono difficili da stabilire e in ogni caso i loro risultati possono essere modificati dalle modifiche ai dati di riferimento che sono praticamente impossibili da prevedere. In altre parole, le modifiche ai dati di riferimento modificano gli input sull'algoritmo del percorso più breve che a sua volta può modificare l'output.
Creare test di accettazione per questi casi impopolari è anche complicato, perché l'azienda "non sa cosa non sa", e quindi non ha una base di riferimento su cui possa essere testato.
Ogni volta che un tester torna da me con un difetto, la certezza del 99,9% è dovuta al fatto che le condizioni nei dati di riferimento sono cambiate, piuttosto che a causa di eventuali modifiche al codice. Trascorro quindi un sacco di tempo inseguendo i difetti che sono "problemi di dati". Penso che ciò che confonde la situazione è che i dati di riferimento sono fondamentali per la funzionalità del sistema, e il sistema senza una serie specifica di dati di riferimento non produrrebbe risultati che avessero alcun significato per l'azienda. Potrei creare una serie di dati di riferimento "falsi" su cui testare, ma qualsiasi affermazione contro questi dati di riferimento ingegnerizzati non sarebbe valida nel mondo reale.
Sarei molto interessato a sentire qualsiasi prospettiva su questo specialmente da coloro che hanno riscontrato problemi simili. Sono ansioso di non limitarsi a scrollare le spalle e rispondere "problema dei dati", ma arrivare alla radice del problema e capire come costruire e testare questa cosa in modo affidabile, ripetibile e prezioso.