In questo articolo sulle domande di intervista di Software Testing, ho raccolto le domande più frequenti poste dagli intervistatori. Queste domande sono state raccolte dopo aver consultato i migliori esperti del settore nel campo dei test manuali e di automazione. Se volete rispolverare le basi del test del software, cosa che vi consiglio di fare prima di andare avanti con questo articolo sulle domande di intervista di test del software, date un’occhiata a questo articolo su Software Testing Tutorial.
Nel caso vi siate imbattuti in altre domande durante le vostre interviste o abbiate domande che potrebbero essere utili anche per altri, condividetele nella sezione commenti di questo articolo. Nel frattempo, è possibile massimizzare le opportunità di carriera di test di automazione che sono sicuri di venire il vostro senso prendendo Selenium Online Training con Edureka.
Se sei un tech-savvy che vuole up-skill te stesso con tutte le ultime tecnologie, dare un’occhiata a questa lista di Top Trending Technologies.
Top 50 Software Testing Interview Questions & Answers
Questo video ti aiuterà a prepararti alle interviste di Software Testing. Copre domande per principianti, intermedi e professionisti esperti.
Domande da intervista sul testing del software:
- Quali sono le fasi coinvolte nel ciclo di vita del testing del software?
- Quali sono i diversi metodi di testing?
- Quali sono i diversi livelli di test?
- Spiega il Bug Life Cycle o Defect life cycle.
- Che cos’è un test case?
- Qual è la differenza tra test funzionale e non funzionale?
- Che cos’è la verifica e la validazione nel test del software?
- Che cos’è il test di usabilità?
- Quali sono le categorie di difetti?
- Su quali basi viene preparato il piano di accettazione?
Questa domanda per il test del software è divisa nelle seguenti parti:
- Livello principianti
- Livello intermedio
- Livello avanzato
Iniziamo queste domande per il test del software con quelle del livello principianti.
Domande per l’intervista di test del software a livello principiante
Quali sono le fasi coinvolte nel ciclo di vita del test del software?
Le diverse fasi coinvolte nel ciclo di vita del test del software sono:
Analisi dei requisiti | Qui, il team QA capisce i requisiti e identifica i requisiti testabili. |
Pianificazione dei test | In questa fase, viene definita la strategia di test. |
Sviluppo dei casi di test | Qui, vengono definiti e sviluppati casi di test dettagliati. |
Sistemazione dell’ambiente | E’ una configurazione di software e hardware per i team di test per eseguire i casi di test. |
Esecuzione del test | E’ il processo di esecuzione del codice e di confronto tra i risultati attesi e quelli reali. |
Chiusura del ciclo di test | Si tratta di chiamare la riunione dei membri del team di test & valutando i criteri di completamento del ciclo in base alla copertura dei test, alla qualità, al costo, al tempo, agli obiettivi aziendali critici e al software. |
2. Quali sono i diversi metodi di test?
Ci sono tre metodi di test del software e sono i seguenti:
- Black-box testing: È una strategia di test basata esclusivamente sui requisiti e sulle specifiche. In questa strategia, non richiede alcuna conoscenza dei percorsi interni, delle strutture o dell’implementazione del software da testare.
- Test a scatola bianca: È una strategia di test basata su percorsi interni, strutture di codice e implementazione del software da testare. Il test a scatola bianca generalmente richiede competenze dettagliate di programmazione.
- Test a scatola grigia: È una strategia di debugging del software in cui il tester ha una conoscenza limitata dei dettagli interni del programma.
3. Quali sono i diversi livelli di test?
Ci sono principalmente quattro livelli di testing e sono:
- Unit Testing
- Integration Testing
- System Testing
- Acceptance Testing
In pratica, si inizia con la fase di Unit Testing e si finisce con l’Acceptance Testing.
4. Spiega il ciclo di vita del bug o ciclo di vita del difetto.
Un ciclo di vita del difetto è un processo in cui un difetto passa attraverso varie fasi durante la sua intera vita. Inizia quando un difetto viene trovato e termina quando un difetto viene chiuso, dopo essersi assicurato che non venga riprodotto.
Il ciclo di vita del bug o del difetto comprende le fasi illustrate nella figura seguente. Se vuoi imparare in profondità il Bug Life Cycle allora puoi fare riferimento al mio articolo sul Software Testing Tutorial.
Può variare da organizzazione a organizzazione e anche da progetto a progetto in base a diversi fattori come la politica dell’organizzazione, il modello di sviluppo software usato (come Agile, Iterativo), i tempi del progetto, la struttura del team etc.
5. Cos’è un caso di test?
Un caso di test non è altro che un insieme di condizioni o variabili sotto le quali un tester determinerà se un sistema sotto test soddisfa i requisiti o funziona correttamente.
Qual è la differenza tra test funzionale e non funzionale?
Test funzionale | Test non funzionale |
Eseguito prima delfunzionali |
Eseguiti dopo i test funzionali |
Basato sui requisiti del cliente |
Basato sulle aspettative dei clienti |
Descrive cosa fa il prodotto |
Descrive come funziona il prodotto |
7. Cos’è la verifica e la convalida nei test del software?
Verifica: È una tecnica di analisi statica. Qui, il test è fatto senza eseguire il codice. Gli esempi includono – revisioni, ispezioni e walkthrough.
Validazione: È una tecnica di analisi dinamica dove il test viene fatto eseguendo il codice. Gli esempi includono tecniche di test funzionali e non funzionali.
Nel modello V, le attività di sviluppo e QA sono fatte simultaneamente. Non c’è una fase discreta chiamata Testing, piuttosto il testing inizia proprio dalla fase dei requisiti. Le attività di verifica e validazione vanno di pari passo.
Che cos’è il test di usabilità?
È una metodologia di test in cui si chiede al cliente finale di usare il software per vedere se il prodotto è facile da usare, per vedere la percezione del cliente e il tempo del compito. Un modo accurato per finalizzare il punto di vista del cliente per l’usabilità è l’utilizzo di software prototipo o mock-up durante le fasi iniziali.
9. Quali sono le categorie di difetti?
Ci sono tre categorie principali di difetti come mostrato nella figura seguente:
- Errato: Implica che i requisiti sono stati implementati in modo errato. È una varianza dalle specifiche date.
- Mancante: È una varianza dalle specifiche, un’indicazione che una specifica non è stata implementata, o un requisito del cliente non è stato annotato correttamente.
- Extra: È un requisito incorporato nel prodotto che non è stato dato dal cliente finale. E’ sempre una varianza dalla specifica ma può essere un attributo desiderato dall’utente del prodotto.
Top 50 Software Testing Interview Questions & Answers
Su quali basi viene preparato il piano di accettazione?
Fondamentalmente, il documento di accettazione viene preparato utilizzando i seguenti input.
- Documento dei requisiti: Specifica cosa esattamente è necessario nel progetto dalla prospettiva dei clienti.
- Input dal cliente: Questo può essere discussioni, colloqui informali, email, ecc.
- Piano del progetto: Il piano del progetto preparato dal project manager serve anche come buon input per finalizzare il tuo test di accettazione.
11. Cos’è la copertura e quali sono i diversi tipi di tecniche di copertura?
Il parametro usato nel test del software per descrivere la misura in cui il codice sorgente viene testato è noto come copertura. Ci sono tre tipi fondamentali di tecniche di copertura e sono:
- Copertura delle dichiarazioni: Assicura che ogni linea di codice sorgente sia stata eseguita e testata.
- Copertura delle decisioni: Assicura che ogni decisione (vero/falso) nel codice sorgente sia stata eseguita e testata.
- Copertura dei percorsi: Qui ci assicuriamo che ogni possibile percorso attraverso una data parte del codice sia eseguito e testato.
Quali sono i benefici dei test di automazione?
I benefici dei test di automazione sono:
- Supporta l’esecuzione di casi di test ripetuti
- Aiuta a testare una grande matrice di test
- Consente l’esecuzione parallela
- Incoraggia l’esecuzione non presidiata
- Migliora la precisione riducendo così gli errori generati dall’uomo
- Risparmia tempo e denaro
13. Perché Selenium è uno strumento preferito per i test di automazione?
Selenium è uno strumento open source che viene utilizzato per automatizzare i test eseguiti sui browser web. Poiché Selenium è open-source, non ci sono costi di licenza coinvolti, il che è un grande vantaggio rispetto ad altri strumenti di test. Altre ragioni dietro la crescente popolarità di Selenium sono:
- Gli script di test possono essere scritti in uno di questi linguaggi di programmazione: Java, Python, C#, PHP, Ruby, Perl &.Net
- I test possono essere eseguiti in uno di questi sistemi operativi: Windows, Mac o Linux
- I test possono essere eseguiti utilizzando qualsiasi browser: Mozilla Firefox, Internet Explorer, Google Chrome, Safari o Opera
- Può essere integrato con strumenti come TestNG & JUnit per gestire i casi di test e generare report
- Può essere integrato con Maven, Jenkins & Docker per realizzare test continui
Quali sono i vari componenti di Selenium?
I diversi componenti di Selenium sono:
- Selenium Integrated Development Environment (IDE)
- Selenium Remote Control (RC)
- Selenium WebDriver
- Selenium Grid
Quali sono i diversi tipi di localizzatori in Selenium?
Il localizzatore non è altro che un indirizzo che identifica un elemento web in modo univoco all’interno della pagina web. Quindi, per identificare gli elementi web in modo accurato e preciso abbiamo diversi tipi di localizzatori in Selenium come segue:
- ID
- ClassName
- Name
- TagName
- linkText
- PartialLinkText
- Xpath
- CSS Selector
- DOM
Cosa è XPath?
XPath chiamato anche XML Path è un linguaggio per interrogare i documenti XML. È una strategia importante per individuare gli elementi in Selenium. Consiste in un’espressione di percorso insieme ad alcune condizioni. Qui, si può facilmente scrivere script/query XPath per individuare qualsiasi elemento nella pagina web. È progettato per consentire la navigazione di documenti XML, con lo scopo di selezionare singoli elementi, attributi o qualche altra parte di un documento XML per un’elaborazione specifica. Produce anche localizzatori affidabili.
Qual è la differenza tra percorso assoluto e relativo?
- Absolute XPath
È il modo diretto per trovare l’elemento, ma lo svantaggio dell’XPath assoluto è che, se ci sono dei cambiamenti fatti nel percorso dell’elemento, quell’XPath viene fallito. Per esempio: /html/body/div/section/div/div
- Relative XPath
Per Relative XPath, il percorso inizia dal centro della struttura DOM HTML. Inizia con la doppia barra in avanti (//), il che significa che può cercare l’elemento ovunque nella pagina web. Per esempio: //input
Quali sono le diverse eccezioni in Selenium WebDriver?
Le eccezioni in Selenium sono simili a quelle di altri linguaggi di programmazione. Le eccezioni più comuni in Selenium sono:
- TimeoutException
- NoSuchElementException
- ElementNotVisibleException
- StaleElementException
Quando dovrei usare Selenium Grid?
Selenium Grid può essere usato per eseguire gli stessi o diversi script di test su più piattaforme e browser contemporaneamente, in modo da ottenere un’esecuzione distribuita dei test, testando in ambienti diversi e risparmiando notevolmente il tempo di esecuzione.
Come si lancia il browser usando WebDriver?
La seguente sintassi può essere usata per lanciare il Browser:
WebDriver driver = new FirefoxDriver();
WebDriver driver = new ChromeDriver();
WebDriver driver = new InternetExplorerDriver();
Domande di livello intermedio sul test del software
21. Il testing dovrebbe essere fatto solo dopo che le fasi di costruzione ed esecuzione sono state completate?
Il testing è sempre fatto dopo le fasi di costruzione ed esecuzione Prima si prende un difetto, più è conveniente. Per esempio, sistemare un difetto nella manutenzione è dieci volte più costoso che sistemarlo durante l’esecuzione.
22. Qual è la relazione tra la realtà dell’ambiente e le fasi di test?
Quando le fasi di test iniziano ad andare avanti la realtà dell’ambiente diventa più importante. Per esempio, durante i test unitari, è necessario che l’ambiente sia parzialmente reale, ma nella fase di accettazione si dovrebbe avere un ambiente reale al 100%, o possiamo dire che dovrebbe essere l’ambiente reale effettivo.
Il grafico sopra mostra che durante i test di accettazione dovrebbe essere reale al 100%.
23. Un difetto che avrebbe potuto essere rimosso durante la fase iniziale viene rimosso in una fase successiva. Come influisce questo sul costo?
Se nella fase iniziale viene identificato un difetto, allora dovrebbe essere rimosso durante quella fase piuttosto che in una fase successiva. È un fatto che se un difetto è ritardato per le fasi successive diventa più costoso. La figura seguente mostra come un difetto sia costoso man mano che le fasi avanzano.
Se un difetto viene identificato e rimosso durante la fase di progettazione, è il più conveniente, ma quando viene rimosso durante la manutenzione diventa venti volte più costoso.
Cosa si intende per test di regressione e conferma?
Test di regressione: È definito come un tipo di test del software per confermare che una recente modifica del codice non ha influenzato negativamente le caratteristiche esistenti.
Test di conferma: Quando un test fallisce a causa del difetto, il difetto viene segnalato. Poi viene presentata una nuova versione del software il cui difetto è stato corretto. Questo è chiamato test di conferma o re-testing.
Cosa intendi per analisi del valore limite?
L’analisi del valore limite (BVA) è una tecnica di progettazione di test in scatola nera che viene applicata per vedere se ci sono bug al limite del dominio di input.
Cos’è il test casuale?
Di solito, nel test casuale, i dati vengono generati a caso spesso usando uno strumento. Per esempio, la figura seguente mostra come i dati generati casualmente vengono inviati al sistema.
Questi dati vengono generati utilizzando uno strumento o qualche meccanismo automatico. Con questo input generato casualmente, il sistema viene poi testato e i risultati vengono osservati di conseguenza.
27. Su quali basi puoi arrivare a una stima per il tuo progetto?
Per stimare il tuo progetto, devi considerare i seguenti punti:
- Dividere l’intero progetto nei compiti più piccoli
- Assegnare ogni compito ai membri del team
- Stimare lo sforzo richiesto per completare ogni compito
- Validare la stima
Quali casi di test vengono scritti prima: scatole bianche o nere?
Di solito, si scrivono prima i casi di test a scatola nera e poi quelli a scatola bianca. Per scrivere casi di test in scatola nera abbiamo bisogno del documento dei requisiti e del piano di progetto. Questi documenti sono facilmente disponibili all’inizio del progetto. I casi di test della scatola bianca non possono essere iniziati nella fase iniziale del progetto perché hanno bisogno di più chiarezza dell’architettura che non è disponibile all’inizio del progetto. Quindi normalmente i casi di test a scatola bianca sono scritti dopo che sono stati scritti i casi di test a scatola nera.
Menzionare i componenti di base del formato del rapporto sui difetti.
I componenti di base del formato del rapporto sui difetti includono:
- Nome del progetto
- Nome del modulo
- Defetto rilevato su
- Defetto rilevato da
- Defetto ID e Nome
- Snapshot del difetto
- Priorità e stato di gravità
- Defetto risolto da
- Defetto risolto il
Top 50 Software Testing Interview Questions & Answers
30. I test di automazione sono utili nella metodologia agile?
I test di automazione sono molto utili nella metodologia agile e aiutano a raggiungere la massima copertura dei test in un tempo minore dello sprint.
31. Quali casi di test possono essere automatizzati?
- Casi di test di fumo
- Casi di test di regressione
- Casi di test di calcolo complessi
- Casi di test guidati dai dati
- Casi di test non funzionali
32. Su quale base si può mappare il successo dei test di automazione?
Con i seguenti criteri, il successo dei test di automazione può essere mappato:
- Rapporto di rilevazione dei difetti
- Tempo di esecuzione dell’automazione e risparmio di tempo per il rilascio del prodotto
- Riduzione del lavoro & altri costi
Spiega i test di carico sui siti web?
Per accedere a un sito web, un utente invia una “richiesta” al server di quel sito, e il server rimanda una risposta sotto forma del sito web a cui si vuole accedere. Per testare il carico di un sito web, gli ingegneri del controllo qualità e dell’automazione devono solo moltiplicare il numero di risposte inviate per simulare diversi carichi di traffico. La risposta del server web all’afflusso di utenti virtuali può quindi essere misurata. Questo è usato per determinare i problemi di performance e la capacità del server.
34. Qual è la differenza tra Selenium e Sikuli?
Selenium | Sikuli |
Non può automatizzare oggetti flash come video player, audio player etc. | Fornisce un ampio supporto per automatizzare gli oggetti flash |
Ha un’API complicata | Ha un’API semplice |
Può automatizzare solo applicazioni web | Può automatizzare sia il web che un’applicazione windows. |
Come cliccare su un collegamento ipertestuale usando linkText()?
driver.findElement(By.linkText("Google”)).click();
Questo comando trova l’elemento usando il testo del collegamento e poi clicca su questo elemento. Così, l’utente verrebbe reindirizzato alla pagina corrispondente.
Che cos’è TestNG?
È un framework avanzato che è progettato in modo da sfruttare i benefici sia degli sviluppatori che dei tester. Ha anche un meccanismo incorporato di gestione delle eccezioni che permette al programma di funzionare senza terminare inaspettatamente.
37. Come impostare la priorità dei test case in TestNG?
Il codice seguente aiuta a capire come impostare la priorità dei test case in TestNG.
Sequenza di esecuzione del test:
Method1Method2Method3
Qual è la differenza tra Selenium e QTP?
Selenium | Quick Test Professional |
Selenium supporta quasi tutti i browser popolari come Firefox, Chrome, Safari, Internet Explorer, Opera ecc | QTP supporta Internet Explorer, Firefox e Chrome. La QTP supporta solo il sistema operativo Windows |
Selenium è distribuito come strumento open source ed è liberamente disponibile | QTP è distribuito come strumento con licenza ed è commercializzato |
Selenium supporta solo i test di applicazioni web-applicazioni basate sul web | QTP supporta il test sia dell’applicazione basata sul web che dell’applicazione basata su windows |
39. Cos’è l’Object Repository? Come possiamo creare un Object Repository in Selenium?
Object Repository si riferisce alla collezione di elementi web appartenenti all’Application Under Test (AUT) insieme ai loro valori di localizzazione. Rispetto a Selenium, gli oggetti possono essere memorizzati in un foglio excel che può essere popolato all’interno dello script quando necessario.
40. Come inserire il testo nella casella di testo usando Selenium WebDriver?
Utilizzando il metodo sendKeys()possiamo inserire il testo nella casella di testo usando Selenium WebDriver.
Domande di livello avanzato sul test del software
41. Che tipo di input abbiamo bisogno dell’utente finale per iniziare un test corretto?
Un utente finale è la persona più importante perché è colui che deve usare il prodotto e ha un interesse maggiore di chiunque altro nel progetto.
La figura sopra illustra l’input che è essenziale dalla parte dell’utente.
Cosa si intende per concetto di banco di lavoro?
Un banco di lavoro è un modo di documentare come una specifica attività deve essere eseguita. Ci si riferisce spesso a fasi, passi e compiti, come mostrato nella figura seguente.
Ci sono cinque compiti per ogni workbench e sono i seguenti:
- Input
- Execute
- Check
- Production output
- Rework
43. Cosa si intende per Defect Cascading?
Defect cascading è un difetto che è causato da un altro difetto. Un difetto innesca l’altro difetto. Quando un difetto è presente in qualsiasi fase ma non viene identificato, si nasconde in altre fasi senza essere notato. Questo risulterà in un aumento del numero di difetti.
Ci faccia capire questo con un esempio.
Stai progettando il modulo di login di una pagina web:
Nella fase 1 – Stai progettando il modulo di registrazione utente per il login e il numero di cellulare è obbligatorio ma puoi lasciarlo vuoto a causa di un bug che passa inosservato.
Nella fase 2 – Progetterai il modulo di login con username e password. La password è OTP che sarà inviata al numero di cellulare registrato dall’utente.
Ora, dato che il modulo Register ha un bug che il numero di cellulare può essere lasciato vuoto, questo può portare al fallimento del login o forse a qualche errore di sistema o a un crash se un numero di cellulare nullo non viene gestito. Questo è noto come difetto a cascata.
44. Quali sono le diverse strategie per il rollout agli utenti finali?
Le strategie da seguire per il rollout sono le seguenti:
- Pilota
- Implementazione graduale
- Implementazione a fasi
- Implementazione parallela
45. Spiega come puoi trovare collegamenti interrotti in una pagina usando Selenium WebDriver?
Questa è una domanda difficile che l’intervistatore potrebbe presentarti. Può fornire una situazione in cui ci sono 20 link in una pagina web, e dobbiamo verificare quali di questi 20 link funzionano e quanti non funzionano (rotti).
Poiché devi verificare il funzionamento di ogni link, il workaround è che devi inviare richieste HTTP a tutti i link della pagina web e analizzare la risposta. Ogni volta che si usa il metodo driver.get() per navigare verso un URL, questo risponderà con uno stato di 200 – OK. Questo indica che il link funziona ed è stato ottenuto. Mentre qualsiasi altro stato indica che il link è rotto.
Capiamo ora come fare.
Prima di tutto, dobbiamo usare i tag di ancoraggio <a> per determinare i diversi hyperlink sulla pagina web. Per ogni tag <a>, possiamo usare il valore dell’attributo ‘href’ per ottenere i collegamenti ipertestuali e poi analizzare la risposta ricevuta quando viene usato nel metodo driver.get().
46. Quale tecnica dovrebbe essere considerata nello script “se non c’è né l’id del frame né il nome del frame”?
Se il nome del frame e l’id del frame non sono disponibili, allora possiamo usare il frame per indice. Per esempio, ci sono 3 frame in una pagina web e se nessuno di loro ha un nome e un id del frame, allora possiamo ancora selezionare quei frame usando l’attributo indice del frame (basato su zero). Tutti i frame avranno un numero di indice come il primo frame sarebbe all’indice “0”, il secondo all’indice “1” e il terzo all’indice “2”.
driver.switchTo().frame(int arg0);
47. Come fare screenshot in Selenium WebDriver?
Utilizzando la funzione TakeScreenshot è possibile fare uno screenshot. Con l’aiuto del metodo getScreenshotAs(), puoi semplicemente salvare lo screenshot. Esempio: File scrFile = ((TakeScreenshot)driver).getScreenshotAs(outputType.FILE);
48. Spiega come accederai a qualsiasi sito se sta mostrando un popup di autenticazione per username e password?
Se c’è un pop up per il login, dobbiamo usare il comando esplicito e verificare se l’avviso è effettivamente presente. Il codice seguente aiuta a capire l’uso del comando esplicito di attesa.
49. Come saltare un metodo o un blocco di codice in TestNG?
Per saltare un particolare metodo di test o un codice, si può impostare il parametro ‘enabled’ nell’annotazione test su false.
@Test(enabled = false)
50. Spiega brevemente cosa indica il seguente snippet di codice?
WebElement sample = driver.findElement(By.xpath("//*"));
Definisce una variabile campione di tipo WebElement, e usa una ricerca XPath per inizializzarla con un riferimento ad un elemento che contiene il valore testuale “data”.
Questo ci porta alla fine di questo articolo sulle 50 migliori domande per un’intervista di test del software. Spero che vi abbia aiutato ad accrescere la vostra conoscenza. Vi auguriamo tutto il meglio per la vostra intervista. Buon apprendimento.
Se hai trovato questo articolo “Software Testing Interview Questions” rilevante, controlla il Software Testing Training di Edureka, una fidata società di apprendimento online con una rete di più di 250.000 studenti soddisfatti sparsi in tutto il mondo.