SDET Unicorns - Varför är det så svårt att hyra SDET?

SDET, även känd som Software Development Engineer in Test, är en arbetsroll inom Software Testing and Quality Assurance Domain. Termen användes ursprungligen av Microsoft och sedan Google i syfte att ersätta vardagliga och repetitiva manuella testuppgifter med automatisering.

Under åren anställer fler och fler företag SDET: er eftersom det är en central roll i Agile och DevOps. Det är dock en utmanande roll att fylla.

Teknik förändras mycket snabbt och testare måste lära sig mycket för att hålla sig före spelet.


I mitt tidigare inlägg, Testar i en DevOps-värld , Jag förklarade hur en testares roll har förändrats under det senaste decenniet och därmed skapat bristen på test enhörningar .

Detta inlägg talar om rollen som en SDET och varför unicorn-SDET är svåra att hitta.




Vad gör en SDET?

En SDET är en teknisk programvarutestare med fokus på att utveckla automatiserade testskript.

Vanligtvis ingår de i ett smidigt team och arbetar tillsammans med utvecklare för att automatisera acceptanskriterier i användarberättelser.

Förutom att delta i typiska QA-aktiviteter kan de skriva allt från automatiserade integrationstester, API-tester och / eller UI-automatiseringstester.

Dessutom kan SDET hjälpa till att granska enhetstester som skrivs av utvecklarna.




Varför behövs SDET?

I varje produkt finns det några kärnfunktioner som måste fungera vid varje produktutgåva. Detta innebär att i varje sprint måste nya funktioner plus befintlig funktionalitet testas.

Agil utveckling går snabbt. Med korta sprints, som vanligtvis är två veckor långa, har testare inte tid att testa allt manuellt.

När testare i ett team inte har de färdigheter som krävs för att skriva automatiserade kontroller måste all testning göras manuellt.

I slutändan blir testning en flaskhals för utveckling och lansering av programvara eftersom det tar längre och längre tid att slutföra.


Därför kan anställning och placering av SDET i ett smidigt team lindra bördorna genom att automatisera mycket av de manuella testerna och uppgifterna.



Intervjuer och anställer SDET

Så varför är det så svårt att hitta och rekrytera bra SDET?

Under åren saknar de flesta så kallade SDET: er som jag har intervjuat de tekniska kunskaper som krävs eller har ingen förståelse för QA och testprinciper.

De förstår inte helt huvudorsaken till rollen som SDET i ett team. De flesta kommer med antagandet att allt de är skyldiga att göra är att automatisera acceptanskriterier. Låt oss vara tydliga, en SDET är INTE en automationsingenjör .


Att ha rätt balans mellan att testa skicklighet och teknisk kompetens är nyckeln.

En stor SDET är en programvarutestare av handeln, brinner för programvarukvalitet och på samma gång är tekniskt kunnig och har rätt blandning av tekniska färdigheter.

När jag intervjuar för SDET, letar jag alltid efter QA Mindset och Tekniska förmågor.



SDET-profil - Full-stack testare

Hur ser profilen för en bra SDET ut? Vilka färdigheter ska SDET ha?


Nu har några av oss hört talas om full-stack-utvecklare, men kan vi ha det full-stack testare ?

Enligt min mening borde en SDET ha minst följande färdigheter och attribut:

  • Har en testerinställning, är nyfiken och kan komma med intressanta testscenarier
  • Har en solid förståelse för testprinciper och metoder
  • Vet att all testning är utforskande till sin natur och uppskattar skillnaden mellan testning och kontroll.
  • Kan tillämpa lämpliga testmetoder för ett givet scenario
  • känner till skillnaden mellan testning och QA
  • Kan koda in minst ett skripts- eller programmeringsspråk (Java och Javascript råkar vara mest populära)
  • Förstår HTTP och hur moderna webbapplikationer är byggda
  • Kan skriva UI såväl som API-automatiska tester. Det ena eller det andra är inte tillräckligt bra!
  • Vet Git, Pull Requests, Branching , etc…
  • Är smidig till sin natur och vet hur testning passar in i den smidiga modellen
  • Kan skriva prestandatestskript ( Gatling och / eller JMeter )
  • Tänker på säkerhet och är medveten om OWASP
  • Förstå CI / CD och bygg pipelines
  • Känner till de tjänster som erbjuds av leverantörer av molnplattformar som AWS, Azure och Google Cloud


Bli en bra SDET

Som framgår är det antal kompetenser som förväntas av en SDET ganska brett.

Mitt råd till testare som vill bli SDET och förblir relevanta i QAs nya tidsålder är:

Se till att du arbetar för att ha alla ovanstående färdigheter i SDET-profilen_, men som ett minimum: _

Känna till och förstå grunderna för testning

Först och främst känna till grunden för programvarutestning.

Det är alltför bra att vara i nivå med utvecklare och kunna skriva vacker kod. Men om du saknar QA-tankesättet, om du inte kan komma med tillräckligt med scenarier för att testa användarberättelser och funktioner på djupet, lägger du inte till något värde. Du kan lika gärna arbeta hårdare och bli utvecklare.

Känna till och förstå HTTP

De flesta moderna webbapplikationer interagerar med API: er.

Det är viktigt att känna till och förstå HTTP-arkitektur och hur webben fungerar. Om du inte kan skilja mellan en POST-begäran och en GET-begäran eller inte vet hur du gör det analysera JSON , hur kan du sedan effektivt testa ett API?

Investera tid i att lära sig API-testverktyg som Karate .

Du kan inte kalla dig själv en SDET om allt du vill göra är att automatisera tester och allt du vet är Java, Selen och Gurka!