Ciclo di vita del test TF

Il ciclo di vita di un test eseguito utilizzando Trade Federation è composto da quattro fasi separate, progettate attorno a interfacce formalmente definite.

Interfacce definite

  • Provider di build : fornisce una build da testare, scaricando i file appropriati se necessario.
  • Preparatore target : prepara l'ambiente di test, eventualmente includendo l'installazione del software e la configurazione del dispositivo.
  • Test : esegue i test e raccoglie i risultati dei test. Può trattarsi di qualsiasi JUnit Test, sebbene la nostra interfaccia IRemoteTest sia progettata specificamente per funzionare bene nell'ambiente della Federazione dei commercianti.
  • Ascoltatore di invocazione del test (report dei risultati) : ascolta i risultati del test, solitamente allo scopo di inoltrare i risultati del test a un repository o visualizzarli al Test Runner.

L'entità di test fondamentale in TF è una configurazione (config). Una configurazione è un file XML che dichiara i componenti del ciclo di vita di un test.

Questa separazione del ciclo di vita del test ha lo scopo di consentirne il riutilizzo. Utilizzando questo design, lo sviluppatore può creare un test una volta, quindi l'integratore può creare diverse configurazioni per eseguire quel test in ambienti diversi. Ad esempio, potrebbero creare una configurazione che eseguirà un test su un computer locale e scaricherà il risultato su stdout. Potrebbero quindi creare una seconda configurazione che eseguirebbe lo stesso test, ma utilizzerebbe un diverso ascoltatore di invocazione del test per archiviare i risultati del test in un database. Potrebbe essere progettata una terza configurazione per eseguire il test in modo continuo da un laboratorio di test da qualche parte.

È utile notare qui che una Configuration insieme ai suoi argomenti della riga di comando (come forniti dal Test Runner) è nota come Command . Quando TF accoppia un Command con un ITestDevice e lo esegue, l'oggetto successivo è noto come Invocation . In breve, un'invocazione comprende l'esecuzione completa del test TF, attraverso il suo intero ciclo di vita.

Componenti di configurazione aggiuntivi

  • Ripristino del dispositivo : meccanismo per ripristinare la comunicazione del dispositivo in caso di perdita.
  • Logger : raccoglie i dati di registrazione scambiati.

Risultati ed errori scenici

Ogni fase di un'invocazione viene eseguita in sequenza e ha un obiettivo specifico. Questa sezione descrive gli output e gli errori usuali di ciascuna fase.

Costruisci fornitore

Questa fase crea e restituisce un oggetto IBuildInfo che contiene tutti i riferimenti ai file richiesti per impostare ed eseguire i test.

L'errore più comune in questa fase è l'impossibilità di scaricare o trovare i file richiesti.

Un errore in questa fase comporta la segnalazione diretta dell'errore e l'assenza di test eseguiti.

Preparazione del bersaglio

Questa fase imposta gli stati necessari per l'obiettivo sottoposto a test. Questa fase può modificare il dispositivo o la configurazione dell'host in base alle esigenze per la determinata invocazione del test.

Gli errori comuni in questa fase solitamente comportano l'impossibilità di impostare il dispositivo in un determinato stato (ad esempio, un errore di flashing) e l'impossibilità di trovare i file richiesti per l'installazione.

Un errore in questa fase comporta l'esecuzione della pulizia della destinazione, la segnalazione dell'errore e l'assenza di test in esecuzione.

Test

Questa fase esegue i test richiesti sul target precedentemente preparato e riporta tutti i risultati dell'esecuzione dei test.

Gli errori comuni in questa fase di solito riguardano la non disponibilità del target sottoposto a test o qualche errore che causa l'esecuzione parziale dei test. Questi errori sono problemi infrastrutturali che influiscono sull'esecuzione stessa del test anziché sul fallimento di un singolo caso di test.

Un errore in questa fase comporta l'interruzione dell'esecuzione del test, l'esecuzione della pulizia della destinazione, la segnalazione dell'errore e l'ottenimento di risultati parziali.

Reporting dei risultati

Questa fase segnala i risultati e gli errori ai servizi configurati (ad esempio, server e file locali).

Sebbene i singoli reporter dei risultati possano contenere errori, sono isolati gli uni dagli altri (un reporter non vede gli errori di un altro). Questi errori influiscono solo sul reporting dei risultati del singolo segnalatore e gli errori possono essere visualizzati nei registri.