Tipi di test del software (100 esempi)

Che cos'è un tipo di test del software?

Il tipo di test del software è una classificazione di diverse attività di test in categorie, ciascuna con un obiettivo di test definito, una strategia di test e risultati finali del test. L'obiettivo di avere un tipo di test è convalidare l'applicazione sotto test (AUT) per l'obiettivo del test definito.

Ad esempio, l'obiettivo del test di accessibilità è convalidare l'AUT affinché sia ​​accessibile alle persone disabili. Pertanto, se la tua soluzione software deve essere adatta ai disabili, verificala rispetto ai casi di test di accessibilità.

Tipi di test del software

Un elenco di 100 tipi di test del software insieme alle definizioni. Una lettura obbligata per qualsiasi professionista del controllo qualità. Considera questa la tua guida a tutti i tipi di test del software.

Tipi di test del software

  1. Test di accettazione: Test formali condotti per determinare se un sistema soddisfa o meno i criteri di accettazione e per consentire al cliente di determinare se accettare o meno il sistema. Di solito viene eseguito dal cliente. Continua a leggere Test di accettazione
  2. Test di accessibilità: Tipo di test che determina l'usabilità di un prodotto per le persone con disabilità (non udenti, ciechi, disabili mentali, ecc.). Il processo di valutazione è condotto da persone con disabilità. Continua a leggere Test di Accessibilità
  3. Test attivi: Tipo di test consistente nell'introduzione dei dati di test e nell'analisi dei risultati dell'esecuzione. Di solito è condotto dal team di test.
  4. Test agili: Pratica di test del software che segue i principi del manifesto agile, enfatizzando il test dal punto di vista dei clienti che utilizzeranno il sistema. Di solito viene eseguito dai team di QA. Continua a leggere Test Agile
  5. Test dell'età: Tipo di test che valuta la capacità di un sistema di funzionare in futuro. Il processo di valutazione è condotto da team di test.
  6. Test ad hoc: Test eseguiti senza pianificazione e documentazione: il tester tenta di "rompere" il sistema provando in modo casuale la funzionalità del sistema. Viene eseguito dal team di test. Continua a leggere Test ad hoc
  7. Test alfa: Alpha Testing è un tipo di test software condotto presso il sito dello sviluppatore per identificare bug, problemi di usabilità e lacune di funzionalità prima di rilasciare il prodotto per il beta testing. Coinvolge tester interni, come sviluppatori e team QA, e talvolta utenti finali selezionati in un ambiente controllato. Leggi di più su Alpha Testing
  8. Test di asserzione: Tipo di test che consiste nel verificare se le condizioni confermano i requisiti del prodotto. Viene eseguito dal team di test.
  9. Test API: Tecnica di test simile allo unit test in quanto mira al livello di codice. L'Api Testing differisce dallo Unit Testing in quanto in genere è un'attività di QA e non un'attività di sviluppatore. Continua a leggere Test API
  10. Test su tutte le coppie: Metodo di test combinatorio che verifica tutte le possibili combinazioni discrete di parametri di input. Viene eseguito dai team di test.
  11. Test automatizzati: Tecnica di test che utilizza strumenti di test di automazione per controllare la configurazione dell'ambiente, l'esecuzione dei test e il reporting dei risultati. Viene eseguito da un computer e viene utilizzato all'interno dei team di test. Continua a leggere Test automatizzati
  12. Test del percorso di base: Un meccanismo di testing che deriva una misura di complessità logica di un design procedurale e la usa come guida per definire un set di base di percorsi di esecuzione. Viene utilizzato dai team di testing quando definiscono i casi di test. Leggi di più su Test del percorso di base
  13. Test di compatibilità con le versioni precedenti: Metodo di test che verifica il comportamento del software sviluppato con versioni precedenti dell'ambiente di test. Viene eseguito dal team di test.
  14. Beta test: Test finale prima del rilascio dell'applicazione per scopi commerciali. In genere viene eseguito dagli utenti finali o da altri.
  15. Test di riferimento: Tecnica di test che utilizza insiemi rappresentativi di programmi e dati progettati per valutare le prestazioni dell'hardware e del software del computer in una determinata configurazione. Viene eseguito da team di test. Continua a leggere Test di riferimento
  16. Test di integrazione del Big Bang: Tecnica di test che integra i singoli moduli del programma solo quando tutto è pronto. Viene eseguito dai team di test.
  17. Test di portabilità binaria: Tecnica che verifica la portabilità di un'applicazione eseguibile su piattaforme e ambienti di sistema, solitamente per conformarsi a una specifica ABI. Viene eseguito dai team di test.
  18. Test del valore limite: Tecnica di test del software in cui i test sono progettati per includere rappresentanti dei valori limite. Viene eseguito dai team di test del QA. Continua a leggere Test del valore limite
  19. Test di integrazione dal basso verso l'alto: Nel test di integrazione dal basso verso l'alto, i moduli al livello più basso vengono sviluppati per primi e gli altri moduli che vanno verso il programma "principale" vengono integrati e testati uno alla volta. Di solito viene eseguito dai team di test.
  20. Test sui rami: Tecnica di test in cui tutti i rami del codice sorgente del programma vengono testati almeno una volta. Questo viene fatto dallo sviluppatore.
  21. Test di ampiezza: Una suite di test che esercita la piena funzionalità di un prodotto ma non testa le funzionalità in dettaglio. Viene eseguito da team di test.
  22. Test della scatola nera: Un metodo di test del software che verifica la funzionalità di un'applicazione senza avere una conoscenza specifica del codice/della struttura interna dell'applicazione. I test si basano su requisiti e funzionalità. Viene eseguito dai team di QA. Continua a leggere Test della scatola nera
  23. Test guidati dal codice: Tecnica di test che utilizza framework di test (come xUnit) che consentono l'esecuzione di unit test per determinare se varie sezioni del codice funzionano come previsto in varie circostanze. Viene eseguito dai team di sviluppo.
  24. Test di compatibilità: Tecnica di test che convalida le prestazioni di un software in un particolare hardware/software/sistema operativo/ambiente di rete. Viene eseguito dai team di test. Continua a leggere Test di compatibilità
  25. Test comparativi: Tecnica di test che confronta i punti di forza e di debolezza del prodotto con versioni precedenti o altri prodotti simili. Può essere eseguita da tester, sviluppatori, product manager o product owner. Leggi di più su Test dei componenti
  26. Test dei componenti: Tecnica di test simile allo unit test ma con un livello di integrazione più elevato: il test viene eseguito nel contesto dell'applicazione invece di testare direttamente un metodo specifico. Può essere eseguito da team di test o di sviluppo.
  27. Test di configurazione: Tecnica di test che determina la configurazione minima e ottimale di hardware e software e l'effetto dell'aggiunta o della modifica di risorse come memoria, unità disco e CPU. Di solito viene eseguito dagli ingegneri del test delle prestazioni. Continua a leggere Test di configurazione
  28. Test di copertura delle condizioni: Tipo di test del software in cui ciascuna condizione viene eseguita rendendola vera e falsa, in ciascuno dei modi almeno una volta. In genere viene realizzato dai team di test di automazione.
  29. Test di conformità: Tipo di test che verifica se il sistema è stato sviluppato in conformità con standard, procedure e linee guida. Solitamente viene eseguito da società esterne che offrono il marchio “Certified OGC Compliant”.
  30. Test di concorrenza: Test multiutente volti a determinare gli effetti dell'accesso allo stesso codice applicativo, modulo o record di database. Di solito viene eseguito dagli ingegneri delle prestazioni. Continua a leggere Test di concorrenza
  31. Test di conformità: Il processo di verifica della conformità di un'implementazione alle specifiche su cui si basa. Di solito viene eseguito da team di test. Continua a leggere Test di conformità
  32. Test guidati dal contesto: Una tecnica di test Agile che sostiene la valutazione continua e creativa delle opportunità di test alla luce delle potenziali informazioni rivelate e del valore di tali informazioni per l'organizzazione in un momento specifico. Di solito viene eseguito dai team di test Agile.
  33. Test di conversione: Test di programmi o procedure utilizzati per convertire dati da sistemi esistenti per utilizzarli in sistemi sostitutivi. Di solito viene eseguito dai team di QA.
  34. Test sulla copertura delle decisioni: Tipo di test del software in cui ogni condizione/decisione viene eseguita impostandola su vero/falso. In genere viene realizzato dai team di test di automazione.
  35. Test distruttivi: Tipo di prova in cui vengono effettuate prove fino alla rottura del provino, al fine di comprendere le prestazioni strutturali di un provino o il comportamento del materiale sotto carichi diversi. Di solito viene eseguito dai team di QA.
    Leggi di più su Test distruttivi
  36. Test delle dipendenze: Tipo di test che esamina i requisiti di un'applicazione per il software preesistente, gli stati iniziali e la configurazione al fine di mantenere la corretta funzionalità. Di solito viene eseguito da team di test.
  37. Test dinamico: Termine utilizzato nell'ingegneria del software per descrivere il test del comportamento dinamico del codice. In genere viene eseguito dai team di test. Continua a leggere Test dinamici
  38. Test del dominio: Tecnica di test white box che contiene controlli che il programma accetti solo input validi. Di solito viene eseguita da team di sviluppo software e occasionalmente da team di test di automazione.
  39. Test di gestione degli errori: Tipo di test software che determina la capacità del sistema di elaborare correttamente le transazioni errate. Di solito è eseguito dai team di testing.
  40. Test end-to-end: Similmente al test di sistema, prevede il test di un ambiente applicativo completo in una situazione che imita l'utilizzo nel mondo reale, come l'interazione con un database, l'utilizzo delle comunicazioni di rete o l'interazione con altro hardware, applicazioni o sistemi, se appropriato. Viene eseguito dai team di QA. Continua a leggere Test end-to-end
  41. Test di resistenza: Tipo di test che verifica la presenza di perdite di memoria o altri problemi che potrebbero verificarsi con un'esecuzione prolungata. Di solito viene eseguito da ingegneri delle prestazioni. Continua a leggere Test di resistenza
  42. Test esplorativi: Tecnica di test della scatola nera eseguita senza pianificazione e documentazione. Di solito è eseguita da tester manuali. Leggi di più su Test esplorativi
  43. Test di partizionamento di equivalenza: Tecnica di test del software che divide i dati di input di un'unità software in partizioni di dati da cui possono essere derivati ​​casi di test. di solito viene eseguito dai team di QA. Continua a leggere Test di partizionamento di equivalenza
  44. Test di iniezione dei guasti: Elemento di una strategia di test completa che consente al tester di concentrarsi sul modo in cui l'applicazione sotto test è in grado di gestire le eccezioni. Viene eseguito dai team di QA.
  45. Verifica formale Test: L'atto di dimostrare o confutare la correttezza degli algoritmi previsti alla base di un sistema rispetto a una determinata specificazione o proprietà formale, utilizzando metodi matematici formali. Di solito viene eseguito dai team di QA.
  46. Test funzionale: Tipo di test black box che basa i suoi casi di test sulle specifiche del componente software in fase di test. Viene eseguito da team di test. Leggi di più su Test di funzionalità
  47. Test fuzz: Tecnica di test del software che fornisce dati non validi, imprevisti o casuali agli input di un programma: un'area speciale di test di mutazione. Il test fuzz viene eseguito dai team di test. Continua a leggere Test fuzz
  48. Test sui gorilla: Tecnica di test del software che si concentra sul test approfondito di un particolare modulo. Viene eseguito dai team di controllo qualità, solitamente durante l'esecuzione di test completi.
  49. Gray Box Test: Una combinazione di nero Box e bianco Box metodologie di test: testare un pezzo di software rispetto alle sue specifiche ma utilizzando una certa conoscenza del suo funzionamento interno. Può essere eseguito dai team di sviluppo o di test.
  50. Prova della scatola di vetro: Simile al white box testing, basato sulla conoscenza della logica interna del codice di un'applicazione. Viene eseguito dai team di sviluppo.
  51. Test del software GUI: Il processo di test di un prodotto che utilizza un'interfaccia utente grafica, per garantire che soddisfi le specifiche scritte. Questo viene normalmente fatto dai team di test. Continua a leggere Test del software GUI
  52. Test di globalizzazione: Metodo di test che verifica la corretta funzionalità del prodotto con qualsiasi impostazione culturale/locale utilizzando ogni tipo di input internazionale possibile. Viene eseguito dal team di test. Continua a leggere Test di globalizzazione
  53. Test di integrazione ibrida: Tecnica di test che combina tecniche di integrazione top-down e bottom-up per sfruttare i vantaggi di questo tipo di test. Di solito viene eseguito dai team di test.
  54. Test d'integrazione: La fase del test del software in cui i singoli moduli software vengono combinati e testati come gruppo. Di solito è condotto da team di test. Continua a leggere Test d'integrazione
  55. Test dell'interfaccia: Test condotti per valutare se i sistemi o i componenti si trasmettono correttamente dati e controlli. Di solito viene eseguito sia dai team di test che da quelli di sviluppo. Continua a leggere Test di interfaccia
  56. Test di installazione/disinstallazione: Lavoro di garanzia della qualità incentrato su ciò che i clienti dovranno fare per installare e configurare con successo il nuovo software. Può comportare processi di installazione/disinstallazione completi, parziali o di aggiornamenti e in genere viene eseguito dal tecnico del test del software insieme al gestore della configurazione.
  57. Test di internazionalizzazione: Il processo che garantisce che la funzionalità del prodotto non venga interrotta e che tutti i messaggi vengano esternalizzati correttamente quando utilizzati in lingue e impostazioni locali diverse. Di solito viene eseguito dai team di test.
  58. Test tra sistemi: Una tecnica di testing incentrata sulla verifica del corretto funzionamento delle interconnessioni tra le applicazioni. Solitamente è eseguita dai team di testing.
  59. Test basati su parole chiave: Conosciuto anche come test basato su tabelle o test con parole-azione, è una metodologia di test del software per test automatizzati che separa il processo di creazione del test in due fasi distinte: una fase di pianificazione e una fase di implementazione. Può essere utilizzato dai team di test manuali o automatizzati. Continua a leggere Test basati su parole chiave
  60. Prova di carico: Tecnica di test che pone una domanda su un sistema o dispositivo e ne misura la risposta. Di solito è condotto dagli ingegneri delle prestazioni. Continua a leggere Caricare i test
  61. Test di localizzazione: Parte del processo di test del software si concentrava sull'adattamento di un'applicazione globalizzata a una particolare cultura/locale. Normalmente viene eseguito dai team di test. Continua a leggere Test di localizzazione
  62. Test del circuito: Una tecnica di test white box che esercita i loop di programma. È eseguita dai team di sviluppo. Leggi di più su Test del circuito
  63. Test manuali con script: Metodo di test in cui i casi di test vengono progettati e rivisti dal team prima di eseguirli. Viene eseguito da team di test manuali.
  64. Test di supporto manuale: Tecnica di test che prevede il test di tutte le funzioni eseguite dalle persone durante la preparazione dei dati e l'utilizzo di questi dati dal sistema automatizzato. è condotto da team di test.
  65. Test basati su modelli: L'applicazione della progettazione basata su modelli per la progettazione e l'esecuzione degli artefatti necessari per eseguire test del software. Di solito viene eseguito da team di test. Continua a leggere Test basati su modelli
  66. Test di mutazione: Metodo di test del software che prevede la modifica del codice sorgente o del codice byte dei programmi in piccoli modi al fine di testare sezioni del codice a cui si accede raramente o mai durante la normale esecuzione dei test. Normalmente è condotto da tester. Continua a leggere Test di mutazione
  67. Test guidati dalla modularità: Tecnica di test del software che richiede la creazione di piccoli script indipendenti che rappresentano moduli, sezioni e funzioni dell'applicazione sotto test. Di solito viene eseguito dal team di test.
  68. Test non funzionali: Tecnica di test che si concentra sul test di un'applicazione software per i suoi requisiti non funzionali. Può essere condotto dagli ingegneri delle prestazioni o da team di test manuali. Continua a leggere Test non funzionali
  69. Test negativo: Noto anche come "test to fail" - metodo di test in cui lo scopo dei test è dimostrare che un componente o un sistema non funziona. Viene eseguito da tester manuali o automatici. Leggi di più su Test negativo
  70. OperaTest nazionali: Tecnica di test condotta per valutare un sistema o un componente nel suo ambiente operativo. Di solito viene eseguito dai team di test. Continua a leggere Operatest nazionali
  71. Test di array ortogonali: Metodo di test sistematico e statistico che può essere applicato ai test dell'interfaccia utente, ai test di sistema, ai test di regressione, ai test di configurazione e ai test delle prestazioni. Viene eseguito dal team di test. Continua a leggere Test di array ortogonali
  72. Test di coppia: Tecnica di sviluppo software in cui due membri del team lavorano insieme su una tastiera per testare l'applicazione software. Uno esegue i test e l'altro li analizza o li rivede. Questo può essere fatto tra un tester e uno sviluppatore o un analista aziendale o tra due tester con entrambi i partecipanti che si alternano alla guida della tastiera.
  73. Test passivo: Tecnica di test che consiste nel monitorare i risultati di un sistema in funzione senza introdurre particolari dati di test. Viene eseguito dal team di test.
  74. Test paralleli: Tecnica di test che ha lo scopo di garantire che una nuova applicazione che ha sostituito la versione precedente sia stata installata e funzioni correttamente. È condotto dal team di test. Continua a leggere Test in parallelo
  75. Test del percorso: Tipico test white box che ha l'obiettivo di soddisfare i criteri di copertura per ogni percorso logico attraverso il programma. Di solito è eseguito dal team di sviluppo. Leggi di più su Test del percorso
  76. Test di penetrazione: Metodo di test che valuta la sicurezza di un sistema informatico o di una rete simulando un attacco proveniente da una fonte dannosa. Di solito vengono condotti da società specializzate nei test di penetrazione. Continua a leggere Test di penetrazione
  77. Test delle prestazioni: Test funzionali condotti per valutare la conformità di un sistema o componente ai requisiti prestazionali specificati. Di solito è condotto dall'ingegnere delle prestazioni. Continua a leggere Test di Performance
  78. Test di qualificazione: Test rispetto alle specifiche della versione precedente, solitamente condotti dallo sviluppatore per il consumatore, per dimostrare che il software soddisfa i requisiti specificati.
  79. Ramp Test: Tipo di test che consiste nell'innalzare continuamente un segnale in ingresso fino al guasto del sistema. Può essere condotto dal team di test o dall'ingegnere delle prestazioni.
  80. Test di regressione: Tipo di test del software che cerca di scoprire errori del software dopo che sono state apportate modifiche al programma (ad esempio correzioni di bug o nuove funzionalità), testando nuovamente il programma. Viene eseguito dai team di test. Continua a leggere Test di regressione
  81. Test di recupero: Tecnica di test che valuta la capacità di recupero di un sistema da arresti anomali, guasti hardware o altri problemi catastrofici. Viene eseguito dai team di test. Continua a leggere Test di recupero
  82. Test dei requisiti: Tecnica di test che convalida che i requisiti siano corretti, completi, non ambigui e logicamente coerenti e consente di progettare un insieme necessario e sufficiente di casi di test da tali requisiti. Viene eseguito dai team di QA.
  83. Test di sicurezza: Un processo per determinare che un sistema informativo protegge i dati e mantiene la funzionalità come previsto. Può essere eseguito da team di test o da società specializzate nei test di sicurezza. Continua a leggere Test di sicurezza
  84. Test di sanità mentale: Tecnica di test che determina se una nuova versione del software funziona abbastanza bene da essere accettata per un importante sforzo di test. Viene eseguito dai team di test. Continua a leggere Test di sanità mentale
  85. Test dello scenario: Attività di testing che utilizza scenari basati su una storia ipotetica per aiutare una persona a riflettere su un problema o sistema complesso per un ambiente di testing. Viene eseguita dai team di testing. Leggi di più su Test degli scenari
  86. Test di scalabilità: Parte della serie di test non funzionali che testano un'applicazione software per misurarne la capacità di espansione, sia che si tratti del carico utente supportato, del numero di transazioni, del volume di dati, ecc. È condotto dall'ingegnere delle prestazioni. Continua a leggere Test di scalabilità
  87. Test delle dichiarazioni: White box testing che soddisfa il criterio che ogni istruzione in un programma venga eseguita almeno una volta durante il test del programma. Di solito è eseguito dal team di sviluppo.
  88. Test statico: Una forma di test del software in cui il software non viene effettivamente utilizzato, verifica principalmente l'integrità del codice, dell'algoritmo o del documento. Viene utilizzato dallo sviluppatore che ha scritto il codice. Continua a leggere Test statici
  89. Test di stabilità: Tecnica di test che tenta di determinare se un'applicazione andrà in crash. Di solito è condotto dall'ingegnere delle prestazioni. Continua a leggere Test di stabilità
  90. Test del fumo: Tecnica di test che esamina tutti i componenti di base di un sistema software per garantire che funzionino correttamente. In genere, il test del fumo viene condotto dal team di test, immediatamente dopo la creazione del software. Continua a leggere Test del fumo
  91. Test di archiviazione: Tipo di test che verifica che il programma sottoposto a test memorizzi i file di dati nelle directory corrette e che riservi spazio sufficiente per impedire una terminazione imprevista derivante dalla mancanza di spazio. Di solito viene eseguito dal team di test. Continua a leggere Test di archiviazione
  92. Prova di sforzo: Tecnica di test che valuta un sistema o un componente entro o oltre i limiti dei requisiti specificati. Di solito è condotto dall'ingegnere delle prestazioni. Continua a leggere Test di stress
  93. Test strutturali: Tecnica di test white box che tiene conto della struttura interna di un sistema o componente e assicura che ogni istruzione di programma svolga la sua funzione prevista. Di solito è eseguita dagli sviluppatori software.
  94. Test di sistema: Il processo di test di un sistema hardware e software integrato per verificare che il sistema soddisfi i requisiti specificati. Viene condotto dai team di test sia nell'ambiente di sviluppo che in quello di destinazione. Continua a leggere Test di sistema
  95. Test di integrazione del sistema: Processo di test che esercita la coesistenza di un sistema software con altri. Di solito viene eseguito dai team di test. Continua a leggere Test di integrazione del sistema
  96. Test di integrazione top-down: Tecnica di test che prevede l'avvio dal vertice di una gerarchia di sistema nell'interfaccia utente e l'utilizzo di stub per testare dall'alto verso il basso fino all'implementazione dell'intero sistema. È condotto dai team di test.
  1. Test della discussione: Una variazione della tecnica di test top-down in cui la progressiva integrazione dei componenti segue l'implementazione di sottoinsiemi di requisiti. Di solito viene eseguito dai team di test. Continua a leggere Test del filo
  1. Upgrade Test: Tecnica di test che verifica se le risorse create con versioni precedenti possono essere utilizzate correttamente e che l'apprendimento dell'utente non viene messo in discussione. Viene eseguito dai team di test.
  2. Test dell'unità: Metodo di verifica e validazione del software in cui un programmatore verifica se le singole unità del codice sorgente sono idonee all'uso. Di solito è condotto dal team di sviluppo. Continua a leggere Test unitari
  3. Test dell'interfaccia utente: Tipo di test eseguito per verificare la facilità d'uso dell'applicazione. Viene eseguito da team di test. Continua a leggere Test dell'interfaccia utente

