SDET Unicorns - Защо е толкова трудно да се наемат SDET?

SDET, известен също като Инженер за разработка на софтуер в теста, е работна роля в домейна за тестване на софтуер и осигуряване на качеството. Терминът първоначално е бил използван от Microsoft, а след това и от Google с оглед да замени ежедневните и повтарящи се задачи за ръчно тестване с автоматизация.

През годините все повече компании наемат SDET, тъй като това е ключова роля в Agile и DevOps. Това е предизвикателна роля, която трябва да се изпълни.

Технологиите се променят много бързо и тестерите трябва да научат много, за да изпреварят играта.


В предишния ми пост, Тестване в свят на DevOps , Обясних как ролята на тестера се е променила през последното десетилетие, поради което създава недостиг на тествайте еднорози .

Тази публикация говори за ролята на SDET и защо SDET за еднорог е трудно да се намери.




Какво прави SDET?

SDET е технически тестер за софтуер с фокус върху разработването на автоматизирани тестови скриптове.

Обикновено те са част от пъргав екип и работят заедно с разработчиците, за да помогнат за автоматизирането на критериите за приемане в историите на потребителите.

Освен че участват в типични QA дейности, те могат да напишат всичко от автоматизирани тестове за интеграция, API тестове и / или тестове за автоматизация на потребителския интерфейс.

В допълнение, SDET могат да помогнат за преглед на модулни тестове, написани от разработчиците.




Защо са необходими SDET?

Във всеки продукт има някои основни характеристики, които трябва да функционират при всяко издаване на продукта. Това означава, че във всеки спринт трябва да се тестват нови функции плюс съществуваща функционалност.

Пъргавото развитие е забързано. С кратки спринтове, които обикновено са с продължителност 2 седмици, тестерите нямат време да тестват всичко ръчно.

Когато тестерите в екип нямат необходимите умения за писане на автоматизирани чекове, всички тестове трябва да се извършват ръчно.

В крайна сметка тестването се превръща в пречка за разработването и пускането на софтуер, защото ще отнеме повече и повече време.


Следователно наемането и поставянето на SDET в гъвкав екип може да облекчи тежестта, като автоматизира голяма част от ръчните тестове и задачи.



Интервюиране и наемане на SDET

И така, защо е толкова трудно да се намерят и наемат добри SDET?

През годините по-голямата част от така наречените SDET, които съм интервюирал, или нямат необходимите технически умения, или нямат разбиране на QA и принципите на тестване.

Те не разбират напълно основната причина за ролята на SDET в екип. Повечето се сблъскват с предположението, че всичко, което трябва да направят, е да автоматизират критериите за приемане. Нека бъдем ясни, SDET НЕ е инженер по автоматизация .


Наличието на правилния баланс на тестване на способности и технически умения е ключовото нещо.

Страхотният SDET е софтуерен тестер за търговия, който е запален по качеството на софтуера и в същото време е технически разбиращ и притежава правилната комбинация от технически умения.

Когато интервюирам за SDET, винаги търся QA Mindset и Технически умения.



SDET профил - тестери с пълен стек

Как изглежда профилът на страхотен SDET? Какви умения трябва да имат SDET?


Сега някои от нас са чували за разработчици с пълен стек, но можем ли да го направим тестери с пълен стек ?

Според мен SDET трябва да има поне следните умения и атрибути:

  • Има мислене на тестера, любопитен е и може да измисли интересни тестови сценарии
  • Разбира солидно принципите и методологиите за тестване
  • Знае, че всички тестове имат изследователски характер и оценява разликата между тестване и проверка.
  • Може да приложи подходящи методи за изпитване за даден сценарий
  • знае разликата между тестване и QA
  • Може да кодира поне един скриптов или програмен език (Java и Javascript са най-популярните)
  • Разбира HTTP и как се изграждат съвременните уеб приложения
  • Може да пише потребителски интерфейс както и API автоматизирани тестове. Едното или другото не е достатъчно добро!
  • Знае Git, заявки за изтегляне, разклоняване и т.н. ...
  • Има пъргав характер и знае как тестването се вписва в пъргавия модел
  • Може да пише скриптове за тест за изпълнение ( Гатлинг и / или JMeter )
  • Мисли за сигурност и е наясно OWASP
  • Разбира CI / CD и Build конвейери
  • Познава услугите, предлагани от доставчици на облачни платформи като AWS, Azure и Google Cloud


Станете страхотен SDET

Както може да се види, диапазонът от умения, очаквани от SDET, е доста широк.

Моят съвет към тестерите, които искат да станат SDET и да останат актуални в новата ера на QA, е:

Уверете се, че работите за притежаването на всички горепосочени умения в профила SDET_, но като минимум: _

Познаване и разбиране на основите на тестването

Първо и най-важно, познавайте основите на тестването на софтуера.

Твърде добре е да бъдете наравно с разработчиците и да можете да пишете красив код. Но ако ви липсва мисленето за QA, ако не можете да измислите достатъчно сценарии, за да тествате подробно потребителски истории и функции, тогава не добавяте никаква стойност. Можете също така да работите по-усилено и да станете разработчик.

Познавайте и разбирайте HTTP

Повечето съвременни уеб приложения взаимодействат с API.

Важно е да знаете и разберете HTTP архитектурата и как работи мрежата. Ако не можете да разграничите POST заявка от GET заявка или не знаете как анализирайте JSON , тогава как можете ефективно да тествате API?

Инвестирайте време в изучаване на инструменти за тестване на API, като например Карате .

Не можете да се наречете SDET, ако всичко, което искате да направите, е да автоматизирате тестове и всичко, което знаете, е Java, селен и краставица!