Unit test di un indice di testo

6

Considera un indice di testo come un suffisso o un suffisso che supporta le richieste di Conteggio (numero di occorrenze di un modello) e Trova (le posizioni di tutti i occorrenze di un pattern) su un determinato testo. Come andresti sui test unitari di una classe del genere?

Quello che ho in mente è generare una grande stringa casuale, quindi estrarre una sottostringa casuale da questa grande stringa e confrontare i risultati di entrambe le query con le implementazioni ingenue (come string :: find). Un'altra idea che ho è quella di trovare la sottostringa più frequente di lunghezza l che appare nella stringa originale (usando forse un metodo naive) e usare queste sottostringhe per testare l'indice.

Questo non è il modo migliore, quindi quale sarebbe un buon design dei test unitari per un indice di testo?

Se è importante, questo è in C ++ usando google test.

    
posta jplot 05.10.2012 - 03:39
fonte

1 risposta

3

La grande stringa generata a caso può essere una bella aggiunta per testare i casi che non hai pensato. Per renderlo efficace, è necessario eseguirlo più volte, rallentando così la tua suite di test delle unità, quindi devi trovare un equilibrio tra il numero di volte che esegui il test e la grandezza della stringa.

Creerei comunque un normale set di test con un dato input per il quale sai qual è la risposta.

  • un test per le occorrenze zero
  • un test per un numero casuale di occorrenze
  • un test per un'occorrenza nel primo elemento
  • un test per un'occorrenza nell'ultimo elemento
  • un test per la distinzione tra maiuscole e minuscole
  • un test con un albero o un array vuoto
  • un test per un albero o array con esattamente un elemento
  • verifica eventuali altri requisiti funzionali che potresti avere (escape caratteri, fine riga, ignorando lo spazio bianco, uso concorrente, gestione delle eccezioni, più occorrenze di quelle che il tuo contatore può contenere)

Spero che questo aiuti.

    
risposta data 05.10.2012 - 08:40
fonte

Leggi altre domande sui tag