what is sdet know difference between tester
Denna handledning diskuterar alla aspekter av en SDET (Software Development Engineer in Test) inklusive Skillset, roller och ansvar, lön och karriärväg:
Vi kommer att diskutera SDET-rollen på djupet, förväntningarna och ansvarsområdena från den rollen som företagen förväntar sig, den kompetensuppsättning som en SDET måste ha, verktyg och tekniker som kandidaten ska ha hands-on och också lönerna erbjuds.
Vad du kommer att lära dig:
Förstå SDET-rollen
Den utökade formen av SDET är - Programvaruutvecklingsingenjör i test
Med mycket enkla ord är denna roll en kombination av en mellanliggande mellan en ren utvecklarroll och en ren testarroll. SDETs är skickliga yrkesverksamma inom både kvalitetsteknik och mjukvaruutveckling.
Termen SDET uppfanns först av Microsoft, som sedan följdes och användes av de flesta stora produktnamn som Google, Amazon, Adobe, Expedia, etc. Rollerna stora förväntningar var att ersätta manuella repetitiva uppgifter med viss automatisering för att öka effektiviteten samt tillförlitlighet för de applikationer som testas.
Jämförelse mellan SDET och manuell QA
Manuella QA-testare är främst inriktade på Black Box eller Application-testning. Vad det betyder är, för en QA-testare, det som är viktigt är en specifikation av hur en app förväntas uppträda när den får en viss input.
app för att schemalägga Instagram-inlägg gratis
QA-testare skulle bara använda applikationen / systemet som testas som alla vanliga användare / kunder skulle använda men med fokus på mer detaljerade detaljer samt kantscenarier genom att prova olika ingångskombinationer etc.
SDET fokuserar på applikationer från både White Box och Black Box-test. Med andra ord skulle de också vara medvetna om appens inre funktion, vilket gör det möjligt för dem att skriva automatiseringstester med både White Box- eller Black Box-testtekniker.
I grunden måste en mjukvaruutvecklingsingenjör i test vara medveten om alla Black Box-testtekniker tillsammans med praktisk utveckling / kodningskunskap för att förstå appens inre funktion som säkerställer bättre kvalitetsstandarder samt en mindre defekt programvaruprodukt.
I huvudsak bör en SDET fungera som en möjliggörare för effektiv QA på alla sätt. Vad detta också betyder, att individen skulle använda sina färdigheter för att säkerställa att alla delar av programvaran som testas valideras på bästa möjliga sätt, vilket bör inkludera testning av både funktionella och icke-funktionella områden.
Låt oss se jämförelse av SDET och manuell testare på olika parametrar
Parameter | SDET | Manuell testare |
---|---|---|
Testomfång | Fokuserar på ett brett utbud av testtekniker och typer. Exempel: Funktionell, ej funktionell, säkerhet, prestanda etc. | Fokusera generellt på funktionalitetsperspektivet för den applikation som testas. En manuell testare beter sig som en användare / kund av appen som testas och validerar den ur det perspektivet. |
Automatisering | SDET fokuserar mestadels på att automatisera repetitiva scenarier för att säkerställa att manuella testare kan fokusera på mer komplexa och kantscenarier och använda sin bandbredd och färdigheter mer effektivt. | Manuella testare har några eller inga färdigheter för automatisering. Det krävs dock att manuella testare ska vara medvetna om att använda verktyg som hjälper till med manuell testning Exempel: Använda Postman för att köra API-slutpunkter, använda molnleverantörer som såslaboratorier för att utföra tester på olika plattformsversioner etc. |
Primär färdighetsuppsättning | SDET: er ansvarar främst för att automatisera testfall samt skriva återanvändbara manus / verktyg som hjälper teamet att minska repetitiva ansträngningar. En seniormedlem i SDET-teamet är också ansvarig för att skapa automatiseringsramar och göra det möjligt för andra SDETs att skriva tester med hjälp av ramverket. | Manuella testare fokuserar främst på appfunktionalitet, fokuserar på edge-case-scenarier och komplexa testfall. Till exempel: En manuell testare som testar en mobilapp skulle utöver alla funktionella scenarier tänka på scenarier som - Vad händer om jag stänger appen när en backend-operation / nätverkssamtal pågår. - Vad händer om mobilen plötsligt stängs av när kunden var på en viss sida i appen. - Vad händer om Internet går mitt i uppladdningen av ett dokument till en app etc. |
Löner | SDET erbjuds i allmänhet högre löner (~ 40-50% högre än manuella testare) på grund av de färdigheter de besitter och erfarenhet de har. | Rena manuella testroller leder till en lägre lön jämfört med en hybridroll där en manuell testare också strävar efter att lära sig nya verktyg och tillföra värde till den produkt som levereras. |
Mjukvaruutvecklare i Test Skillset
Nedan listas de kompetensuppsättningar som en SDET måste ha:
# 1) Öppna tankesätt
Den första och främsta kompetensen är att alla programvaruutvecklare i test ska vara öppna för att lära sig alla skriptspråk / verktyg som krävs för att göra det möjligt för dem att testa den app som testas noggrant.
Det är mycket troligt att du som SDET i ett företag kan sluta arbeta med Microsoft / .NET tech stack, men i ett annat företag är utvecklingsspråk främst Java - så SDET förväntas ha en öppen tankegång för att lära sig nya saker / tech som och vid behov.
# 2) Adaptiv
En programutvecklingsingenjör i test måste anpassa sig till projektets behov, verktyg och tekniker, databaser etc. Till exempel - som SDET kan du ha en erfarenhet av att göra API-testning, men en annan roll kräver att du testar UI eller frontend. Därför kräver rollen att du anpassar dig till projektets behov och levererar en standardprodukt av hög kvalitet.
# 3) Multitasker
Hos de flesta produktföretagen blir DEV och QA-förhållandet ofta skevt i stor utsträckning. Det betyder att det är vanligt att se lag med ett DEV: QA-förhållande på 4: 1 eller till och med 5: 1. Det är därför absolut nödvändigt att en SDET förväntas vara involverad i flera saker och leverera.
Det här är ett par ansvarsområden som en SDET kan förväntas arbeta med:
- Delta i intressentmöten: En SDET måste ha nära kontakter med både utvecklare och produktfolk för att förstå produkten från både utvecklare och produktperspektiv och sedan utforma / föreslå automatiseringsstrategi.
- Skapa ramverk / verktyg
- Strategisera testplanering
- Höj / undersök defekter
- Ibland kan det krävas att bidra till enhetstestning tillsammans med utvecklare.
# 4) Exploratory Mindset
Varje SDET bör alltid komma ihåg dessa rader - “ Om du upprepar samma åtgärder hela tiden kan du överväga att automatisera det '
Personen skulle ha ett tänkesätt för att minska ansträngningen för allt som kommer deras väg med hjälp av verktyg för att öka produktiviteten samt för att säkerställa högkvalitativa programvaruprodukter.
Förutom allt automatiseringsarbete är SDETs primära jobb att leverera högkvalitativa produkter med vad som än krävs, därför måste han / hon också fokusera på att testa produkter genom utforskande sätt att avslöja fler och fler dolda buggar och defekter.
# 5) Samarbeta, bidra och kommunicera
SDET: s roll mandat mellan olika intressenter som utvecklare, produkt, manuella testare, etc.
Det är viktigt att SDET samarbetar med alla nödvändiga intressenter samt kommunicerar alla nödvändiga detaljer när så är lämpligt.
bästa programmet för att konvertera videofiler
SDETs och QA-teamet håller kvalitetsgrindarna för en produkt innan de är öppna för allmänheten och därför spelar de en viktig roll när det gäller att anse att en produkt lämpar sig för lansering för kunder eller inte.
Roller och ansvar
Så låt oss försöka förstå, vad är SDET: s dagliga jobb och ansvar och de olika uppgifter de förväntas göra.
- Arbeta tillsammans med utvecklare och affärsintressenter och sträva efter att automatisera acceptanskriterierna. Detta betyder med enkla ord är - en SDET först först kraven från acceptans / kundperspektiv och måste också förstå hur produkten utvecklas när det gäller kodningsspråk, databaser, etc, och planerar sedan en strategi för att automatisera maximala scenarier som möjligt .
- Ansvarig för att bygga robusta och högkvalitativa testautomatiseringslösningar för funktionstest, regression och prestandatestning.
- Skapa återanvändbara skript / verktyg där det behövs.
- Bidra till både funktionella och icke-funktionella testområden. Funktionstestning inkluderar testning från funktionalitet / kravperspektiv och drivs till stor del av acceptanskriterier eller användarberättelser.
Men icke-funktionell testning är lika viktigt också. Till exempel, hur performant är applikationen, är applikationen tillräckligt säker, se till att det inte finns några hack kvar i appen som kan leda till att appen hämmar säkerheten och kan orsaka stora förluster för både kunder och organisationen. - De deltar också i diskussionerna om design och arkitektonisk design samt ger effektiv feedback i kodgranskningar.
Bli en bra SDET
För att bli en bra SDET, låt oss se några tips / grundläggande verktyg och tekniska färdigheter som måste läras för att bättre kunna klara sig i sina roller.
I föregående avsnitt lärde vi oss om egenskaper som en Software Development Engineer i Test måste ha för att bli bra i sina roller. De måste ha ett öppet tänkesätt, vara anpassningsbara och bör kunna kommunicera, samarbeta och bidra på vilket sätt som föreskrivs av produkten eller teamet.
Låt oss se en lista över några vanliga verktyg och tekniker som SDET: er måste lära sig:
- Bör ha en solid förståelse för testprinciper, testtyper och metoder.
- Mycket skicklig i felsökningsfrågor - lär dig felsökningsverktyg som - Chrome Web Debugger som är extremt användbara för felsökning av webbapplikationer, samt för att undersöka nätverksloggar för en app som testas.
- De ska kunna skriva återanvändbar kod / skript och därför bör de vara skickliga på minst ett skriptspråk. Det enklaste att lära sig är Python som kan tillämpas på en mängd olika uppgifter, automatiseringsramar etc.
- Var bekant med API-testklienter som BREVBÄRARE
- Bör vara medveten om verktyg och tekniker för vitlåda testning - som Mocking ramar ( Mockito ), etc eftersom de kan förväntas bidra med skrivenhetstester också när det behövs.
- De bör vara medvetna om versioneringsverktyg som Gå . De bör också vara bekanta med begreppen Dra förfrågningar , kodrecensioner etc.
- Förståelse för arkitektur för webbapplikationer och allmän klient-servermodell.
- Bör vara medveten om grundläggande objektorienterad programmeringskoncept och förståelse för FAST modell ( S ingle Ansvar, ELLER penna / sluten princip, L iskov-ersättning, Jag nterface segregation, D ependency Inversion)
- Grundläggande förståelse för Fortsatt integration / Kontinuerlig leverans koncept (CI / CD) och bör också vara medveten om CI-verktyg som Jenkins / Bamboo, etc.
SDET förväntas generellt ta hand om distributionsproblem, och därför är det absolut nödvändigt att förstå dessa verktyg. - De bör känna till minst ett ramverk för automatisering av frontend. Det enklaste och mest använda i Selen . Det är den heliga gralen i frontend-testning för webbapplikationer och nästan alla organisationer använder Selen-ramverket för att automatisera UI-tester.
- Lär dig grunderna för prestandatestning och skriv enkla skript med hjälp av öppen källkod prestanda testverktyg som JMeter är mycket hjälpsam och du kan hänvisa till detta Jmeter handledning . Detta är användbart eftersom SDET: er förväntas också ta hand om icke-funktionella krav som prestandatestning.
- De bör också vara medvetna om de grundläggande begreppen för säkerhetstestning. Detta omfattar också att ha kunskap om grundläggande kodningsstandarder som säkerställer att det inte finns några grundläggande säkerhetsfel kvar i appen. OWASP är en utmärkt referens för alla sådana grundläggande begrepp.
- SDET förväntas känna till, förstå och implementera agila utvecklingsmetoder och bör vara bekväma i att arbeta med team som använder Sprint / Scrum-metoden för agil.
- Bör vara medveten om någon molnteknologiplattformar som - Amazon AWS , Google GCP , eller Microsoft Azure .
Eftersom de flesta av företagen nu flyttar till en molnbaserad infrastruktur är det generellt bra att komma igång med att ha en grundläggande förståelse för molnverktyg och -teknik.
Certifiering för SDET
I allmänhet finns det inga specifika certifieringar som är tillgängliga för SDET
Om någon vill starta sin mjukvaruutvecklingsingenjör i testresan kan de bara fokusera på de punkter som nämns i avsnittet 'Hur man blir en bra SDET' i denna handledning, och sedan bör SDETs med sin öppna tankegång fortsätta sin inlärningsresa på jobbet.
För att testa terminologi och grunder är det bra att alla som är inom programvarutestningsyrket är certifierade med ISTQB Foundation testcertifikat .
Denna certifiering täcker alla grundläggande programvarutestningskoncept som,
- Testtyper - funktionella / icke-funktionella
- Svart låda / Vit låda / Grå låda testning
- Testplanering / Defekthantering
- Testtekniker - Ekvivalenspartitionering, spårbarhetsmatris etc.
Det finns också andra internationella certifieringar för programvarutestning, men de flesta är inte särskilt viktiga urvalskriterier för företag att anställa SDET.
En lista över alla sådana certifieringar finns tillgänglig här.
Intervjuer
Med de flesta av de större produktföretagen är Software Development Engineer i testintervjun mycket mer jämfört med dem med utvecklarintervjuer eftersom de förväntas känna till det mesta av utvecklingen av metoder och relaterade koncept.
Intervjuerna är dock lite mjuka jämfört med utvecklare. Det som betonas här är hur kandidaten närmar sig ett problem och hur bred kan en person tänka på problemet.
Generellt består SDET-intervjuer av följande omgångar / frågetyper på nästan alla stora produktorganisationer som Amazon, Microsoft, Adobe, Expedia etc.
- Skriftlig omgång: Skriva testfall för en viss produkt. Här är avsikten att få en uppfattning om vad alla aspekter av testning kan personen tänka på kandidaten som om han tänker / listar alla funktionella scenarier, edge-case-scenarier, är kandidat som fokuserar på säkerhetstestning, prestandatestning etc.
- Kodningsrunda: En liten kodningsövning ges och kandidaten förväntas också skriva ner alla scenarier för enhetstestning och funktionstestning. Här är det område eller färdighet som testas - grundläggande kodningskunskap / konstruktioner, skrivning av testbar kod och kunskap om testningstekniker för vitlådor som testning av enheter, spottning etc.
- Designrunda: En systemdesignfråga kastas, exempel , hur skulle du utforma youtube
Den här typen av frågor har i allmänhet mer relevans för utvecklare, men för SDETs letar intervjuaren efter hur brett kan personen tänka, vet kandidaten om OOPs-koncept, är kandidaten kapabel att tänka på skalbarhet, robusthet, belastningsbalansering etc. , kan kandidaten använda rätt databaser för den applikation som ska utformas - HR / chefsrunda: Här observeras saker som lagkondition, kulturkondition mm om kandidaten såväl som lönediskussioner och förhandlingar görs också.
Rekommenderad läsning => SDET-intervjufrågor
SDET Lön
Som vi har diskuterat i våra tidigare avsnitt ger SDET högre löner än de flesta manuella testroller. I många fall är lönerna jämförbara med de med utvecklare på en liknande erfarenhetsnivå.
Du kan hänvisa här för att ta reda på utbudet av löner vid olika SDET-profiler i olika organisationer. Generellt varierar SDET-lönen efter erfarenhetsband och organisation.
Nedan följer en jämförelse av SDET-löner för toppföretag som Microsoft, Expedia.
Nivå | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - I | 65000 - 80000 | 60000 - 70000 |
SDET - II | 75000 - 11000 | 70000 - 100000 |
Herr SDET | 100.000 - 150.000 | 90000 - 130.000 |
Karriärsbana
Generellt börjar SDET-karriärstegen och växer på följande sätt:
- SDET-1 - Juniornivå SDET som kan skriva automatiseringsskript.
- SDET-2 - Erfaren SDET som kan skriva återanvändbara verktyg och automatiseringsramar.
- Herr SDET - Seniornivå SDET som kan vara en enskild bidragsgivare som SDET 1 och SDET 2 men kan också
- Genomföra kodrecensioner.
- Delta i designdiskussioner och lägg förslag för att få ändringar i designen.
- Delta i produktens övergripande teststrategi.
- Delta i CI / CD-leveransmodeller, skapa körledningar etc.
- SDET Manager - Efter SDET2 kan du välja antingen Sr SDET eller SDET Manager-sökväg. En SDET-chef har också lednings- / ledarskapsansvar förutom SDET-kärnarbetet.
- Testarkitekt / lösningsingenjör - Testarkitekt eller lösningsingenjör är någon som oftast designer / arkitekterar en övergripande ram för flera projekt, ramar testspecifikationer, kan också fungera som leveranschef. Dessa människor är individer och hjälper flera projekt för att uppnå sina testresultat och leverera en omfattande väl testad och defektfri produkt.
Här är en representation på blocknivå av SDET Career Path:
Slutsats
I den här handledningen lärde vi oss djupare om vad som är en SDET när det gäller roller och ansvarsområden, måste-ha färdigheter, vad som är skillnaden mellan SDET och manuella testare och vad som krävs för att bli en bra programutvecklingsingenjör i test.
Generellt sett är SDET en roll som efterfrågas mycket och nästan alla bra produktföretag har denna roll i sina team och värderas högt.
Rekommenderad läsning
- SDET-intervjufrågor och svar (komplett guide)
- 10 BÄSTA anpassade programvaruutvecklingsföretag och tjänster 2021
- 20 BÄSTA programvaruutvecklingsverktyg (2021 rankningar)
- Åtgärder för SSDLC (Secure Software Development Life Cycle)
- SDLC (Software Development Life Cycle) -faser, metoder, processer och modeller
- Programvaruutveckling och testmetoder (med fördelar och nackdelar)
- 5 saker en nybörjare (och testare) borde veta om programvarutestning
- 5 sätt att vara en fet och säker programvarutestare