what is sdet know difference between tester
Questo tutorial discute tutti gli aspetti di un SDET (Software Development Engineer in Test), inclusi Skillset, ruoli e responsabilità, stipendio e percorso di carriera:
Discuteremo il ruolo SDET in modo approfondito, le aspettative e le responsabilità da questo ruolo che le aziende si aspettano, il set di competenze che un SDET deve possedere, gli strumenti e le tecnologie con cui il candidato dovrebbe essere pratico e anche gli stipendi in generale offerto.
Cosa imparerai:
Comprensione del ruolo SDET
La forma espansa di SDET è: Ingegnere di sviluppo software in prova
In parole molto semplici, questo ruolo è una combinazione di un intermedio tra un puro ruolo di sviluppatore e un puro ruolo di tester. Gli SDET sono professionisti qualificati sia nell'ingegneria della qualità che nello sviluppo del software.
Il termine SDET è stato inventato per la prima volta da Microsoft, che è stato poi seguito e utilizzato dalla maggior parte dei grandi nomi di prodotti come Google, Amazon, Adobe, Expedia, ecc. I ruoli principali delle aspettative erano sostituire le attività manuali ripetitive con una certa automazione per aumentare l'efficienza e affidabilità per le applicazioni in prova.
Confronto tra SDET e QA manuale
I tester QA manuali si concentrano principalmente sulla scatola nera o sul test dell'applicazione. Ciò che significa è che, per un tester del controllo qualità, ciò che conta è una specifica di come dovrebbe comportarsi un'app quando viene fornito un determinato input.
dov'è la chiave di sicurezza su un router
Il tester del controllo qualità utilizzerebbe semplicemente l'applicazione / il sistema sotto test come qualsiasi normale utente / cliente utilizzerebbe, ma concentrandosi su dettagli più minuti e scenari limite provando diverse combinazioni di input, ecc.
SDET si concentra sull'applicazione sia dai test White Box che da quelli Black Box. In altre parole, sarebbero anche consapevoli del funzionamento interno dell'app, che consente loro di scrivere test di automazione utilizzando le tecniche di test White Box o Black Box.
In sostanza, un ingegnere di sviluppo software in fase di test deve essere a conoscenza di tutte le tecniche di test Black Box insieme a conoscenze pratiche di sviluppo / codifica per comprendere il funzionamento interno dell'app che garantisce migliori standard di qualità e un prodotto software meno difettoso.
In sostanza, uno SDET dovrebbe agire da abilitatore per un'efficace QA con qualsiasi mezzo. Ciò significa anche che l'individuo utilizzerà le proprie capacità per garantire che tutte le parti del software sotto test siano convalidate nel miglior modo possibile, il che dovrebbe includere il test di aree sia funzionali che non funzionali.
Vediamo il confronto tra SDET e tester manuali su diversi parametri
Parametro | SDET | Tester manuale |
---|---|---|
Ambito del test | Si concentra su un'ampia varietà di tecniche e tipi di test. Esempio: Funzionale, non funzionale, sicurezza, prestazioni ecc. | In generale, concentrati sulla prospettiva della funzionalità dell'applicazione sottoposta a test. Un tester manuale si comporta come un utente / cliente dell'app sotto test e la convalida da quella prospettiva. |
Automazione | Gli SDET si concentrano principalmente sull'automazione di scenari ripetitivi per garantire che i tester manuali possano concentrarsi su scenari più complessi ed edge e utilizzare la larghezza di banda e le competenze in modo più efficiente. | I tester manuali possiedono alcune o nessuna abilità per l'automazione. Tuttavia, è necessario che i tester manuali siano consapevoli dell'utilizzo di strumenti che assistono nei test manuali Esempio: Utilizzo di Postman per l'esecuzione di endpoint API, utilizzo di provider cloud come i sauce lab per l'esecuzione di test su diverse versioni della piattaforma, ecc. |
Set di abilità primarie | Gli SDET sono i principali responsabili dell'automazione dei casi di test e della scrittura di script / strumenti riutilizzabili che aiutano il team a ridurre gli sforzi ripetitivi. Un membro senior del team SDET è anche responsabile della creazione di framework di automazione e consente ad altri SDET di scrivere test utilizzando il framework. | I tester manuali si concentrano principalmente sulla funzionalità delle app, si concentrano su scenari edge-case e casi di test complessi. Per esempio: Un tester manuale che testa un'app mobile, oltre a tutti gli scenari funzionali, penserebbe a scenari come - Cosa succede se chiudo l'app quando è in corso un'operazione di backend / una chiamata di rete. - Cosa succede se il cellulare viene improvvisamente spento quando il cliente si trovava su una determinata pagina dell'app. - Cosa succede se Internet si spegne durante il caricamento di un documento su un'app, ecc. |
Stipendi | Agli SDET vengono generalmente offerti stipendi più elevati (~ 40-50% in più rispetto ai tester manuali), a causa delle competenze che possiedono e dell'esperienza che hanno. | I ruoli puri di test manuale richiedono uno stipendio più basso rispetto a un ruolo ibrido in cui un tester manuale si sforza anche di apprendere nuovi strumenti e aggiungere valore al prodotto che viene consegnato. |
Ingegnere dello sviluppo software in Test Skillset
Di seguito sono elencate le competenze che un SDET deve possedere:
# 1) Mentalità aperta
Il primo e più importante set di competenze è che qualsiasi ingegnere di sviluppo software in Test dovrebbe essere aperto all'apprendimento di qualsiasi linguaggio / strumento di scripting necessario per consentire loro di eseguire test approfonditi dell'app sotto test.
È abbastanza probabile che come SDET in una società, potresti finire per lavorare utilizzando lo stack tecnologico Microsoft / .NET, ma in un'altra azienda, il linguaggio di sviluppo è principalmente Java, quindi SDET dovrebbe avere una mentalità aperta per imparare nuove cose / tecnologia come e quando richiesto.
# 2) Adattivo
Un ingegnere dello sviluppo software in prova deve adattarsi alle esigenze del progetto, degli strumenti e delle tecnologie, dei database, ecc. Per esempio - come SDET potresti avere un'esperienza di test delle API, ma un altro ruolo richiede di testare l'interfaccia utente o il frontend. Quindi, il ruolo richiede di adattarsi alle esigenze del progetto, per fornire un prodotto standard di alta qualità.
# 3) Multitasker
Nella maggior parte delle aziende produttrici, spesso il rapporto DEV e QA viene notevolmente distorto. Ciò significa che è comune vedere team con un rapporto DEV: QA di 4: 1 o addirittura 5: 1. Quindi è imperativo che uno SDET dovrebbe essere coinvolto in più cose e fornire.
Queste sono un paio di responsabilità su cui dovrebbe lavorare uno SDET:
- Partecipare alle riunioni delle parti interessate: uno SDET deve mantenere i contatti stretti sia con gli sviluppatori che con gli addetti ai prodotti per comprendere il prodotto da entrambi gli sviluppatori e il punto di vista del prodotto e quindi ideare / suggerire una strategia di automazione.
- Crea framework / strumenti
- Strategizza la pianificazione dei test
- Sollevare / indagare sui difetti
- A volte può essere richiesto di contribuire allo unit test insieme agli sviluppatori.
# 4) Mentalità esplorativa
Ogni SDET dovrebbe ricordare queste righe in ogni momento - ' Se ripeti sempre le stesse azioni, valuta la possibilità di automatizzarlo '
La persona avrebbe una mentalità per ridurre lo sforzo per tutto ciò che incontra con l'aiuto di strumenti per migliorare la produttività e per garantire prodotti software di alta qualità.
sql domande di intervista di base e risposte pdf
Oltre a tutto il lavoro di automazione, il compito principale di SDET è fornire prodotti di alta qualità con tutto ciò che serve, quindi dovrebbe anche concentrarsi sul test dei prodotti attraverso modi esplorativi per scoprire sempre più bug e difetti nascosti.
# 5) Collabora, contribuisci e comunica
Il ruolo di SDET richiede il collegamento tra diversi stakeholder come sviluppatori, prodotti, tester manuali, ecc.
È importante che gli SDET collaborino con tutte le parti interessate richieste e comunichino tutti i dettagli necessari come e quando appropriato.
Gli SDET e il team QA tengono i cancelli di qualità per un prodotto prima che sia aperto al pubblico e quindi svolgono un ruolo importante in termini di ritenere un prodotto adatto per essere lanciato o meno ai clienti.
Ruoli e responsabilità
Quindi cerchiamo di capire quali sono i lavori e le responsabilità quotidiane di SDET e le diverse attività che ci si aspetta che svolgano.
- Lavora a fianco degli sviluppatori e degli stakeholder aziendali e sforzati di automatizzare i criteri di accettazione. Ciò significa in parole semplici: un SDET comprende innanzitutto i requisiti dal punto di vista dell'accettazione / cliente e deve anche comprendere il modo in cui il prodotto è sviluppato in termini di linguaggio di codifica, database, ecc., Quindi pianifica una strategia per automatizzare il massimo degli scenari possibili .
- Responsabile della creazione di soluzioni di automazione dei test robuste e di alta qualità per test funzionali, di regressione e delle prestazioni.
- Crea script / strumenti riutilizzabili dove richiesto.
- Contribuire alle aree di test sia funzionali che non funzionali. Il test funzionale include il test dal punto di vista della funzionalità / dei requisiti ed è in gran parte guidato da criteri di accettazione o storie degli utenti.
Tuttavia, anche i test non funzionali sono altrettanto importanti. Per esempio, quanto è performante l'applicazione, se l'applicazione è sufficientemente sicura, assicurati che non siano rimasti hack nell'app che potrebbero ostacolare la sicurezza dell'app e potrebbero finire per causare una grave perdita sia ai clienti che all'organizzazione. - Partecipano anche alle discussioni sulla progettazione e sulla progettazione architettonica, oltre a fornire un feedback efficace nelle revisioni del codice.
Diventa un grande SDET
Per diventare un ottimo SDET, vediamo alcuni suggerimenti / strumenti di base e competenze tecniche che devono essere apprese per affrontare meglio i loro ruoli.
Nella sezione precedente, abbiamo appreso le qualità che un ingegnere di sviluppo software in Test deve possedere per diventare eccezionale nel proprio ruolo. Devono avere una mentalità aperta, essere adattivi e dovrebbero essere in grado di comunicare, collaborare e contribuire in qualsiasi modo, come richiesto dal prodotto o dal team.
Vediamo un elenco di alcuni strumenti e tecnologie comuni che gli SDET devono apprendere:
- Dovrebbe avere una solida conoscenza dei principi di test, dei tipi di test e delle metodologie.
- Altamente abile nel debug dei problemi: impara strumenti di debug come - Chrome Web Debugger che sono estremamente utili per il debug delle applicazioni web e per l'analisi dei log di rete per un'app in prova.
- Dovrebbero essere in grado di scrivere codice / script riutilizzabili e quindi dovrebbero essere competenti in almeno un linguaggio di scripting. Il più facile da imparare è Python che potrebbe essere applicato a un'ampia varietà di attività, framework di automazione, ecc.
- Acquisisci familiarità con i client di test API come POSTINO
- Dovrebbe essere a conoscenza degli strumenti e delle tecniche di test White box, come i framework Mocking ( Mockito ), ecc in quanto ci si potrebbe aspettare che contribuiscano anche alla scrittura di unit test quando richiesto.
- Dovrebbero essere consapevoli degli strumenti di controllo delle versioni come Partire . Inoltre, dovrebbero avere familiarità con i concetti di Richieste pull , revisioni del codice, ecc.
- Comprensione dell'architettura delle applicazioni web e del modello generale client-server.
- Deve essere a conoscenza dei concetti di base della programmazione orientata agli oggetti e della comprensione di SOLIDO modello ( S responsabilità unica, O penna / principio chiuso, L Sostituzione di iskov, io Segregazione delle interfacce, D ependency Inversion)
- Comprensione di base di Integrazione continua / Consegna continua concetti (CI / CD) e dovrebbe anche essere a conoscenza di strumenti CI come Jenkins / Bamboo, ecc.
In genere ci si aspetta che gli SDET si occupino anche dei problemi di distribuzione, quindi la comprensione di questi strumenti è fondamentale. - Dovrebbero avere familiarità con almeno un framework di automazione front-end. Il più semplice e il più utilizzato in Selenio . È il Santo Graal dei test front-end per le applicazioni web e quasi tutte le organizzazioni utilizzano il framework Selenium per automatizzare i test dell'interfaccia utente.
- Imparare le basi del test delle prestazioni e scrivere semplici script utilizzando strumenti di test delle prestazioni open source come JMeter è molto utile e puoi fare riferimento a questo Tutorial di Jmeter . Ciò è utile poiché ci si aspetta che gli SDET si occupino anche di requisiti non funzionali come i test delle prestazioni.
- Dovrebbero anche essere consapevoli dei concetti fondamentali dei test di sicurezza. Ciò include anche la conoscenza degli standard di codifica di base che assicurano che non ci siano difetti di sicurezza di base lasciati irrisolti nell'app. OWASP è un ottimo riferimento per tutti questi concetti fondamentali.
- Ci si aspetta che gli SDET conoscano, comprendano e implementino metodologie di sviluppo agile e dovrebbero essere a proprio agio nel lavorare con i team che utilizzano la metodologia Sprint / Scrum dell'agile.
- Dovrebbe essere a conoscenza di chiunque abbia piattaforme di tecnologia cloud come: Amazon AWS , Google GCP , o Microsoft Azure .
Poiché la maggior parte delle aziende sta ora passando a un'infrastruttura basata su cloud, avere una conoscenza di base degli strumenti e delle tecnologie cloud è generalmente utile per iniziare.
Certificazione per SDET
In generale, non sono disponibili certificazioni specifiche per SDET
Se qualcuno vuole iniziare il viaggio del suo ingegnere di sviluppo software in Test, può semplicemente concentrarsi sui punti menzionati nella sezione 'Come diventare un ottimo SDET' di questo tutorial, quindi gli SDET con la loro mentalità aperta dovrebbero continuare il loro viaggio di apprendimento sul lavoro.
Per testare la terminologia e le basi, è bene che tutti coloro che sono nella professione di test del software siano certificati con il Certificato di collaudo ISTQB Foundation .
Questa certificazione copre tutti i concetti di base del test del software come,
- Tipi di test - funzionali / non funzionali
- Scatola nera / scatola bianca / scatola grigia di prova
- Pianificazione dei test / Gestione dei difetti
- Tecniche di test - Partizionamento di equivalenza, matrice di tracciabilità, ecc.
Sono disponibili anche altre certificazioni internazionali di test del software, ma la maggior parte di esse non sono criteri di selezione molto importanti per le aziende che assumono SDET.
È disponibile un elenco di tutte queste certificazioni Qui.
Interviste
Con la maggior parte delle società di prodotti più grandi, l'intervista all'Ingegnere di sviluppo software in Test è molto di più rispetto a quelle con interviste agli sviluppatori poiché ci si aspetta che conoscano la maggior parte dello sviluppo di metodologie e concetti correlati.
Tuttavia, le interviste sono un po 'indulgenti rispetto agli sviluppatori. Ciò che viene enfatizzato qui è come il candidato affronta un problema e quanto ampia può una persona pensare al problema.
In generale, le interviste SDET consistono in seguenti round / tipi di domande presso quasi tutte le grandi organizzazioni di prodotti come Amazon, Microsoft, Adobe, Expedia, ecc.
- Round scritto: Scrittura di casi di test per un determinato prodotto. Qui, l'intenzione è di avere un'idea di ciò che tutti gli aspetti del test possono pensare la persona del candidato, ad esempio se pensa / elenca tutti gli scenari funzionali, scenari limite, è candidato concentrandosi su test di sicurezza, test delle prestazioni, ecc.
- Round di codifica: Viene fornito un piccolo esercizio di codifica e ci si aspetta che il candidato annoti tutti gli scenari di unit test e test funzionali. Qui l'area o l'abilità che viene testata è: conoscenze / costrutti di codifica di base, scrittura di codice verificabile e conoscenza delle tecniche di test white box come test unitari, mocking, ecc.
- Round di progettazione: Viene sollevata una domanda sulla progettazione del sistema, esempio , come progetteresti youtube
Questo tipo di domande generalmente ha più rilevanza per gli sviluppatori, ma per gli SDET, l'intervistatore sta cercando quanto in generale la persona può pensare, il candidato conosce i concetti di OOP, è il candidato in grado di pensare a scalabilità, robustezza, bilanciamento del carico, ecc. , il candidato può utilizzare i database corretti per l'applicazione che deve essere progettata - Round HR / Manager: Qui si osservano cose come l'idoneità della squadra, la forma fisica della cultura, ecc. Sul candidato, nonché discussioni sullo stipendio e vengono anche fatte negoziazioni.
Lettura consigliata => Domande di intervista SDET
Stipendio SDET
Come abbiamo discusso nelle nostre sezioni precedenti, gli SDET hanno stipendi più alti rispetto alla maggior parte dei ruoli di test manuale. In molti casi, gli stipendi sono paragonabili a quelli con sviluppatori con un livello di esperienza simile.
Puoi fare riferimento Qui per conoscere la gamma di stipendi a diversi profili SDET in diverse organizzazioni. In generale, lo stipendio SDET varia in base alla fascia di esperienza e all'organizzazione.
Di seguito è riportato un confronto degli stipendi SDET per le migliori aziende come Microsoft, Expedia.
Livello | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - I | 65000 - 80000 | 60000 - 70000 |
SDET - II | 75000 - 11000 | 70000 - 100000 |
Signor SDET | 100.000 - 150.000 | 90000 - 130.000 |
Percorso di carriera
In generale, la carriera di SDET inizia e cresce nel modo seguente:
- SDET-1 - SDET di livello Junior in grado di scrivere script di automazione.
- SDET-2 - SDET esperto in grado di scrivere strumenti riutilizzabili e framework di automazione.
- Signor SDET - SDET di livello senior in grado di essere un contributore individuale come SDET 1 e SDET 2 ma è anche in grado di farlo
- Conduzione delle revisioni del codice.
- Partecipa alle discussioni sul design e dai suggerimenti per apportare modifiche appropriate al design.
- Partecipa alla strategia di test generale del prodotto.
- Partecipa a modelli di distribuzione CI / CD, crea pipeline di esecuzione, ecc.
- SDET Manager - Dopo SDET2, puoi scegliere Sr SDET o SDET Manager Path. Un manager SDET ha anche responsabilità di gestione / leadership oltre al lavoro di base SDET.
- Architetto di test / Ingegnere delle soluzioni - Test Architect o Solutions Engineer è qualcuno che per lo più progetta / architetta un framework generale per più progetti, specifiche di test dei frame, può anche agire come responsabile delle consegne. Queste persone sono persone goto e aiutano più progetti a raggiungere i risultati dei test e spedire un prodotto ampiamente testato e privo di difetti.
Ecco una rappresentazione a livello di blocco del percorso di carriera SDET:
Conclusione
In questo tutorial, abbiamo appreso in modo approfondito cos'è un SDET in termini di ruoli e responsabilità, competenze indispensabili, qual è la differenza tra SDET e tester manuali e cosa serve per diventare un grande ingegnere di sviluppo software in Test.
In generale, SDET è un ruolo molto richiesto e quasi tutte le buone società di prodotti hanno questo ruolo nei loro team e sono molto apprezzate.
Lettura consigliata
- Domande e risposte dell'intervista SDET (Guida completa)
- 10 MIGLIORI società e servizi di sviluppo software personalizzato nel 2021
- 20 MIGLIORI strumenti di sviluppo software (classifiche 2021)
- Misure per SSDLC (ciclo di vita dello sviluppo software sicuro)
- Fasi, metodologie, processi e modelli di SDLC (Software Development Life Cycle)
- Metodologie di test e sviluppo software (con pro e contro)
- 5 cose che uno sviluppatore principiante (e un tester) dovrebbe sapere sui test del software
- 5 modi per essere un tester di software audace e sicuro