Bonus!!! È sempre bene sapere qualche extra

  1. Test di usabilità: Tecnica di test che verifica la facilità con cui un utente può imparare a utilizzare, preparare input e interpretare output di un sistema o componente. Di solito viene eseguito dagli utenti finali. Continua a leggere Test di usabilità
  2. Test del volume: Test che confermano che eventuali valori che potrebbero aumentare nel tempo (come conteggi accumulati, registri e file di dati) possono essere accettati dal programma e non causeranno l'interruzione del funzionamento del programma o il peggioramento del suo funzionamento in alcun modo. Di solito è condotto dall'ingegnere delle prestazioni. Continua a leggere Test di volume
  3. Test di vulnerabilità: Tipo di test che riguarda la sicurezza dell'applicazione e ha lo scopo di prevenire problemi che potrebbero compromettere l'integrità e la stabilità dell'applicazione. Può essere eseguito dai team di test interni o esternalizzato a società specializzate. Continua a leggere Test di vulnerabilità
  4. Test della scatola bianca: Tecnica di test basata sulla conoscenza della logica interna del codice di un'applicazione e include test come la copertura di istruzioni di codice, rami, percorsi e condizioni. Viene eseguito dagli sviluppatori di software. Continua a leggere Test della scatola bianca
  5. Test del flusso di lavoro: Tecnica di test end-to-end con script che duplica flussi di lavoro specifici che dovrebbero essere utilizzati dall'utente finale. Di solito è condotto da team di test. Continua a leggere Test del flusso di lavoro

Questo conclude l'elenco. Spero che ti sia piaciuto leggerlo. Per trovare gli strumenti appropriati per questo tipo di test e altri, esplora questa raccolta di strumenti di test.