what is sdet know difference between tester
Deze tutorial bespreekt alle aspecten van een SDET (Software Development Engineer in Test), inclusief vaardigheden, rollen en verantwoordelijkheden, salaris en carrièrepad:
We zullen de SDET-rol diepgaand bespreken, de verwachtingen en verantwoordelijkheden van deze rol die de bedrijven verwachten, de vaardigheden die een SDET moet bezitten, tools en technologieën waarmee de kandidaat hands-on moet zijn en ook de salarissen in het algemeen aangeboden.
Wat je leert:
Inzicht in de SDET-rol
De uitgebreide vorm van SDET is - Software Development Engineer in Test
In zeer eenvoudige bewoordingen is deze rol een combinatie van een tussenpersoon tussen een pure ontwikkelaarrol en een pure testerrol. SDET's zijn bekwame professionals in zowel kwaliteitstechniek als softwareontwikkeling.
De term SDET werd voor het eerst uitgevonden door Microsoft, die vervolgens werd gevolgd en gebruikt door de meeste grote productnamen zoals Google, Amazon, Adobe, Expedia, enz. De belangrijkste verwachtingen waren om handmatige repetitieve taken te vervangen door enige automatisering om de efficiëntie te verhogen en betrouwbaarheid voor de geteste toepassingen.
Vergelijking tussen SDET en handmatige QA
Handmatige QA-testers zijn voornamelijk gericht op de Black box of Application testing. Wat het betekent, is dat het voor een QA-tester van belang is een specificatie van hoe een app zich moet gedragen bij een bepaalde input.
hoe computers voor beginners te programmeren
Een QA-tester zou de te testen applicatie / systeem gewoon gebruiken zoals elke normale gebruiker / klant zou gebruiken, maar met focus op meer minutieuze details en randscenario's door verschillende invoercombinaties te proberen, enz.
SDET's richt zich op toepassingen van zowel White Box als Black Box-tests. Met andere woorden, ze zouden zich ook bewust zijn van de interne werking van de app, waardoor ze automatiseringstests kunnen schrijven met zowel White Box- als Black Box-testtechnieken.
In wezen moet een Software Development Engineer in Test op de hoogte zijn van alle Black Box-testtechnieken, samen met praktische kennis van ontwikkeling / codering om de interne werking van de app te begrijpen, wat zorgt voor betere kwaliteitsnormen en een minder defect softwareproduct.
In wezen moet een SDET op alle mogelijke manieren dienen als een enabler voor effectieve QA. Wat dit ook betekent, is dat het individu zijn / haar vaardigheden zou gebruiken om ervoor te zorgen dat alle onderdelen van de te testen software op de best mogelijke manier worden gevalideerd, waarbij zowel functionele als niet-functionele gebieden moeten worden getest.
Laten we eens kijken naar de vergelijking van SDET en handmatige testers op verschillende parameters
Parameter | SDET | Handmatige tester |
---|---|---|
Testbereik | Richt zich op een breed scala aan testtechnieken en -typen. Voorbeeld: Functioneel, niet-functioneel, beveiliging, prestaties etc. | Concentreer u in het algemeen op het functionaliteitsperspectief van de te testen applicatie. Een handmatige tester gedraagt zich als een gebruiker / klant van de te testen app en valideert deze vanuit dat perspectief. |
Automatisering | SDET's richten zich voornamelijk op het automatiseren van repetitieve scenario's om ervoor te zorgen dat handmatige testers zich kunnen concentreren op meer complexe en randscenario's en hun bandbreedte en vaardigheden efficiënter kunnen gebruiken. | Handmatige testers hebben enige of geen vaardigheden voor automatisering. Het is echter vereist dat handmatige testers zich bewust zijn van het gebruik van tools die helpen bij handmatig testen Voorbeeld: Postman gebruiken voor het uitvoeren van API-eindpunten, cloudproviders zoals sauslaboratoria gebruiken voor het uitvoeren van tests op verschillende platformversies, enz. |
Primaire vaardigheden | SDET's zijn primair verantwoordelijk voor het automatiseren van testcases en het schrijven van herbruikbare scripts / tools die het team helpen repetitieve inspanningen te verminderen. Een senior lid van het SDET-team is ook verantwoordelijk voor het maken van automatiseringsframeworks en het mogelijk maken van andere SDET's om tests te schrijven met behulp van het framework. | Handmatige testers richten zich primair op app-functionaliteit, richten zich op edge-case scenario's en complexe testcases. Bijvoorbeeld: Een handmatige tester die een mobiele app test, zou naast alle functionele scenario's ook scenario's bedenken zoals - Wat moet ik doen als ik de app sluit terwijl er een backend-bewerking / netwerkoproep gaande is? - Wat gebeurt er als mobiel plotseling wordt uitgeschakeld terwijl de klant zich op een bepaalde pagina van de app bevond? - Wat gebeurt er als het internet uitvalt tijdens het uploaden van een document naar een app enz. |
Salarissen | SDET's krijgen over het algemeen hogere salarissen aangeboden (~ 40-50% hoger dan handmatige testers), vanwege de vaardigheden die ze bezitten en de ervaring die ze hebben. | Pure handmatige testrollen vragen een lager salaris in vergelijking met een hybride rol, waarbij een handmatige tester er ook naar streeft om nieuwe tools te leren en waarde toe te voegen aan het product dat wordt geleverd. |
Software Development Engineer in Test Skillset
Hieronder staan de skillsets die een SDET moet bezitten:
# 1) Open Mindset
De eerste en belangrijkste vaardigheid is dat elke Software Development Engineer in Test open moet staan voor het leren van scripttalen / tools die nodig zijn om de app die wordt getest grondig te testen.
Het is vrij waarschijnlijk dat je als SDET in het ene bedrijf zou kunnen werken met Microsoft / .NET tech stack, maar in een ander bedrijf is de ontwikkeltaal voornamelijk Java - dus van SDET wordt verwacht dat het een open mentaliteit heeft om nieuwe dingen / technologie te leren, zoals en indien nodig.
# 2) Adaptief
Een Software Development Engineer in Test moet zich aanpassen aan de behoeften van het project, tools en technologieën, databases, enz. Bijvoorbeeld - als SDET heb je misschien ervaring met het doen van API-testen, maar voor een andere rol moet je de UI of frontend testen. Daarom vereist de rol dat u zich aanpast aan de behoeften van het project, om een standaardproduct van hoge kwaliteit te leveren.
# 3) Multitasker
Bij de meeste productbedrijven worden de DEV- en QA-ratio's vaak in grote mate scheef. Dit betekent dat teams vaak een DEV: QA-ratio van 4: 1 of zelfs 5: 1 hebben. Daarom is het absoluut noodzakelijk dat van een SDET wordt verwacht dat deze bij meerdere dingen betrokken is en resultaten oplevert.
Dit zijn een aantal verantwoordelijkheden waaraan een SDET zou moeten werken:
- Deelnemen aan bijeenkomsten met belanghebbenden: een SDET moet nauw samenwerken met zowel ontwikkelaars als productmensen om het product te begrijpen vanuit zowel ontwikkelaars als productstandpunten en vervolgens een automatiseringsstrategie te bedenken / voorstellen.
- Creëer framework / tools
- Strategiseer testplanning
- Defecten opheffen / onderzoeken
- Het kan soms nodig zijn om samen met ontwikkelaars bij te dragen aan het testen van eenheden.
# 4) Verkennende mentaliteit
Elke SDET moet deze regels te allen tijde onthouden: ' Als u steeds dezelfde acties herhaalt, overweeg dan om deze te automatiseren
De persoon zou de mentaliteit hebben om de inspanning te verminderen voor alles wat op zijn pad komt met behulp van tools om de productiviteit te verhogen en om softwareproducten van hoge kwaliteit te garanderen.
Naast al het automatiseringswerk is het de primaire taak van SDET om producten van hoge kwaliteit te leveren met alles wat nodig is, daarom zou hij / zij zich ook moeten concentreren op het testen van producten door middel van verkennende manieren om steeds meer verborgen bugs en defecten aan het licht te brengen.
# 5) Werk samen, draag bij en communiceer
De rol van SDET vereist het onderhouden van contacten tussen verschillende belanghebbenden zoals ontwikkelaars, producten, handmatige testers, enz.
Het is belangrijk dat SDET's samenwerken met alle vereiste belanghebbenden en alle noodzakelijke details doorgeven wanneer dat nodig is.
SDET's en het QA-team houden de kwaliteitspoorten voor een product vast voordat het openstaat voor het publiek en daarom spelen ze een belangrijke rol bij het achten dat een product geschikt is om aan klanten te worden gelanceerd of niet.
Rollen en verantwoordelijkheden
Laten we dus proberen te begrijpen wat de dagelijkse taken en verantwoordelijkheden van SDET zijn en de verschillende taken die ze moeten uitvoeren.
- Werk samen met ontwikkelaars en de zakelijke belanghebbenden en streef ernaar om de acceptatiecriteria te automatiseren. Dit betekent in eenvoudige bewoordingen: een SDET begrijpt eerst de vereisten vanuit acceptatie / klantperspectief en moet ook begrijpen hoe het product is ontwikkeld in termen van codeertaal, databases, enz., En vervolgens een strategie plannen om maximale scenario's te automatiseren. .
- Verantwoordelijk voor het bouwen van robuuste en hoogwaardige testautomatiseringsoplossingen voor functionele, regressie- en prestatietests.
- Maak waar nodig herbruikbare scripts / tools.
- Draag bij aan zowel functionele als niet-functionele testgebieden. Functioneel testen omvat testen vanuit het perspectief van functionaliteit / vereisten en wordt grotendeels gedreven door acceptatiecriteria of gebruikersverhalen.
Niet-functionele testen zijn echter even belangrijk. Bijvoorbeeld, hoe performant de applicatie is, is de applicatie veilig genoeg, zorg ervoor dat er geen hacks meer in de app zitten die de beveiliging van de app kunnen belemmeren en uiteindelijk een groot verlies kunnen veroorzaken voor zowel klanten als de organisatie. - Ze nemen ook deel aan de discussies over ontwerp en architectonisch ontwerp en geven effectieve feedback in codebeoordelingen.
Word een geweldige SDET
Laten we, om een geweldige SDET te worden, enkele tips / basistools en technische vaardigheden bekijken die moeten worden geleerd om beter te presteren in hun rollen.
In het vorige gedeelte hebben we geleerd over de kwaliteiten die een Software Development Engineer in Test moet bezitten om geweldig te worden in hun rol. Ze moeten een open mindset hebben, adaptief zijn en moeten kunnen communiceren, samenwerken en bijdragen op welke manier dan ook zoals voorgeschreven door het product of team.
Laten we eens kijken naar een lijst met enkele veelgebruikte tools en technologieën die SDET's moeten leren:
- Moet een gedegen kennis hebben van testprincipes, testtypen en methodologieën.
- Zeer bedreven in het debuggen van problemen - leer debugtools zoals - Chrome Web Debugger die uiterst nuttig zijn voor het debuggen van webapplicaties, evenals het onderzoeken van netwerklogboeken voor een app die wordt getest.
- Ze moeten herbruikbare code / scripts kunnen schrijven en daarom moeten ze bedreven zijn in ten minste één scripttaal. Het gemakkelijkst te leren is Python, dat kan worden toegepast op een breed scala aan taken, automatiseringsraamwerken, enz.
- Wees bekend met API-testclients zoals POSTBODE
- Moet op de hoogte zijn van White box-testtools en -technieken - zoals Mocking-frameworks ( Mockito ), enz. omdat van hen kan worden verwacht dat ze ook bijdragen aan schrijfeenheidtests als dat nodig is.
- Ze moeten op de hoogte zijn van tools voor versiebeheer, zoals Gaan Ze moeten ook bekend zijn met de concepten van Pull-verzoeken , codebeoordelingen, enz.
- Inzicht in de architectuur van webapplicaties en het algemene client-server-model.
- Moet op de hoogte zijn van elementaire objectgeoriënteerde programmeerconcepten en begrip van SOLIDE model ( S ingle Verantwoordelijkheid, OF pen / gesloten principe, L. iskov Wissel, ik nterface-segregatie, D afhankelijkheidsinversie)
- Basiskennis van Continue integratie Continue levering concepten (CI / CD) en moet ook op de hoogte zijn van CI-tools zoals Jenkins / Bamboo, enz.
Van SDET's wordt over het algemeen verwacht dat ze ook zorgen voor implementatieproblemen, daarom is het noodzakelijk om deze tools te begrijpen. - Ze moeten bekend zijn met ten minste één front-end automatiseringsraamwerk. De gemakkelijkste en meest gebruikte in Selenium Het is de heilige graal van front-end-tests voor webapplicaties en bijna alle organisaties gebruiken het Selenium-framework voor het automatiseren van UI-tests.
- De basisprincipes van prestatietests leren en eenvoudige scripts schrijven met behulp van open source prestatietesttools zoals JMeter is erg nuttig en u kunt hiernaar verwijzen Jmeter-zelfstudie Dit is handig omdat van SDET's ook wordt verwacht dat ze zorgen voor niet-functionele vereisten, zoals prestatietests.
- Ze moeten ook op de hoogte zijn van de fundamentele concepten van beveiligingstests. Dit omvat ook het hebben van kennis van basiscoderingsstandaarden die ervoor zorgen dat er geen basisbeveiligingsfouten zijn die onopgemerkt blijven in de app. OWASP is een geweldige referentie voor al dergelijke fundamentele concepten.
- Van SDET's wordt verwacht dat ze agile ontwikkelingsmethodologieën kennen, begrijpen en implementeren en ze moeten comfortabel zijn in het werken met teams die de Sprint / Scrum-methodologie van agile gebruiken.
- Moet op de hoogte zijn van iemand die cloudtechnologieplatforms zoals - Amazon AWS Google GCP , of Microsoft Azure
Aangezien de meeste bedrijven nu overstappen op een cloudgebaseerde infrastructuur, is het over het algemeen handig om een basiskennis van cloudtools en -technologieën te hebben om mee aan de slag te gaan.
Certificering voor SDET's
Over het algemeen zijn er geen specifieke certificeringen beschikbaar voor SDET's
Als iemand zijn Software Development Engineer in Test-reis wil beginnen, kunnen ze zich concentreren op de punten die worden genoemd in het gedeelte 'Hoe een geweldige SDET te worden' van deze tutorial, en dan moeten SDET's met hun open mentaliteit hun leertraject voortzetten. aan het werk.
Voor het testen van terminologie en basisprincipes is het goed dat iedereen die in het vak van softwaretesten zit, gecertificeerd is met de ISTQB Foundation testcertificaat
Deze certificering omvat alle basissoftwaretestconcepten zoals,
- Typen testen - functioneel / niet functioneel
- Black box / White box / Grey box testen
- Testplanning / defectenbeheer
- Testtechnieken - Equivalentiepartitionering, traceerbaarheidsmatrix, enz.
Er zijn ook andere internationale certificeringen voor softwaretests beschikbaar, maar de meeste zijn niet erg belangrijke selectiecriteria voor bedrijven om SDET's in te huren.
tools die worden gebruikt bij big data-analyse
Een lijst met al dergelijke certificeringen is beschikbaar hier.
Sollicitatiegesprekken
Bij de meeste grotere productbedrijven is het Software Development Engineer in Test-interview veel meer in vergelijking met degenen met ontwikkelaarsinterviews, omdat van hen wordt verwacht dat ze de meeste ontwikkeling van methodologieën en gerelateerde concepten kennen.
De interviews zijn echter wat soepeler in vergelijking met ontwikkelaars. Wat hier wordt benadrukt, is hoe de kandidaat een probleem benadert en hoe breed iemand over het probleem kan denken.
Over het algemeen bestaan SDET-interviews uit het volgen van rondes / vraagtypen bij bijna alle grote productorganisaties zoals - Amazon, Microsoft, Adobe, Expedia, enz.
- Geschreven ronde: Testcases schrijven voor een bepaald product. Hier is het de bedoeling om een idee te krijgen van hoe alle facetten van testen de persoon over de kandidaat kan denken als hij denkt / alle functionele scenario's opsomt, edge-case scenario's, als de kandidaat zich richt op beveiligingstesten, prestatietesten, enz.
- Coderingsronde: Er wordt een kleine codeeroefening gegeven en van de kandidaat wordt ook verwacht dat hij alle scenario's voor het testen van eenheden en functionele tests opschrijft. Hier is het gebied of de vaardigheid die wordt getest: basiskennis / constructies op het gebied van codering, het schrijven van testbare code en kennis over white box-testtechnieken zoals unit testing, bespotten, etc.
- Ontwerpronde: Er wordt een systeemontwerpvraag opgeworpen, voorbeeld hoe zou je youtube ontwerpen
Dit soort vragen is over het algemeen relevanter voor ontwikkelaars, maar voor SDET's is de interviewer op zoek naar hoe breed de persoon kan denken, kent de kandidaat OOP-concepten, is de kandidaat in staat om na te denken over schaalbaarheid, robuustheid, load balancing, enz. , kan de kandidaat de juiste databases gebruiken voor de applicatie die moet worden ontworpen - HR / Manager Ronde: Hier worden zaken als teamfitness, cultuurfitness, etc over de kandidaat geobserveerd, evenals salarisbesprekingen, en worden ook onderhandelingen gevoerd.
Aanbevolen literatuur => SDET Interview Vragen
SDET Salaris
Zoals we in onze vorige secties hebben besproken, hanteren SDET's hogere salarissen dan de meeste handmatige testfuncties. In veel gevallen zijn de salarissen vergelijkbaar met die van ontwikkelaars met een vergelijkbaar ervaringsniveau.
U kunt verwijzen hier om meer te weten te komen over het salarisaanbod bij verschillende SDET-profielen in verschillende organisaties. Over het algemeen verschilt het SDET-salaris per ervaringsband en per organisatie.
Hieronder vindt u een vergelijking van SDET-salarissen voor topbedrijven zoals Microsoft, Expedia.
Niveau | Microsoft ($) | Expedia ($) |
---|---|---|
SDET - ik | 65.000 - 80000 | 60000 - 70000 |
SDET - II | 75.000 - 11.000 | 70000 - 100000 |
Dhr. SDET | 100.000 - 150.000 | 90000 - 130.000 |
Carriere
Over het algemeen begint en groeit de SDET-carrièreladder op de volgende manier:
- SDET-1 - Junior niveau SDET in staat om automatiseringsscripts te schrijven.
- SDET-2 - Ervaren SDET die herbruikbare tools en automatiseringsframeworks kan schrijven.
- Dhr. SDET - SDET op senior niveau die een individuele bijdrager kan zijn, zoals SDET 1 en SDET 2, maar ook in staat is
- Code-reviews uitvoeren.
- Neem deel aan ontwerpbesprekingen en doe suggesties om passende wijzigingen in het ontwerp aan te brengen.
- Neem deel aan de algemene teststrategie van het product.
- Neem deel aan CI / CD-leveringsmodellen, creëer uitvoeringspijplijnen, enz.
- SDET Manager - Na SDET2 kunt u kiezen voor Sr SDET of SDET Manager Path. Een SDET-manager heeft ook management- / leiderschapsverantwoordelijkheden naast het kernwerk van SDET.
- Testarchitect / Solutions Engineer - Testarchitect of Solutions Engineer is iemand die meestal een algemeen raamwerk ontwerpt / architecteert voor meerdere projecten, testspecificaties voor frames, kan ook optreden als opleveringsmanager. Deze mensen gaan naar individuen en helpen meerdere projecten om hun testresultaten te behalen en een uitgebreid goed getest en defectvrij product te verzenden.
Hier is een weergave op blokniveau van SDET Career Path:
Gevolgtrekking
In deze tutorial hebben we diepgaand geleerd over wat een SDET is in termen van rollen en verantwoordelijkheden, vaardigheden die je moet hebben, wat het verschil is tussen SDET's en handmatige testers, en wat er nodig is om een geweldige Software Development Engineer in Test te worden.
Over het algemeen is SDET een rol waar veel vraag naar is en bijna alle goede productbedrijven hebben deze rol in hun teams en worden zeer gewaardeerd.
Aanbevolen literatuur
- SDET interviewvragen en antwoorden (complete gids)
- 10 BESTE maatwerk softwareontwikkelingsbedrijven en -diensten in 2021
- 20 BEST softwareontwikkelingstools (ranglijst 2021)
- Maatregelen voor SSDLC (Secure Software Development Life Cycle)
- SDLC (Software Development Life Cycle) fasen, methodologieën, processen en modellen
- Softwareontwikkeling en testmethoden (met voor- en nadelen)
- 5 dingen die een beginnende ontwikkelaar (en tester) moet weten over softwaretests
- 5 manieren om een gedurfde en zelfverzekerde softwaretester te zijn