Per ogni build del mio software lo eseguo attraverso una serie di test che eseguono un numero di comandi su una riga di comando e acquisiscono i risultati.
La maggior parte delle volte l'output è una combinazione di: - Informazioni statiche che sono, e dovrebbero essere, uguali tra ogni corsa. - Informazioni dinamiche non facili da prevedere.
Allo scopo di testare questo software, desidero solo verificare che le informazioni statiche siano le stesse tra ogni test.
Attualmente utilizzo sed sull'output catturato dei miei test automatici per filtrare le informazioni dinamiche. Qualsiasi differenza tra le esecuzioni di test viene quindi identificata utilizzando i dati filtrati derivanti dall'applicazione delle regole sed.
A causa della grande varietà di output di comando che viene elaborato, il mantenimento delle regole sed è diventato un lavoro oneroso.
Esiste un sistema che, con un ampio campione di risultati di test eseguiti, può mostrare cambiamenti non comuni tra due file contenuti in quel grande campione di risultati del test? Per chiarire, se dovessi diff due file, vorrei solo vedere le differenze per gli elementi che hanno cambiato il 5% delle volte tra tutti i file coinvolti. Eventuali altri dati che hanno cambiato il 95% del tempo sarebbero esclusi come differenze quando si confrontano due dei file all'interno della serie di risultati del test.
In questo esempio, tra il grande insieme di esecuzioni di test, la prima colonna è quasi sempre coerente:
Esegui 1:
1/*/1 6643 2433 12343 232424 112 2/1/1 2311 455 1342 60233 5231 2/1/2 2355 1223 93 12389 1342
Esegui 2:
1/*/1 3121 112 98832 451 1233 2/1/1 6342 2345 84421 3456 8362 2/1/2 72453 5 421 64321 7634
Esegui 3:
1/*/1 12 65 312 653 973 2/1/1 12442 54231 46012 6 734 2/1/3 734 28 623 76 1834
In cima alle tre fasi precedenti, ci sono centinaia di esempi di questi stessi comandi generati per ogni build incrementale del software. Quando si esegue una differenza tra ciascuno dei tre esempi sopra vorrei avere i seguenti risultati:
Nessuna differenza tra Esegui # 1 ed Esegui # 2. Differenza che mostra che "2/1/2" è stato modificato in "2/1/3" quando è stato chiesto di mostrare la differenza tra Esegui # 3 e una delle altre due esecuzioni.
Attualmente ho uno script sed che sostituisce tutti i numeri "dall'aspetto casuale" sopra (conteggi, timestamp, ecc.) con hashmark o altri indicatori costanti in modo che tutto ciò che rimane da confrontare sia la colonna iniziale.
Quali opzioni, se esistono, esistono in quest'area? Esiste un nome per questo tipo di confronto testuale?