Методы тестирования
-
Функциональное тестирование — процесс проверки функциональности различных приложений. Черный ящик, серый ящик, белый ящик и в целом методы QA.
-
Нефункциональное тестирование — проверка других аспектов приложения, помимо его непосредственных функций. В первую очередь производительность, безопасность, юзабельность и т.д.
-
Автоматизация — без владения автоматизацией тестирования на должном уровне нельзя даже мечтать о должности SDET.
Главные инструменты автоматизации в QA
- Mocking — мокинг это репликация (воссоздание) окружения, в котором будет работать приложение. Используется для концентрации на тестируемом сейчас коде, а не на его поведении или внешних зависимостях. Популярные инструменты: WireMock, Mockito, SoapUI, Postman, MockServer и др.
Роль SDET
SDET (Software Development Engineer in Test) — одна из ролей (тайтлов) в команде, разработчик в должности тестировщика, то есть квалифицированный разработчик, выполняющий задачи тестировщика, отвечающий за качество продукта на более высоком уровне и более квалифицированный. Эта роль была придумана в Microsoft и сейчас присутствует во многих крупных IT-корпорациях.
Чаще всего в SDET выдвигают самых перспективных тестировщиков-автоматизаторов, или же, при нехватке тестировщиков или нежелании расширять штат, главные задачи QA выполняют разработчики.
SDET работают с разработчиками и продакт-менеджерами, стараясь обеспечить отсутствие ошибок в ПО, его функциональность и соответствие пользовательским требованиям и стандартам. SDET выявляют и устраняют проблемы до того, как их заметят потребители.
Продолжаем цикл материалов об ИТ-специальностях. Каждую описывает типичный представитель — опытный специалист и просто авторитетный коллега, тот же человек, который знает все тайные уголки своей профессии. Мы надеемся, эти материалы помогут школьникам, студентам, переквалификантам, студентам и всем, кто заинтересован в выборе ИТ-специальности. Цикл не только поможет оценить перспективы, но и позволит лучше понять индустрию и особенности профессии изнутри. Обсуждайте и дополняйте материал в комментариях, чтобы сделать его полезнее.
Сегодня своим опытом делится Андрей Борисенко, Software Developer в Pingle Game Studio.
SDET: Дорожная карта и обязанности
SDET должен обладать достаточно большим набором скиллов, и приспосабливаться к различным обстоятельствам, уметь преодолевать препятствия.
Эффективная работа в роли SDET предполагает весьма разнообразные технические навыки, а особенно умение легко переключаться по обстоятельствам, подобно хорошему полузащитнику в футболе.
Поскольку эта роль предполагает высокую квалификацию (и большую нагрузку), она везде хорошо вознаграждается.
Здесь я делюсь дорожной картой SDET в соответствии с моим собственным опытом. Возможно, эта карта несовершенная и ее нужно дополнить. Итак,
Общие навыки специалиста по тестированию
Тестирование считают одной из лучших точек входа в IT. Основные плюсы этой профессии:
- Возможность попасть в IT без специализированного образования.
- Широкие возможности карьерного роста.
Недостатки в работе QA-инженеров тоже есть. Низкий порог входа влияет как на конкуренцию при трудоустройстве, так и на уровень заработка. Джуну в тестировании сложнее найти первую работу, чем в программировании. А платят им в среднем меньше, чем разработчикам.
SDET (инженер-разработчик программного обеспечения в тестировании) в тестировании — это ИТ-специалист, который может одинаково и эффективно работать как на должностях разработки, так и на должностях тестирования. SDET принимают участие в полном процессе разработки программного обеспечения, а также в процессе тестирования программного обеспечения. Знания профессионалов SDET полностью сосредоточены на тестируемости, надежности и производительности процесса тестирования и разработки программного обеспечения.
Они также могут играть роль соавторов или рецензентов при создании проектов производственного программного обеспечения.
Разница между SDET и Тестером
- SDET знает всю систему от начала до конца, в то время как тестер имеет ограниченные знания о системе.
- SDET участвует на каждом этапе процесса разработки программного обеспечения, включая проектирование, разработку и тестирование, в то время как QA участвует только в жизненном цикле тестирования.
- SDET является высококвалифицированным специалистом, обладающим знаниями в области разработки и тестирования, в то время как тестировщик программного обеспечения занимается только подготовкой и выполнением тестовых случаев.
SDET может участвовать в разработке инструментов автоматизации тестирования и предоставлять их для общего использования, в то время как от тестировщика не ожидается разработки инструментов или фреймворков для автоматизации тестирования. Другие обязанности SDET включают тестирование производительности, автоматическое формирование тестовых данных и другие задачи, не связанные непосредственно с тестированием.
Когда вам нужен СДЭТ?
- Когда требуется высокая автоматизация тестирования.
- Когда необходимо объединить знания о разработке и тестировании.
- Когда требуется увеличить эффективность процесса тестирования.
Сегодня организации ищут профессионала, который сможет принять участие в разработке программного обеспечения. В то же время он также должен заниматься тестированием разработанного программного обеспечения. Вот почему найм SDET помогает им, поскольку они могут работать над разработкой высокопроизводительного кода или разработкой среды тестирования.
Преимущества SDET Professional:
Отрасли, нуждающиеся в SDET
Среди компаний наблюдается тенденция внедрения новых технологий и методологий. Поэтому специалисты по программному обеспечению SDET очень востребованы. Инженер-разработчик программного обеспечения, участвующий в тестировании, в основном необходим в дальнейшем.
Технические и нетехнические навыки
Ниже приведены некоторые важные нетехнические навыки для SDET:
Общительность
SDET должен обладать отличными навыками устного и письменного общения. Тестирование таких материалов, как контрольные примеры, планы, стратегии тестирования, созданные отчеты об ошибках должны быть легко читаемыми и понятными.
Навыки тайм-менеджмента и организации
Работа SDET очень требовательна, особенно во время выпуска кода. Тестировщик программного обеспечения должен эффективно управлять рабочей нагрузкой, иметь высокую продуктивность, навыки тайм-менеджмента.
Отличное отношение
Чтобы стать хорошим инженером-разработчиком программного обеспечения в тестировании, вы должны иметь отличное отношение. Вы должны быть в состоянии улучшать ваши технические навыки работы с меняющимися технологиями. Ваше отношение должно иметь уровень независимости, чтобы вы могли взять на себя ответственность за выполнение поставленной задачи без особого контроля.
Страсть
Чтобы добиться успеха в работе любого ИТ-специалиста, вы должны иметь к нему значительную страсть. SDET должен иметь страсть к тестированию, разработке и проектированию.
Ниже приведены некоторые технические навыки, ожидаемые от SDET:
Каковы роли и обязанности SDET?
Вышеупомянутые ключевые навыки и обязанности SDET. В разных компаниях они могут различаться.
Заработная плата
Структура заработной платы SDET варьируется от компании к компании. Средняя годовая зарплата инженера-разработчика программного обеспечения в тестировании (SDET) составляет 6,92,692 74,291 XNUMX фунта стерлингов в Индии и XNUMX XNUMX доллар США в США.
SDET также получает медицинскую страховку, чаевые и другие льготы.
Типичный рабочий день
Ежедневно вы будете заняты пониманием проектной документации, созданием и выполнением тестовых примеров, составлением отчетов и тестированием ошибок. Вы также внесете свой вклад в команду дизайнеров, предложите команду разработчиков и другие мероприятия по построению команды.
Карьерный рост
Карьерный рост в качестве SDET
Введение
Ваш карьерный рост в качестве SDET в типичной компании уровня CMMI 5 будет выглядеть следующим образом, но будет варьироваться от компании к компании.
Обязанности SDET
- Управление проектами
- Разработка
- Тестирование
Навыки SDET
- Владение языками программирования
- Опыт тестирования
- Навыки управления проектами
Заключение
Профессионал SDET — это смесь разработчика и тестировщика, который имеет опыт управления проектами. Все это в одном наборе навыков делает работу SDET более сложной и требовательной на современном рынке.
Карьерный рост
Роль SDET обычно включает в себя возможность расти по следующим линиям:
- Тестировщик – работа с тестами и багами
- Разработчик – работа с кодом и разработкой приложений
- Руководитель проекта – управление проектами и командой
Кем же такой SDET?
Рассказываем, кто такой тестировщик и чем он занимается, сколько зарабатывает такой специалист, а также какие нужны знания и компетенции, чтобы им стать.
В написании статьи принял участие Ирек Насибуллин, Ростелеком ИТ Automation QA
Опыт SDET
- Умение программировать и тестировать
- Опыт управления проектами
Кем же такой Software Developer?
Профессия Software Developer заключается в разработке, тестировании и поддержке продукта. Основная задача Software Developer — это создание функциональных приложений и приложений для веб-сайтов, компьютеров, смартфонов и других электронных устройств. В зависимости от задачи, используются разные языки программирования, в основном это Python, Java, JavaScript.
Обязанности Software Developer
- Разработка приложений
- Тестирование функционала
- Поддержка продукта
Проекты SDET
Первый проект: Slack Bot
Мой первым проектом был Slack Bot. Получив его, сразу начал искать информацию, поскольку раньше вообще не сталкивался с этим мессенджером. Наверное, это был главный квест, поскольку о Slack не очень много информации. К тому же я только начинал свой путь и не совсем, скажем так, правильно искал. Теперь, кроме Google и официальной документации, советую пользоваться и GitHub.
Технологии
- MongoDB для хранения данных
- Тестирование функционала и интерфейса
Рабочий день
Рабочий день мой начинается с кормления своей черно-белой киски, иначе никто работать не будет.
Утром я просматриваю свои задачи. Прежде всего, стараюсь распределить задачи по важности и срочности. Наш чат-бот жизненно необходим для сотрудников, поэтому если с ним что-то не так — это задача с приоритетом № 1.
Если критически срочных задач нет, то тогда неделю трачу на портал, неделю — на бота. Так я могу сконцентрироваться на одном проекте и отдавать себя ему полностью.
При работе с ботом у меня очень много работы с базой данных MongoDB, поэтому все обновления я стараюсь заливать на сервер после рабочего дня.Конечно, в нашей работе неизбежны проблемы и баги. Помню самый сложный случай, когда после обновления наш бот перестал работать у большинства пользователей.
Больше всего в моей работе идет коммуникаций с QA отделом. Как говорит мой наставник, сам себя никогда нормально не протестуешь. Поэтому на помощь приходит QA Department, ребята максимально внимательно и профессионально тестируют программу, дают фидбек и советы.
Часто задаваемые вопросы
1. Как освоить профессию специалист по тестированию программного обеспечения?
На сегодняшний день для того, чтобы стать тестировщиком не обязательно заканчивать технический ВУЗ. Специальности инженер по тестированию программного обеспечения обучаются на курсах, длительность которых составляет 2-3 месяца. Если выпускник хорошо занимался и уделял внимание отработке материала, то он без проблем находит работу.
2. Кто больше зарабатывает: программист или инженер по тестированию ПО?
На сегодняшний день заработная плата программиста и тестировщика практически выровнялась, это связано с большим спросом именно на тестировщиков. На рынке вакансий, инженер по тестированию программного обеспечения самого начального уровня может зарабатывать в диапазоне 500 – 1000 долларов.
3. До какого карьерного уровня может вырасти специалист по тестированию программного обеспечения?
У тестировщиков хорошая возможность роста. Аналогично с профессией разработчик или программист, инженер по тестированию ПО начинает с уровня Trainee или Junior, уже в процессе работы переходит в Middle, а вершиной является Senior и Lead.
AI/ML/DS
★ Gen AI (генерация изображений, текста, звука и видео) — самая хайповая тема в индустрии
★ Cognitive Computing
★ Компьютерное зрение
★ Нейронные сети
★ Глубокое обучение (DL)
★ Машинное обучение (ML)
★ Обработка естественного языка (NLP)
Упоминание скилла в списке не означает, что SDET должен владеть им в превосходной степени, или владеть всеми без исключения. Он должен разбираться в них, чтобы претендовать на роль хорошего, надежного связующего звена — между бизнесом, продуктом (приложением), разработчиками и клиентами. Примерно так:
SDET как бы балансирует сущности цифрового мира»
Кто такой тестировщик и как им стать с нуля
Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.
Иллюстрация: Катя Павловская для Skillbox Media
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Тестировщики, инженеры по тестированию, или QA-инженеры, — это люди, которые проверяют, как работает программа или приложение. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, защищают продукт от хакеров, проверяют, как приложение работает на разных устройствах и в разных операционных системах.
Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.
Давайте говорить правильно. Иногда тестировщиков и QA-инженеров ошибочно называют «QA-тестировщиками». Такой гибридный термин весьма тавтологичен и неточен, так как понятие QA включает не только поиск ошибок, но и оценку качества продукта в широком смысле. Чтобы не прослыть чужаком среди айтишников, используйте либо слово «тестировщик», либо «QA-инженер» или «QA-специалист», но не «QA-тестировщик».
Честно говоря, тестировщикам действительно приходится тыкать на все кнопочки и ссылки, заполнять все формы и стараться совершить все возможные ошибки, которые могут прийти в голову пользователю. Без этого не обойтись.
Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.
Но не думайте, что тестировщики лишь хаотично бьют по клавишам в надежде найти баг, — это непродуктивно. У них есть собственные методы для определения слабых мест программы и быстрого поиска ошибок.
QA-инженеры придумывают инструкции для тестирования — тест-кейсы. На элементарном уровне это выглядит так: аналитики пишут требования — какие данные должны быть на входе, как они обрабатываются, что должно получиться в результате; тестировщики пишут пошаговые инструкции для проверки программы на соответствие этим требованиям.
Пример простого тест-кейсаИзображение: Skillbox Media
Тестировщик должен скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.
Но ошибки коварны — в лабораторных условиях они могут себя и не проявить, зато пользователь наткнётся на них после релиза. Поэтому QA-инженеры придумывают разные стандартные и нестандартные ситуации, чтобы проверить, как поведёт себя программа. Это творческий процесс, для поиска скрытых багов приходится проявлять смекалку и аналитические способности.
Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?
Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.
Облегчить работу тестировщика помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.
Всех тестировщиков делят на мануальщиков и автотестеров. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически. Но это очень условное деление. Вы не найдёте автоматизатора, который не умел бы тестировать программу вручную. А многие мануальные тестировщики не любят рутину, поэтому осваивают языки программирования и пишут автоматические тесты. Опытные специалисты могут выполнять работу и мануальщика, и автотестера.
При этом все тестировщики используют разные инструменты для автоматизации, управления тестовым процессом и обеспечения качества продукта. Далее перечислим самые популярные инструменты для разных сфер тестирования.
Тестирование мобильных приложений:
Тестирование баз данных:
Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.
На сайте software-testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.
Инфографика: Skillbox Media
Тестировщики нужны во всех мало-мальски серьёзных IT-проектах. Большие компании предпочитают нанимать их в штат, малые работают с фрилансерами. О том, насколько востребованны QA-специалисты, говорят данные с сайтов по поиску работы: в декабре 2023 на HeadHunter было более 4000 вакансий тестировщиков ПО.
Мануальщиков, не понимающих кода, работодатели не любят, даже если они прекрасно составляют тесты. Но и автоматизаторы, не знающие основ тестирования, тоже никому не интересны.
Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:
Скриншот: HeadHunter / Skillbox Media
Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты.
Заработная плата тестировщика в регионах — от 40 до 80 тысяч рублей, а в Москве — 70–150 тысяч.
Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.
Путей для карьерного роста много. Некоторые начинают с тестирования, чтобы потом уйти в разработку, но это не единственный вариант — можно развиваться и внутри профессии.
Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.
Если джуниор хорошо себя зарекомендует, то через 2–3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.
Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: сеньор планирует работы по тестированию, контролирует работу джунов.
Лет через пять можно стать тимлидом — руководителем команды тестировщиков. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи. Так происходит карьерный рост специалиста по вертикали.
Часто тестировщики предпочитают горизонтальное развитие, например в рамках определенной специализации:
Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:
Кроме того, тестировщик должен владеть инструментами ручного и автоматического тестирования. Это могут быть:
Для автоматизации тестов понадобятся системы тестирования веб-приложений, программы для функционального и нагрузочного тестирования.
Ну и обязательно потребуется английский язык — для чтения и заполнения технической документации.
Поиск первой работы и подготовка к собеседованию для тестировщика выглядит примерно так же, как и для любого другого IT-специалиста. За тем лишь исключением, что тестировщику найти её чуть легче, чем, скажем, джависту или программисту на C++. Поэтому QA считается хорошим трамплином для входа в IT.
Вот какие советы по поиску первой работы дают эксперты Skillbox начинающим тестировщикам.
По большому счёту, в самом начале у вас есть два пути. Первый — изучать тестирование самостоятельно по книгам, статьям в интернете и бесплатным курсам. Второй — приобрести платный курс, в котором весь материал упакован и структурирован, ваши работы будет проверять куратор, а на выходе вам помогут с трудоустройством (правда, не везде и не всегда).
И первый, и второй пути могут привести к успеху. Но даже если вы учитесь на платных курсах, не ограничивайтесь одним источником информации: читайте статьи и книги по основам тестирования, смотрите обучающие видео на YouTube. На этом этапе ваша задача — узнать всё о тест-кейсах, типах тестирования, процессе разработки ПО и усвоить базовые термины и понятия.
Изучите основные инструменты тестирования, такие как Selenium WebDriver, Jira, Postman. Это позволит вам лучше понимать, как проходит тестирование на практике, и повысит привлекательность вашего резюме.
У каждого уважающего себя айтишника должно быть подробное и актуальное резюме. О том, как его грамотно составить, мы рассказывали в одной из предыдущих статей.
Зарегистрируйтесь на hh.ru, LinkedIn, Сareerspace и других карьерных платформах. По возможности заполните все поля, которые предлагает сайт, и прикрепите резюме, которое составили на предыдущем шаге.
Некоторые компании периодически набирают к себе начинающих специалистов — обычно это крупные игроки вроде «Яндекса», VK и Tinkoff. Даже если стажировка неоплачиваемая, есть смысл её пройти — на первых порах опыт куда важнее денег.
В QA котируются сертификаты таких организаций, как ISTQB, — они подтверждают ваши знания и практические навыки. Вы также можете пройти курсы в учебных центрах или онлайн-школах.
Изучите типичные вопросы на собеседованиях для тестировщиков. Подготовьте ответы на возможные вопросы о ваших проектах, опыте и применении тестовых методов.
Не зря же вы выполнили все предыдущие пункты? Теперь пора откликаться на вакансии. Обычно новички ищут вакансии с тегами «junior», «intern» или «стажёр». Но если вы чувствуете в себе силы, то можете попробовать перешагнуть начальную ступень, и устроиться на позицию middle — у некоторых начинающих разработчиков и тестировщиков это получается 😏
Научитесь: Профессия Инженер по тестированию
Где работают тестировщики
Тестировщики трудятся в командах, которые занимаются разработкой программного обеспечения. Это скорее средние и крупные компании, которые делают собственный продукт или работают по модели аутсорсинга.
Перспективы профессии
Тестирование — обязательный этап выхода на рынок любого ПО. Без проверки качества невозможно выпустить конкурентоспособный продукт. Сфера IT вряд ли сможет отказаться от тестировщиков в ближайшей перспективе, причем это касается и специалистов по ручному тестированию, так как некоторые ошибки можно найти только вручную.
У тестировщиков как профессионалов есть возможность развиваться вертикально и горизонтально. Горизонтальный рост подразумевает наращивание компетенций. Например, QA-инженер из мануальщика может вырасти в автоматизатора, а из джуна — в сеньора. Вертикальный рост приведет тестировщика к должности тимлида — руководителя команды по тестированию.
Софт-скиллы
★ Problem Solving (умение решать поставленные задачи и преодолевать препятствия)
★ Критическое мышление
★ Аналитическое и стратегическое мышление
★ Адаптивность и гибкость
★ Управление тестированием
★ Командная работа и сотрудничество (коллаборация)
Подробнейший гайд по софт-скиллам тестировщика
Задачи и обязанности тестировщика
Вот примерное описание работы QA-инженера на проекте.
Анализ и планирование
Тестировщика подключают к работе еще на стадии планирования приложения. Он анализирует требования и следит за тем, чтобы документация была непротиворечивой, а пожелания заказчика корректно описаны.
Разработка стратегии
QA-инженер выбирает подходящие методы: обычно часть функционала проверяют автотестами, а часть — в ручном режиме. На небольших проектах можно обойтись только мануальным тестированием. На крупных почти всегда используют оба эти направления. Также тестировщик должен оценить риски, предусмотреть все этапы сдачи работы и выделить на них ресурсы.
Создание документации
Специалист пишет автотесты или создает чек-листы и планы проверки. То есть описывает пошагово, что и как будет проверять. У документации есть стандартный вид и ее всегда сохраняют даже после сдачи проекта.
Тестирование
На основе документации QA-инженер проверяет приложение по шагам и создает отчеты о найденных ошибках. Их называют баг-репортами. Найденные дефекты передают разработчикам для исправления.
Поддержка
Найти все ошибки в ПО невозможно. Часть из них все равно доживет до стадии запуска продукта. А сообщать о дефектах будут уже пользователи. На стадии поддержки тестировщик должен своевременно реагировать на присланные ими баги: воспроизводить эти ошибки и передавать их на исправление коллегам.
Виды тестирования
Тестирование ПО делят на два основных направления: ручное и автоматизированное. Специалисты по ручному тестированию проверяют приложения вручную. Например, если нужно протестировать интернет-магазин, регистрируются на сайте, наполняют корзину товарами, делают заказ и оценивают, правильно ли сайт реагирует на их действия.
А специалисты по автоматизированному тестированию пишут программы-скрипты, имитирующие действия пользователей. Такое ПО называют автотестами. Скрипты могут проверить, как поведет себя сайт, если, например, 1000 человек одновременно добавят в корзину по 1000 товаров.
Ручное тестирование — самый простой способ оценки качества приложения. Однако тестировать приложение вручную — «дорогая» операция, так как скорость и точность проверок ограничена возможностями тестировщиков.
Автоматизированное тестирование подразумевает проверку приложений с помощью программного обеспечения. Это не значит, что для автоматических проверок не нужны тестировщики, ведь кто-то должен писать код самих автотестов. Но так как писать код долго и дорого, зачастую ими покрывают основную функциональность сайта, а новые фичи проверяют вручную.
Кроме автоматического и ручного тестирования можно выделить и много других видов.
Дополнительно
★ Умение плодотворно сотрудничать с продакт-менеджером, бизнесом и разработчиками
★ Экспертность в предметной области
★ Умение делать презентации (для бизнеса, клиентов)
★ Знание Agile и его церемоний
★ Планирование тестирования
Личные советы
Трудно развиваться, читая книги или сочиняя код через силу. Поэтому дело должно доставлять удовольствие.
Я бы советовал перед тем, как изучать какой-либо язык программирования, просмотреть, что можно на этом же языке делать. Если человеку интересно, он всегда будет искать какую-то новую информацию и советы. Ну и конечно писать код, без этого по этому делу никак:)
Больше информации о разных IT-специальностях здесь.
Новий випуск «З фронту в IT» про айтівців, які повертаються до цивільного життя після ЗСУ.
Сколько зарабатывают тестировщики
В декабре 2023 года на hh.ru опубликовано 4542 вакансии тестировщика и 3613 вакансии QA-инженера.
По данным «Хабр.Карьеры», в первом полугодии 2023 года медианная зарплата тестировщика в России — 125 000 рублей. За год она выросла на 17%.
А на этом графике зарплаты тестировщиков по специальностям: максимальные, минимальные и средние.
Исследование SENSE Group приводит такие данные по заплате тестировщиков в зависимости от их квалификации.
Языки программирования и Middleware
★ Язык(и) программирования — SDET должен очень хорошо владеть языками программирования и т.н. DSA (структуры данных + алгоритмы). В первую очередь объектно-ориентированными языками, такими как Java, Python, JS.
Большой гайд по языкам программирования тестировщика
Большой гайд по структурам данных для тестировщика
★ Управление тестовыми данными — SDET должен владеть TMS-инструментами (Test Data Management) и технологиями управления данными. А также иметь понятие о базах данных и SQL/NoSQL. Должен знать разницу, например, между RDBMS и NoSQL и подобного уровня вопросы.
Большой гайд по базам данных для QA
★ Навыки отладки — отладка, или в просторечии дебаг, или просто проверка кода, иногда может быть одной из рабочих задач SDET, поскольку она позволяет «чинить» не только код разработчика с багами, но и код автотестов других тестировщиков. Умение читать логи, владение соответствующими инструментами, Kibana и т. д. Также требуется знание инструментов мониторинга и наблюдения за состоянием системы («обсервабилити»), в первую очередь это Grafana.
★ Контроль версий, или системы управления версиями, или Source Control, или управление исходным кодом. Системы для обслуживания кода и отслеживания изменений. Используются и для других типов файлов — документы, рисунки и т. д. Инструменты, разумеется, GitHub, BitBucket и т. Д.
Что нужно знать, чтобы освоить профессию
В этом разделе поговорим о необходимых знаниях по теории и практике тестирования. Можно воспринимать это как набросок программы обучения или минимум, необходимый для трудоустройства.
Тест-дизайн и тест-анализ
Основной результат работы QA-инженера — написание тестов. Первое, что должен узнать профессионал, — это правила, по которым нужно искать и анализировать требования к приложениям, а также ставить цели проверки. За это отвечает тест-анализ.
А тест-дизайн — конкретные методики, по которым пишут тесты. QA-инженер должен понимать, что такое классы эквивалентности, граничные значения и попарное тестирование.
Это теория, на основе которой профессионал выстраивает практику — продумывает стратегию проверки приложения. Как мы уже говорили выше, есть много видов тестирования.
QA-инженер должен знать обо всех существующих методах, уметь их применять и выбирать для решения конкретных задач на проекте.
DevTools в тестировании веб-приложений
В браузерах есть инструменты разработчика или DevTools. В Chrome их можно вызвать горячими клавишами — Ctrl+Shift+I или клавишей F12 в любом браузере. Их используют для отладки кода в режиме реального времени.
DevTools — незаменимые помощники тестировщика. С их помощью можно проверить корректную загрузку отдельных частей страницы, правильность написания пути до элементов в JavaScript и протестировать код в браузере.
QA-инженер должен уметь пользоваться DevTools и хорошо ориентироваться в панели.
Тестирование API и Postman
Фронтенд — интерфейс приложения — можно проверить пошагово, имитируя действия обычных пользователей. Но с бэкендом — внутренней логикой сайта — дела обстоят сложнее.
Зачастую бэкенд не привязывают сразу к фронтенду, а своего графического интерфейса у него нет. Зато есть API — набор правил, по которым программы взаимодействуют друг с другом напрямую.
Тестировщики проверяют его работу используя специальный инструмент — Postman. Он позволяет писать запросы к бэкенду напрямую через браузер. QA-инженер должен научиться им пользоваться.
SQL и базы данных
Сайты хранят информацию в базах данных. Они бывают реляционными и нереляционными. Первые — наиболее распространены. К ним относят, например, MySQL и PostgreSQL.
При разработке приложения тестировщики должны проверить, насколько корректно бэкенд сайта получает и отдает информацию из базы данных. Для этого используют специальный язык запросов — SQL.
QA-инженеру нужно выучить его основы, чтобы уметь проверять работу баз данных.
Баги и документация
Тестировщик пишет сценарии проверки ПО — тесты и чек-листы. Их нужно оформлять по правилам, чтобы другие специалисты могли в любой момент обратиться к этим документам.
В конце работы QA-инженер создает баг-репорты — отчеты о найденных ошибках. Их хранят в специальном трекере, чтобы они были доступны для разработчиков.
Тестирование мобильных приложений
В проверке такого ПО есть своя специфика, связанная с более жесткими требованиями к интерфейсу. Мобильное приложение должно одинаково выглядеть на разных устройствах.
Также есть специфика, связанная с платформами. Например, необходимо проверять, как приложение поведет себя, если смартфон теряет сеть или если пользователь примет входящий звонок во время активной работы.
QA-инженер должен уметь тестировать мобильные приложения на симуляторах, эмуляторах и с использованием реальных устройств.
Автоматизированное тестирование
Есть вакансии исключительно мануальных тестировщиков, которые не пишут автотесты. Но даже таким специалистам нужно понимать, по каким принципам создают автотесты и как их правильно запускать.
А автоматизаторам нужно научиться писать скрипты — специальные программы, имитирующие действия пользователей.
Что должен уметь молодой специалист по тестированию программного обеспечения
Принято считать, что инженер по тестированию программного обеспечения одна из самых легких специальностей в ИТ. Отчасти это так, а если точнее, то освоить данную специальность можно всего за три месяца. Для этого достаточно закончить курсы, получить базовые навыки, а наличие диплома будет дополнительным плюсом при приеме на работу.
Для того чтобы начать работать инженер по тестированию ПО должен знать:
Дополнительным плюсом будет если специалист по тестированию программного обеспечения обладает непрофессиональными положительными качествами, такими как творческое и развитое критическое мышление, усидчивость и внимательность, коммуникабельность и внутренняя организация.
Дополнительные хард-скиллы
★ Облака — AWS, GCP. Azure, гибридные
★ Queues — Владение Kafka, RabbitMQ, Solace и др.
★ LB/Proxy — Nginx, F5, Kong и другие прокси-серверы и балансировщики нагрузки
QAOPs — TestOps — SDETOps
★ Контейнеры — виртуализируют ОС и помогают развернуть приложение в любом удобном месте, например в облаке или в локальном тестовом окружении. Контейнеры помогают решить проблему чистоты окружения деплоя и упрощают автоматизацию QA. Распространенными контейнерами являются Docker (здесь быстрый гайд) и Kubernetes.
Цикл QAOps — теперь Operation (Ops) входит в задачи SDET
Где учиться тестированию
Объем навыков, необходимых современному претенденту на должность QA-инженера, серьезно вырос. Сейчас на первый план выходят практические знания.
Речь идет, прежде всего, об умении пользоваться инструментами для тестирования. А автоматизаторам необходимо научиться писать тесты.
Профильного высшего образования для тестировщиков пока нет. Желающие работать в этой профессии могут самостоятельно освоить навыки или пройти курсы.
Первый вариант подойдет тем, кто обладает высоким уровнем дисциплины. Но им желательно найти ментора, который будет направлять, проверять работы и указывать на ошибки.
В Хекслете есть профессия «Инженер по тестированию». Вы можете за четыре месяца с нуля освоить необходимые навыки. Студентам профессии «Инженер по тестированию» будет доступен Rарьерный трек — это наш сервис для тех, кто ищет первую работу в IT. Мы расскажем, как правильно составлять резюме и писать сопроводительные письма. А еще подберем вакансии и стажировки в партнерских компаниях и подготовим к собеседованиям.
Кроме учебных проектов, студенты профессии «Инженер по тестированию» смогут участвовать в opensource-проектах Хекслета. Это позволит не только закрепить на практике знания, полученные во время учебы, но и положить к себе в портфолио опыт реального тестирования и работы в настоящем продукте.
Кто такой инженер по тестированию ПО
Инженер по тестированию программного обеспечения – это специалист, в задачи которого входит комплекс мер по соблюдению качества разрабатываемого продукта. Тестировщики вовлечены в процесс создания приложения на всех этапах. Ведущие компании уже давно поняли, что чем чаще производить контрольное тестирования работы отдельных компонентов продукта, тем выше будет качество, дешевле и проще исправлять ошибки, допущенные программистом.
Какие функции выполняет инженер по тестированию программного обеспечения:
Как видим, на первый взгляд здесь нет ничего сложного. Если подходить более детально, то уровень сложности задач зависит от профессионального уровня инженера по тестированию ПО и его опыта работы в компании с конкретным продуктом.
Тестировщик — это специалист, который тестирует приложения, отлаживает код и помогает улучшать юзабилити программ. Иначе тестировщиков называют QA-инженерами. Аббревиатура произошла от английского quality assurance — обеспечение качества. Это часть разработки, которая управляет качеством продукта.
В понятие QA входит еще одно направление деятельности: QC, quality control или контроль качества. Инженеры QC контролируют продукт на этапе разработки и поддержки.
Тестирование программного обеспечения — один из инструментов контроля качества. То есть тестировщик проверяет приложение в рамках мероприятий по контролю качества (QC), которые входят в комплекс работ по обеспечению качества (QA).
В широком смысле тестировщики участвуют в создании полезного для пользователей программного обеспечения. Если конкретизировать, тестировщики контролируют качество приложений, над которыми работает организация.
Что нужно знать, чтобы стать Software Developer
Для своей профессии я считаю важными софт скилы: уметь высказывать свое мнение, не бояться задавать вопросы и стараться не терять хорошее настроение По себе замечаю: когда начинаю злиться, это никак не помогает быстрее решить проблему, а вот если пытаться отвлечься минут на 15, сесть и спокойно подумать, то есть шанс, что решение найдется. Кстати, у меня все крутые идеи приходят ночью во время сна, поэтому всем советую спать вместе с блокнотиком:)