Sto scrivendo test funzionali automatizzati per la mia applicazione. Per interagire con l'applicazione, utilizzo il database SQL per recuperare i dati e convalidare i dati.
La sfida principale che sto affrontando è la gestione dei dati di test per i miei test. Devo accedere al database per poter recuperare i dati del test, che possono essere aggiornati ogni build. Successivamente, utilizzo i dati di test per l'accesso o la navigazione verso una pagina specifica o per le convalide per assicurarmi che ciò che sto facendo sull'interfaccia utente sia opportunamente rappresentato nel back-end.
Potrei colpire il database più volte durante un test per essere in grado di eseguire un'azione specifica. Il problema è che alcune di queste query impiegano 5 minuti per essere eseguite, rallentando in modo significativo l'esecuzione del test e rendendolo inaccettabile.
Pertanto, gradirei consigli su come gestire una situazione del genere.
- Esiste uno schema di progettazione appropriato che dovrei usare?
- Devo eseguire tutte le mie domande in anticipo e memorizzare i loro risultati da qualche parte e quindi usarli per tutti i miei test?
- Devo eseguire queste query esternamente, creare una tabella di test e utilizzarla invece per i miei test?
- O c'è qualcosa di meglio che puoi suggerire?
Ulteriori dettagli in base alle domande:
La mia applicazione consente a un utente di sostenere un esame. Per poter testare correttamente una singola domanda nell'esame, ho bisogno di eseguire una query che trovi questa domanda nel DB. Successivamente, ho bisogno di trovare questa domanda in un opuscolo degli esami che viene assegnato a un numero di ID studenti falsi. Pertanto, ciò che devo fare è ottenere questo ID studente per poter accedere all'applicazione per testare questa particolare domanda. Ottenere questi dati per poter accedere alla domanda appropriata è la parte che richiede tempo.