En
Проекты Вакансии Блог
29 ноября 2024

Карьера SDET: с чего начать и что надо уметь

Автоматизированное тестирование — актуальная зона роста для специалистов в IT–индустрии. Объём мирового рынка уже превысил 30 млрд долларов, и эксперты обещают ежегодный рост, в среднем, на 16%. Сегодня у бизнеса возникла потребность в широкопрофильных специалистах с набором навыков для оптимизации и автоматизации проверки качества IT-продукта на разных этапах жизненного цикла. Такую роль широкопрофильного инженера по тестированию и автоматизации выполняет SDET. 

SDET — это инженер по разработке программного обеспечения для автоматизированного тестирования IT-продукта. При этом роль специалиста не ограничивается разработкой моделей и инструментов для автоматизированного и частично ручного тестирования программного обеспечения. В этой статье мы подробно разберём, кто такой SDET, какими инструментами и методами он должен владеть и что знать.


О роли и компетенциях SDET

SDET расшифровывается, как Software Development Engineer in Test — это гибридная роль, которая объединила в себе знания и навыки автоматизированного функционального и нагрузочного тестирования, разработчика, manual QA и DevOps. Если рассматривать обязанности разработчика и тестировщика, то роль больше ориентирована на разработку, но со знаниями теории и методик тестирования.


Собеседование в IT-компанию: чего ждать и как подготовиться
snippet


SDET популяризировали такие технические гиганты, как Microsoft и Amazon. Сейчас позиция присутствует в компаниях по всему миру, и в каждой из них требования к ней отличаются. Стандартно значительной частью обязанностей SDET является написание автоматизированных тестов, поэтому человек должен легко создавать хорошо организованный, чистый код, уметь читать и проводить проверку кода, написанного коллегой или разработчиком SE (system engineer).

В интернете можно встретить второй вариант наименования роли: SET (Software Engineer in Test). Упрощённое название ввела корпорация Google, которая при создании позиции просто сократила её наименование.

snippet

Чтобы успешно работать SDET, важно обладать следующими знаниями и умениями (они относятся к обязанностям сразу нескольких членов IT–команды): 

  1. покрытие кода основной системы автотестами от интеграции до end-to-end 
  2. написание кода основной системы, там, где это необходимо
  3. мануальное тестирование: интеграционное и сквозное (end-to-end)
  4. разработка инструментов автоматизации
  5. разработка фреймворка автоматизации
  6. разработка инструментов генерации наборов тестовых данных
  7. проведение исследования и тестирования производительности
  8. проведение нагрузочного тестирования с использованием популярных инструментов
  9. интеграция автотестов в процессы CI/CD.

Это только часть знаний, которая необходима, чтобы стать профессиональным SDET. Роль подразумевает универсала, работающего над качеством продукта. Степень его ответственности зависит от общего масштаба проекта и специфики реализуемых программных решений.


Компетенции Software Development Engineer in Test

SDET отвечает за автоматизацию тестирования, которая обеспечивает ускорение выпуска продукта на рынок (time to market) за счёт сокращения времени на тестирование новых версий путём быстрого запуска тестов и их непрерывного «прогона». Роль требует от человека большого объёма знаний, определённых личных качеств и технических навыков каждый день.  

