Che cos'è uno strumento di test automatizzato?
Proprio come un prodotto fisico viene testato per verificare se soddisfa il comportamento e le specifiche desiderate, così anche il software viene testato. I test del software possono essere eseguiti manualmente da persone o utilizzando strumenti. Uno strumento di test automatizzato è un software utilizzato per testare il software di destinazione, ovvero il software in esame. Tale strumento esegue vari test sul software di destinazione e determina se i test sono stati superati correttamente.
Il software deve essere testato per garantire che vengano generati risultati corretti, che vengano accettati e elaborati input validi e che gli input non validi vengano rifiutati. Il test è necessario per determinare se i risultati vengono generati rapidamente, il software funziona bene anche se un gran numero di persone vi accede contemporaneamente e così via. I test manuali vengono spesso utilizzati, ma dipendono dalla completezza delle persone che effettuano i test. Il test del software richiede tempo manualmente e richiede un numero significativo di persone per la maggior parte delle applicazioni non banali, aumentando così il costo. Inoltre, i test per migliaia di utenti simultanei o grandi volumi di dati non possono essere facilmente eseguiti in modo manuale.
L'automazione del test è l'uso di strumenti per testare il software. Uno strumento di test automatizzato è esso stesso un software che potrebbe essere sviluppato, acquistato o acquisito. Lo strumento in genere avvia l'esecuzione del software di destinazione e passa vari input al software di destinazione per testare varie condizioni. Valuta gli output corrispondenti del software target e tiene traccia dell'esito pass / fail di ciascun test. Al termine di una serie di test, in genere lo strumento fornisce un riepilogo dei risultati in modo da poter determinare rapidamente il numero e la gravità dei difetti.
Uno strumento di test automatizzato può funzionare in due modi. In primo luogo, può essere guidato dal codice, ovvero lo strumento può essere strettamente correlato al codice scritto in modo da verificare che i risultati per vari input siano corretti. In secondo luogo, può essere basato sull'interfaccia utente in cui vengono imitate le attività degli utenti come movimenti del mouse, input da tastiera, input vocali, ecc. E gli output forniti agli utenti vengono esaminati per verificarne la correttezza. In quest'ultimo caso, le attività effettive di una persona potrebbero essere registrate e quindi riprodotte dallo strumento, oppure tali attività potrebbero essere generate da uno script di comandi inviato allo strumento.
Sul mercato sono disponibili strumenti di test automatizzati per scopi generici. La maggior parte sono piuttosto costosi, ma alcuni strumenti sono disponibili gratuitamente. Se il software di destinazione è altamente specifico o unico, probabilmente uno strumento di test deve essere sviluppato su misura dal team stesso del software. Come con tutto il software, gli strumenti stessi hanno dei limiti e funzionano correttamente solo se vengono forniti dati di input validi. Se uno non alimenta una serie relativamente completa di test, lo strumento non aiuterà a determinare la qualità del software di destinazione.
Uno strumento di test automatizzato presenta molti vantaggi. Una volta creata una serie di test, i test possono essere eseguiti più rapidamente di quanto una persona possa eseguirli. I test possono essere eseguiti durante la notte o ad ore dispari, lasciando le persone libere di concentrarsi su ciò che fanno meglio. I test possono essere ripetuti più volte per determinare se nel software di destinazione si sono verificati errori man mano che vengono modificati nel tempo.