Load Metodologia di test per una cache

6

Attualmente sto scrivendo un test di carico per una cache che dovrebbe verificare come reagirà la cache alle richieste persistenti. Un collega e io avevamo opinioni divergenti su come eseguire questo test di carico.

Credo che un test di carico dovrebbe essere il più casuale possibile. Dovrebbe modellare il carico del mondo reale il più possibile, e la strada verso quella è la casualità. Così ho creato questo test casuale come segue:

  • I dati di test sono conservati in fogli di calcolo e caricati negli oggetti TestRunner all'avvio
    • I dati del test sono not random
  • Il test di carico eseguirà 10 TestRunner casuali in singoli Thread contemporaneamente
  • L'oggetto restituito dalla cache verrà testato per essere sicuro che sia sensibile, non completamente testato
    • Tutti i test che falliscono saranno emessi alla fine e ogni test ha un ID univoco per trovare facilmente i test falliti
  • A intervalli casuali, la cache verrà cancellata per modellare il requisito reale della cache che viene cancellata in qualsiasi momento.
  • Il test di caricamento verrà eseguito per un intervallo di tempo configurabile

L'idea del mio collega su cosa dovrebbe fare un test di carico è:

  • I dati di test sono conservati in fogli di calcolo e caricati negli oggetti TestRunner all'avvio
  • Tutti gli oggetti TestRunner vengono eseguiti in modo sequenziale
  • Ogni volta che viene eseguito il test di caricamento, verranno eseguiti gli oggetti TestRunner nello stesso ordine

Quale metodologia ritieni possa produrre il test di carico più affidabile?

Personalmente ritengo che il test casuale produrrà un test di carico più affidabile in quanto modellerà l'utilizzo del mondo reale. Non è noto quali richieste di ordine arriveranno quando verrà rilasciato alla produzione, quindi dovrebbe essere testato con quell'elemento sconosciuto preso in considerazione. Tuttavia, eseguire tutti i test nella stessa sequenza ogni volta renderà riproducibili eventuali errori, il che è importante durante il test.

    
posta Richard 29.09.2010 - 17:40
fonte

2 risposte

3

Hai un modo per reimpostare i dati una volta eseguito il test (se ciò è addirittura necessario)?

In caso affermativo, per quanto riguarda l'esecuzione del test non casuale per primo: cercare i guasti quando vengono eseguiti in quel modo (e le possibili anomalie causate dai dati stessi)? Quindi, dopo il ripristino (se necessario), esegui i test casuali per riflettere il carico reale.

    
risposta data 29.09.2010 - 17:51
fonte
0

I test multi-thread sono un dolore. Potrebbe simulare uno scenario reale ma ti dirà solo che "C'è un problema". Non sarai in grado di riprodurre il test e, il più delle volte, questo significa che non sarai in grado di trovare il bug.

Il modello di esecuzione casuale svelerà strani bug che non si presentano durante il normale utilizzo - altrimenti lo sapresti solo "giocando" con il prodotto. Ecco perché la possibilità di riprodurre lo stesso bug con un'altra esecuzione casuale è molto piccola (a meno che tu non abbia tempo infinito :)).

    
risposta data 29.09.2010 - 18:53
fonte

Leggi altre domande sui tag