SDET должен иметь широкий диапазон скиллов: 

  • Иметь навыки программирования. Новичку достаточно освоить хотя бы один язык программирования для обеспечения automation testing. Можно выбрать один из популярных языков программирования, таких как Java, Python, Java Script. Также немаловажен опыт ведения проектов в GitHub. Знание Git-команд, моделей ветвления, правил работы с gitignore, правил работы с MR/PR.
  • Уметь работать с инструментами. 
    • Автоматизация. Для оптимизации процесса тестирования необходимо изучить и использовать: Selenium WebDriver, JMeter, Appium, Soap UI и другие инструменты автоматизации. Для работы также существуют фреймворки тестирования JUnit, PyTest, TestNG. Также нужно быть готовым заниматься поддержкой уже существующего на проекте фреймворка.
    • Мокирование — это искусственное воссоздание окружения, в котором будет функционировать программа. Автоматизатор переносит внимание с внешних зависимостей и поведения на проверяемый код. Инструментами мокирования являются сервисы WireMock, Mockito, Postman, MockServer.
  • Знать теорию тестирования, которая включает в себя:
    • Знание и вдумчивое применение на практике техник тест-дизайна, таких как таблица принятия решений, анализ граничных значений, эквивалентное разбиение и т.д. Они помогают SDET в оптимизации сценариев пользовательского опыта и тестировании производительности системы. Также важно практиковать исследовательское тестирование.
    • Умение формировать тестовую документацию — тест-планы, тест-кейсы, чек-листы, баг-репорты, стратегию автоматизации на каждом этапе жизненного цикла продукта.
    • Понимание разницы в видах и уровнях тестирования. Например, различия между функциональным и нефункциональным тестированием. Функциональное тестирование –  это проверка основных функций программы. Нефункциональное подразумевает проверку непрямых функций ПО, в частности, производительность, удобство для пользователя, безопасность и т.п. Специалист должен знать, когда и какой вид тестирования стоит применять и стоит ли применять вовсе.
    • Понимание концепции пирамиды тестирования, которая описывает распределение тестов по уровням детализации и их назначению в процессе разработки ПО.

От специалиста ожидают навыки проведения тестов и написания кода для этого.

  • Пользоваться вспомогательными инструментами. Выбор инструментов зависит от задач, которые требуются для проекта. Можно выделить ряд инструментов, изучение которых поможет в тестировании той или иной функциональности:
    • Для тестирования UI пригодится работа с консолью разработчика в браузере
    • Для API-тестирования потребуется опыт работы в таких инструментах, как Postman и SoapUI. Также нелишним будет опыт работы с базами данных и умение составлять SQL-запросы к ним.
    • Для мобильного тестирования пригодится работа с эмуляторами.
    • Для любого вида тестирования будет полезен опыт работы с инструментами мониторинга и логирования, такими как Kibana и Grafana, с помощью которых легче локализовать баги
  • Работать с инструментами для тестирования. Инструменты для планирования и управления процессом тестирования, а также заведения багов:
    • JIRA 
    • Zephyr
    • TestRail
    • ТестОпс
    • TestIT
    • Kaiten
  • Владеть DevOps-практиками.
    • Понимание принципов и основных понятий CI/CD
    • Умение встраивать свои автотесты в системы непрерывной интеграции, например, в Jenkins, Gitlab или TeamCity
    • Умение настроить вспомогательные функции в работе систем непрерывной интеграции, например, настройка запуска тестов по триггеру или расписанию, подключение формирования Allure отчетов, подключение автоматической рассылки результатов прогона и т.д.
    • Знание платформ для непрерывного анализа и измерения качества кода, например Sonar
    • Навык работы с платформами контейнеризации и оркестровки контейнеров, например Docker и Kubernetes 
  • Владение Soft skills.

На собеседовании HR часто интересуют личные качества кандидата: решительность в преодолении препятствий и решении сложных вопросов, умение работать в команде, гибкость, внимание к стратегии и ближайшим целям, критический подход и аналитическое мышление. Также важно использование навыков тайм-менеджмента. 

Таким образом, владение указанными выше инструментами увеличивает возможность обеспечить качество и улучшить функциональность  программного продукта.


Отличительные черты: SDET vs QA

В сфере IT можно услышать мнение, что Software Development Engineer in Test — это максимально «прокачанный» QA-инженер. Роль SDET заметно отличается от традиционного QA, притом что последняя существует значительно дольше. Необходимость в Software Engineer in Test возникла не так давно — в результате глобального роста масштабов автоматизированного тестирования.

Разница между тестировщиком и инженером по Software Development Engineer и Test отражена в таблице.


QA Engineer

SDET

Способ тестировать кейсы

Ручной (приоритет) и автоматизированный

Ручной и автоматизированный (приоритет)

Области ответственности 

Тестирование, выстраивание и контроль процесса разработки

Внедрение и контроль автоматизации тестирования

Навыки и знания

Методология и процессы, ведение процесса тестирования, автоматизация тестирования

