Cos'è il cablaggio di prova? (Esempi)
⚡ Riepilogo intelligente
Test Harness nel testing del software riunisce stub, driver, dati di test e strumenti di esecuzione, consentendo ai team di convalidare i moduli prima ancora che esista ogni dipendenza e trasformando i cicli di test bloccati in una verifica automatizzata e ripetibile che riporta i risultati senza intervento manuale.

Test del cablaggio nel test del software
Test del cablaggio nel test del software è una raccolta di stub, driver e altri strumenti di supporto necessari per automatizzare l'esecuzione dei test. Test Harness esegue i test utilizzando una libreria di test e genera report di test. Test cablaggio contiene tutte le informazioni necessarie per compilare ed eseguire un test come casi di test, porta di distribuzione di destinazione (TDP), file sorgente in fase di test, stub, ecc.
In parole semplici, un "harness" racchiude il componente da verificare all'interno di un ambiente controllato. I moduli adiacenti mancanti vengono sostituiti da piccoli programmi fittizi, gli input provengono da un set di dati predefinito e ogni risultato viene scritto in un registro anziché essere letto a schermo. Le sezioni seguenti spiegano perché i team ne costruiscono uno, di cosa è composto, come funziona e dove può essere utilizzato.
Perché utilizzare l'imbracatura di prova?
Esiste un'imbracatura per eliminare l'attesa dal ciclo di test. Poiché simula tutto ciò che non è ancora pronto, un test del software Il team può iniziare a verificare il comportamento già nel primo sprint, anziché dopo l'integrazione finale. Il diagramma seguente mostra dove si colloca un connettore tra gli script di test e l'applicazione da testare.
- Automatizza il processo di test
- Eseguire suite di test di casi di test
- Genera rapporti di test associati
- Supporto per il debug
- Per registrare i risultati dei test per ciascuno dei test
- Aiuta gli sviluppatori a misurare la copertura del codice a livello di codice
- Aumentare la produttività del sistema attraverso l’automazione
- Migliorare la qualità dei componenti software e delle applicazioni
- Per gestire le condizioni complesse che i tester trovano difficili da simulare
Questi vantaggi contano soprattutto nei cicli di rilascio brevi. Quando il codice viene rilasciato più volte alla settimana, un difetto che sopravvive fino alla fase di integrazione costa molto di più trace più di uno bloccato contro un moncone il giorno in cui è stato scritto. Tale ricompensa arriva, tuttavia, solo quando l'imbracatura è assemblata con le parti giuste.
Componenti chiave di un cablaggio di prova
Un cablaggio non è un singolo programma, ma un insieme di componenti, ognuno dei quali elimina un ostacolo che altrimenti impedirebbe l'esecuzione di un test senza supervisione.
- Script di prova: Istruzioni automatizzate che indicano i passaggi da eseguire e il risultato atteso, scritte secondo il script di prova convegni.
- Motore di esecuzione dei test: Il runner che legge gli script in ordine, risolve le dipendenze e avvia l'esecuzione sequenziale o parallela.
- Archivio dati di test: I valori di input sono conservati al di fuori dello script in formato CSV, JSON, XML o in un database precompilato, spesso riempito da testare gli strumenti di generazione dei dati.
- Driver: Moduli fittizi che richiamano il componente da testare quando il livello superiore reale, come ad esempio un'interfaccia utente, non è ancora completo.
- Stub: Moduli fittizi chiamati che restituiscono risposte predefinite, ad esempio un servizio di pagamento che risponde "Pagamento effettuato con successo" senza contattare una banca.
- Validatore di output: Logica di asserzione che confronta l'output effettivo con il valore atteso e contrassegna ciascun caso come superato o fallito.
- Livello di registrazione e segnalazione: Timestamp, screenshot, output della console e un riepilogo dell'esecuzione che rendono ogni errore tracdisponibile in seguito.
Rimuovendo anche solo una parte, il cablaggio smette di essere automatico, perché a quel punto qualcosa deve essere fornito manualmente ad ogni ciclo.
Come funziona un cablaggio di prova?
Un'imbracatura ripete lo stesso ciclo ad ogni esecuzione. Conoscere quel ciclo ti dice esattamente dove il tuo test di automazione le risorse si collegano e quale passaggio fallisce quando un'esecuzione diventa rossa.
- Preparare l'ambiente: Il sistema risolve la configurazione dell'ambiente, apre le connessioni e carica i dispositivi, in modo che ogni esecuzione inizi dallo stesso stato noto.
- Carica gli script di test: Gli script, i parametri e i risultati attesi vengono letti dal repository. Non viene inserito alcun dato durante l'esecuzione, il che rende una seconda esecuzione comparabile alla prima.
- Sostituisci i moduli mancanti: I driver rappresentano chiamanti che non esistono ancora, mentre gli stub rappresentano servizi incompleti, instabili o costosi da chiamare.
- Avviare l'applicazione da testare: Il motore di esecuzione attiva il flusso di lavoro descritto dallo script, che si tratti di una chiamata di metodo o di un API richiesta o interazione con il browser.
- Cattura l'output effettivo: I valori di ritorno, i payload delle risposte, le righe del database, le righe di log e lo stato dello schermo vengono tutti registrati nel momento stesso in cui vengono prodotti.
- Confrontare con i risultati attesi: Il validatore di output esegue un'asserzione su ciascun valore acquisito. Qualsiasi discrepanza contrassegna il caso come fallito e registra sia il valore atteso che quello osservato.
- Registra e segnala: L'imbracatura scrive un timestamp trace dell'esecuzione e genera un report di successo/fallimento che uno sviluppatore può leggere senza dover rieseguire nulla.
- Smontare: I dati temporanei, le connessioni e lo stato stub vengono cancellati in modo che il caso successivo non possa ereditare residui da questo.
Suggerimento: Aggiorna i tuoi stub ogni volta che il modulo reale cambia. Uno stub che risponde ancora con il formato del trimestre precedente segnalerà un'esecuzione positiva mentre l'integrazione live è già interrotta.
Un esempio pratico rende il ciclo più concreto. Supponiamo che la pagina di checkout sia pronta, ma il gateway di pagamento non lo sia. Un driver invia la richiesta che l'interfaccia invierebbe normalmente, uno stub risponde prima con "Pagamento effettuato con successo" e poi con un timeout, e il validatore conferma l'ordine in un caso e richiede di riprovare nell'altro. Entrambi i percorsi vengono verificati prima che il team del gateway scriva una riga di codice.
Esistono due contesti in cui viene utilizzato Test Harness
Questo stesso meccanismo serve a due scopi distinti, e il vocabolario cambia leggermente a seconda di quale dei due si stia utilizzando.
- Test di automazione: Contiene il file script di prova, parametri necessari per eseguire questi script e raccogliere risultati per analizzarli
- Test d'integrazione: Viene utilizzato per mettere insieme due unità di codice o modulo che interagiscono tra loro per verificare se il comportamento combinato è quello previsto o meno
Consideriamo un modulo di login e un modulo di profilo che devono scambiarsi un token utente. Nel contesto dell'integrazione, un driver simula un login riuscito e passa il token alla logica del profilo, quindi la mappatura dei datipingIl controllo delle autorizzazioni e il rendering dello schermo possono essere tutti verificati prima che il servizio di autenticazione vero e proprio sia completato. Nel contesto dell'automazione, questa stessa coppia di casi viene aggiunta a una suite e rieseguita a ogni build senza che nessuno debba più intervenire.
Tipi di imbracature di prova
Poiché il software è strutturato a livelli, un sistema di controllo è solitamente specializzato per il livello che verifica. Quattro tipologie coprono quasi tutti i progetti.
A cablaggio di prova dell'unità esercita i pezzi di codice più piccoli, come una singola funzione o metodo, con ogni dipendenza sostituita da uno stub. È il più veloce da eseguire e il più economico da mantenere, motivo per cui unit test Le suite sono solitamente il primo strumento che un team sviluppa. Un utilizzo tipico è testare un calcolo delle imposte senza modificare il modulo di fatturazione.
An banco di prova per l'integrazione verifica che due o più moduli cooperino correttamente ed è il livello in cui emergono le discrepanze dei dati e le chiamate fallite. È il cablaggio descritto nel test d'integrazione Nel contesto di cui sopra, ad esempio, si verifica che un servizio di ordini consegni il payload corretto a un servizio di pagamento.
A cablaggio di prova del sistema guida un flusso end-to-end completo attraverso interfaccia, servizio e database, quindi test di sistema può confermare che le regole aziendali sono valide una volta che ogni livello è presente. A banco di prova per test di regressione quindi esegue nuovamente la suite accumulata dopo ogni modifica, che è ciò che rende test di regressione pratico quando diverse centinaia di scenari devono essere ripetuti ad ogni unione.
Prova gli strumenti di cablaggio
Ciascuna di queste tipologie è solitamente basata su uno strumento esistente piuttosto che creata da zero. Le due opzioni classiche rimangono i framework a livello di unità:
- giunzione: Strumento utilizzato durante l'utilizzo Java
- Nunità: Strumento utilizzato per l'utilizzo .Net quadro
Oltre a questi due, la maggior parte dei team aggiunge strumenti che estendono le funzionalità al browser, al livello API o al profilo di carico. La tabella seguente illustra le opzioni più comuni e il ruolo che ciascuna svolge.
| Chiavetta | adatto per | Ruolo all'interno dell'imbracatura |
|---|---|---|
| JUnit | Java unità e suite di integrazione | Fornisce driver, dispositivi e asserzioni |
| NUnità | Codice C# e VB.NET sulla piattaforma .NET | Stesso ruolo di JUnit per i linguaggi .NET |
| Selenium | Flussi end-to-end basati su browser | Funge da driver per il livello dell'interfaccia utente |
| TestNG | Grande Java suite che necessitano di gruppoping e corse parallele | Funge da motore di esecuzione dei test |
| PyTest | Python servizi e controlli a livello di API | Gli apparecchi fungono anche da stub e fornitori di dati |
| Apache JMeter | Scenari di carico, stress e prestazioni | Genera traffico sintetico contro l'applicazione in fase di test |
| Postman | API REST contracverifica t | Fornisce server fittizi che sostituiscono gli endpoint non ancora completati |
Qualunque combinazione tu scelga, il cablaggio si ripaga da solo solo quando funziona senza supervisione, quindi collegalo a un integrazione continua lavoro presto. Un catalogo più ampio di opzioni è elencato nel Guru99 strumenti di test Riepilogo. Una distinzione continua a generare confusione, ed è opportuno chiarirla prima di prendere una decisione.
Cablaggio di test e framework di test
Spesso si pensa che un harness e un framework di automazione siano la stessa cosa, ma in realtà rispondono a domande diverse: l'harness è ciò che esegue un test, mentre il framework è la struttura all'interno della quale vengono progettati i test. La tabella seguente li mette a confronto.
| Collaudare l'imbragatura | Test del framework di automazione |
|---|---|
| Un test cablaggio è composto da driver e stub, ovvero piccoli programmi fittizi che interagiscono con il software in prova | Si tratta di un insieme di processi, procedure, assolutitracconcetto e ambiente in cui vengono progettati e implementati i test automatizzati |
| Non è possibile eseguire lo script "Registra e riproduci" in Test Harness | Un tester può manualmente eseguire lo script "Registra e riproduci" in questo framework |
| Test cablaggio contiene tutte le informazioni necessarie per compilare ed eseguire un test come casi di test, porta di distribuzione di destinazione (TDP), file sorgente in fase di test, stub, ecc. | Il framework di automazione dei test contiene informazioni come libreria di test, strumenti di test, pratiche di test automatizzate, una piattaforma di test, ecc. |
| Un'imbracatura di prova è classificata in Test di automazione Test d'integrazione |
Quadro di automazione Esempi Test basati sui dati Test guidati da parole chiave Test guidati dalla modularità Test ibridi Test basato su modello Code test guidati Test guidati dal comportamento |

