Requisiti educativi
Molti datori di lavoro richiedono una laurea associata in tecnologia elettronica o un campo correlato; tuttavia, le posizioni di tecnico di test del software sono a volte considerate posizioni di ingegneria del software entry-level, così alcuni datori di lavoro offrono stage e lavori estivi agli studenti che perseguono una laurea in informatica. In alcuni campi, come lo sviluppo di videogiochi, i tester esperti di computer possono essere assunti mentre sono ancora alle superiori. L'International Institute for Software Testing (IIST) offre la certificazione come Certified Software Test Professional. L'American Society for Quality offre anche la certificazione come Certified Quality Improvement Associate, conosciuto anche come CQIA.
Capacità necessarie
I tecnici di test del software devono essere analitici, orientati al dettaglio e altamente organizzati per risolvere accuratamente i problemi e documentare i loro risultati mentre lavorano su diversi progetti contemporaneamente. Devono essere in grado di installare e disinstallare applicazioni, operare protocolli di test e scrivere piani e programmi di test del software. Oltre ad avere esperienza con le applicazioni software, devono avere familiarità con l'hardware del computer ed essere in grado di leggere diagrammi tecnici, così come stare seduti per lunghi periodi di tempo, eseguendo compiti ripetitivi. Anche se i tester passano molto del loro tempo a lavorare in modo indipendente, la comunicazione e le abilità interpersonali sono anche essenziali per interagire con i membri del team di sviluppo.
Requisiti del test
Il test del software non è un'attività da intraprendere quando il prodotto è pronto. Un test del software efficace inizia con un piano adeguato dalla fase dei requisiti utente. La testabilità del software è la facilità con cui un programma di computer viene testato. Le metriche possono essere usate per misurare la testabilità di un prodotto. I requisiti per un Software Testing efficace sono dati nelle seguenti sottosezioni.
Operabilità nel Software Testing:
1. Meglio funziona il software, più efficientemente può essere testato.
2. Il sistema ha pochi bug (i bug aggiungono analisi e report al processo di test)
3. Nessun bug blocca l'esecuzione dei test.
4. Il prodotto si evolve in stadi funzionali (il prodotto si evolve in fasi funzionali). Il prodotto si evolve in fasi funzionali (permette lo sviluppo e il test simultanei)
Osservabilità nei test del software:
1. Ciò che viene visto è ciò che viene testato
2. Viene generato un output distinto per ogni input
3. Gli stati del sistema e le variabili sono visibili o interrogabili durante l'esecuzione
4. Gli stati passati del sistema e le variabili sono visibili o interrogabili (es, registri delle transazioni)
5. Tutti i fattori che influenzano l'output sono visibili
6. L'output errato è facilmente identificato
7. L'input errato è facilmente identificato
8. Gli errori interni sono automaticamente rilevati attraverso meccanismi di auto-test
9. Gli errori interni sono automaticamente riportati
10. Il codice sorgente è accessibile
Controllabilità nel Software Testing:
1. Meglio il software è controllato, più il testing può essere automatizzato e ottimizzato.
2. Tutti i possibili output possono essere generati attraverso qualche combinazione di input nel Software Testing
3. Tutto il codice è eseguibile attraverso qualche combinazione di input nel Software Testing
4. Gli stati del software e dell'hardware possono essere controllati direttamente dal testing
5. I formati di input e output sono coerenti e strutturati nel Software Testing
6. I test possono essere convenientemente specificati, automatizzati e riprodotti.
Decomponibilità nel Software Testing:
1. Controllando l'ambito del testing, i problemi possono essere isolati velocemente, e possono essere eseguiti test più intelligenti.
2. Il sistema software è costruito da moduli indipendenti
3. I moduli del software possono essere testati indipendentemente nel Software Testing. I moduli del software possono essere testati indipendentemente nel Software Testing
Semplicità nel Software Testing:
1. Meno c'è da testare, più velocemente può essere testato nel Software Testing
2. Semplicità funzionale
3. Semplicità strutturale
4. Semplicità del codice
Stabilità nel Software Testing:
1. Meno cambiamenti ci sono, meno problemi ci sono. Minori sono i cambiamenti, minori sono le interruzioni nei test
2. I cambiamenti al software sono poco frequenti
3. I cambiamenti al software sono controllati nei test del software
4. I cambiamenti al software non invalidano i test esistenti nei test del software
5. Il software si riprende bene dai fallimenti nel Software Testing
Understandability nel Software Testing:
1. Più informazioni abbiamo, più intelligente testeremo
2. Il design è ben compreso nel Software Testing
3. Le dipendenze tra i componenti interni esterni e condivisi sono ben comprese.
4. I cambiamenti al design sono comunicati.
5. La documentazione tecnica è immediatamente accessibile
6. La documentazione tecnica è ben organizzata nel Software Testing
7. La documentazione tecnica è specifica e dettagliata
8. La documentazione tecnica è accurata