Языки программирования, инструменты автоматизации, ведение процесса автоматизированного тестирования

Области взаимодействия

Конечные потребители и команда по созданию продукта

Полная интеграция в разработку

Методологии

Традиционные

DevOps-процессы


SDET погружен в разработку и тестирование IT-продукта. SDET устраняет проблемы за счет привлечения средств автоматизации и работы с CI/CD: оптимизирует процессы разработки на каждом этапе жизненного цикла для обеспечения качества, участвует в создании эффективных рабочих решений. Работа SDET предполагает много ответственности, контроля, высокую нагрузку и квалификацию.


Как стать SDET?

После овладения перечисленными выше навыками и знаниями специалист способен справиться с задачами Software Development Engineer in Test. 

Программы обучения

Наличие полного профильного высшего образования — один из факторов для получения работы. Кроме того, от кандидата на должность компания может потребовать дополнительных подтверждений об образовании. Обучение на курсах по программам тестирования, автоматизации и программирования станут плюсом при поиске работы. Небольшую роль в получении должности SDET может сыграть наличие международного сертификата в области тестирования — ISTQB (International Software Testing Qualifications Board).

Получение должности в компании

Новая роль востребована во многих сферах, где развивают IT–проекты: медицина, финансы, e-commerce и других. В современном мире наблюдается недостаток специалистов, которые подходят на роль SDET. Некоторые компании начинают готовить кадры самостоятельно. В таких организациях очень перспективны вакансии тестировщика, инженера по автоматизации, инженера CI/CD, DevOps. Эти позиции позволяют строить карьеру. 

Менеджмент делает ставку на специалистов из собственной команды, которые «переросли» свою должность. Поэтому те, кто получил базовые знания для SDET и имеют подходящий опыт, смогут получить работу в качестве инженера по автоматизации тестирования.



Заключение

SDET — это разноплановая и творческая работа. Чтобы получить должность Software Developer Engineer in Test, специалист должен глубже погрузиться в темы программирования, использования инструментов тестирования и фреймворков. Для расширения своих обязанностей нужно пройти соответствующие обучающие курсы, получив недостающий опыт и знания. Тогда IT–сотрудники смогут развиваться в рамках собственной компании или претендовать на новые должности в других местах. Сегодня работа SDET востребована в разных отраслях, благодаря чему потенциал роли почти не ограничен.

Наша компания проводит практикумы — разновидность стажировки, где начинающие IT-специалисты выполняют серию учебных задач под присмотром наставника. По итогам обучающиеся укрепляют свои теоретические знания, но, что еще более важно, получают практический опыт работы с изучаемой технологией. Отследить открытие регистраций на практикумы можно в наших социальных сетях: ВКонтакте, Telegram

Хотите работать в SimbirSoft в качестве SDET или ищете подходящий специалистов себе на проект? Оставьте свою заявку или вопрос по телефону 8-800-200-99-24, [email protected] или в telegram.


Другие статьи

RPA или Программные роботы: внедрение, возможности для бизнеса, рекомендации
26 ноября 2024
Компьютерное зрение в сельском хозяйстве: кейсы, рекомендации
21 ноября 2024
Компьютерное зрение в медицине: как бизнесу применять технологию. Кейсы
19 ноября 2024
Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Angular-разработчик
  • Node.js-разработчик
  • Middle Vue.js / Frontend-разработчик
  • Системный аналитик
  • QA Engineer Fullstack (Python)
  • Инженер по нагрузочному тестированию
  • DevOps-инженер
  • 1С-аналитик
  • Юрист
  • Разработчик на C++
  • UI/UX дизайнер
  • 1С-разработчик
  • Data Scientist (NLP)
  • SDET (Python)
  • IT-рекрутер
  • Аналитик DWH
  • Технический писатель
  • SDET (Java)
  • IT сорсер
  • DBA
  • QA с опытом в автоматизиции Java
  • Коммуникационный/графический дизайнер
  • Ассистент руководителя
  • MLOps инженер
  • SDET разработчик C#
  • Руководитель отдела 1С
  • SDET (Swift)
  • React native-разработчик
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Будь в курсе новостей SimbirSoft