Тестировщик кто это – Тестировщик — Википедия

Содержание

Тестировщик — Википедия

Тестиро́вщик — специалист, принимающий участие в тестировании компонента или системы.[1] В его обязанность входит поиск вероятных ошибок и сбоев в функционировании объекта тестирования (продукта, программы, и т.д.). Тестировщик моделирует различные ситуации, которые могут возникнуть в процессе использования предмета тестирования, чтобы разработчики смогли исправить обнаруженные ошибки.

Если взглянуть на IT-проект как на дорожное приключение, то большинство проектов скорее похожи на вождение внедорожника по горам, ночью. Таким проектам необходим свет фар. Именно тестировщик освещает путь перед программистами, менеджерами, может быть они увидят по карте, мимо чего они проезжают и как близко находятся к краю скалы.Сем Канер, Lessons Learned in Software Testing

Конкретная цель группы тестирования меняется от компании к компании, но за деталями есть общий фактор. Тестируют для поиска информации. Критические решения по проекту или продукту принимают на основе этой информации.

[2]

По субъекту тестирования[править | править код]

Альфа-тестировщик — сотрудник компании, который непрофессионально проводит тестирование программы, находящейся на стадии разработки («Альфа-версия», как правило не полнофункциональная): тестировщик, программист, бухгалтер и т.п.[3]

Бета-тестировщик — пользователь программы, взявший на себя обязательства по тестированию программы («Бета-версия»), в том числе опубликованных официально версий и так называемых «релиз-кандидатов» программы.

Ряд пользователей добровольно участвует в бета-тестировании программного обеспечения.

По деятельности[править | править код]

Тест-аналитик

выполняет анализ продукта, разбивает его на составные части, расставляет приоритеты тестирования и составляет логическую карту приложения.

Тест-дизайнер на основании информации, полученной от аналитика, приступает к разработке тестов.

Тестировщик проводит непосредственно тестирование по уже готовым тест-кейсам.[4]

В некоторых компаниях каждую из ролей выполняют отдельные люди. А в других компаниях тестировщик совмещает в себе все три роли.

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

Кроме того, тестировщик выступает одновременно и как пользователь, и как эксперт, а потому должен иметь определенный склад мышления: уметь воспроизводить поведение пользователя продукта и анализировать поведение системы, входящие параметры и полученные результаты с точки зрения инженера.

Некоторые утверждают[источник не указан 3060 дней], что специфика профессии заключается в видимом однообразии и монотонности трудового процесса; по мнению других[источник не указан 3060 дней], тестирование является творческой исследовательской работой (в противовес стандартизированной разработке).

[5]

Одной из особенностей профессии является возможность удаленной работы, причем расстояние часто не имеет значения (тестировщик может находиться в другом городе или стране по отношению к разработчику и заказчику).

Основными требованиями к соискателю, как правило, являются:

При этом требования к уровню необходимых навыков и специализации варьируются в зависимости от тестируемого программного обеспечения.

Неофициально отмечается 9 сентября в память о шуточном случае нахождения ошибки.

Считается, что у тестировщиков есть особая карма: стоит появиться тестировщику, как сразу вся техника ломается. На самом деле, это скорее следствие профессиональной внимательности к окружающей действительности.

[6]

Существует множество анекдотов, в которых рассказывается о забавных случаях и поведении тестировщиков в обычной жизни. Один из самых известных.

Заходит однажды тестировщик в бар…

Забегает в бар. Пролезает в бар. Танцуя, проникает в бар. Крадется в бар. Врывается в бар. Прыгает в бар

и заказывает: кружку пива, 2 кружки пива, 0 кружек пива, 999999999 кружек пива, ящерицу в стакане, −1 кружку пива,

qwertyuip кружек пива.
  • Савин Роман, Teстирование дот ком или пособие по жестокому обращению с багами в интернет-стартапах — М : издательство «Дело», 2007
  • Cem Kaner, James Bach and Bret Pettichord (2002). Lessons Learned in Software Testing: A Context-Driven Approach. John Wiley & Sons. p. 314. ISBN 9-780-47108112-8.

ru.wikipedia.org

Чем занимается инженер по тестированию и как начать работать в этой области

Инженер по тестированию контролирует качество IT-продукта. Он находит ошибки, записывает их в отчет и передает разработчикам. На старте нужны минимальные технические навыки, поэтому такая профессия считается одной из точек входа в сферу IT. Фёдор Зволинский, руководитель службы тестирования Яндекс.Браузера, поделился особенностями работы инженера по тестированию и рассказал, какие качества помогут стать экспертом в этой области.

Работа инженера по тестированию, или, как мы говорим, тестировщика, экономит ресурсы компании и команды разработки. Продукт тестируют разными способами на каждом этапе. Чем раньше найдены ошибки, тем проще и дешевле для компании будет их исправить.

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

Задачи тестировщика

Инженер по тестированию отвечает за аудит качества продукта. Есть много направлений проверки. Например, проверка на соответствие функциональным или нагрузочным требованиям. Сохраняется ли история заказов в приложении вызова такси — это проверка функции продукта. Выдержит ли сайт, если 100 покупателей одновременно оформят покупку, — это тест на устойчивость к нагрузке.

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

Тестировщик составляет тестовую модель. Он изучает структуру продукта и продумывает порядок проверки всех элементов, функций и состояний. Например, на начальных этапах нужно описать всё, что пользователь видит на разных страницах и экранах: как ведут себя фотографии товаров при наведении, есть ли чат поддержки и как его вызвать. Когда продукт меняется или усложняется, тестировщик вносит изменения в тестовую модель.

Еще одна задача тестировщика — автоматизация. Объем тестирования постоянно растет, а инструменты автоматической проверки для разных направлений тестирования помогают экономить время. Тестировщик постоянно работает над тем, чтобы контроль качества продукта становился еще надежнее и быстрее.

Тестировщик всегда может поставить себя на место клиента. Он понимает, зачем создается продукт и в чём его польза. Если главные функции работают неправильно или ими неудобно пользоваться, он способен объяснить проблему и разработчику, и менеджеру. Технические знания и пользовательский кругозор помогают всё точно сформулировать и в некоторых случаях предложить решение.

Как работает тестировщик

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

Первый этап. Сбор информации

Сначала нужно изучить задачу: какие требования и условия были у нового продукта, как это работает на практике и всех ли в команде устраивает результат. Всё это можно узнать у разработчиков и менеджера продукта.

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

Второй этап. Анализ

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

Тестировщик разбивает все глобальные процессы в продукте на самые маленькие блоки. Чтобы проверить, как работает приложение, он будет отдельно тестировать каждую страницу, кнопку и действие.

«Если вы тестируете показ всплывающего окна, то такими маленькими блоками могут стать отрисовка всплывающего окна и условия показа. Отдельно проверяем, как окно будет отображаться для пользователя, и оцениваем логику показа без тестирования пользовательского интерфейса. При таком тщательном подходе в тестовой модели будет меньше ошибок, а проверка пройдет быстрее», — говорит Фёдор Зволинский.

Цель этого этапа — понять, что нужно тестировать. Качественный анализ помогает точно оценить время, которое понадобится для проверки.

Третий этап. Разработка тестовых сценариев

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

Тестировщик составляет тест-кейсы — описание всех условий и шагов тестирования. Он ссылается на требования к продукту, указывает нужные настройки для тестовой среды, перечисляет все действия. Для каждого пункта тест-кейса тестировщик описывает результаты: ожидаемый и фактический.

Чтобы получить полный набор тестов без дублирования, специалисты пользуются техниками тест-дизайна. Это стандартные методики проверки для разных сценариев и отдельных функций. Знание основных техник помогает сэкономить время.

«Простой пример: есть функция, которая считает суммарную стоимость купленных билетов в кино. При этом стоимость одного билета известна, а купить можно не более восьми билетов за раз. В таком случае мы можем воспользоваться двумя техниками, которые были придуманы до нас: классами эквивалентности и граничными значениями. Сначала нам нужно проверить, что функция действительно всё правильно считает. Возьмём значение из середины, допустим, 5. Если с результатом всё будет в порядке, следует проверить границы — 1 и 8, а также точки снаружи границ — 0 и 9. Таким образом мы создали всего пять тестов. А если бы мы перебирали все значения от 0 до 9, нам потребовалось бы десять проверок. Экономия времени и усилий в два раза», — объясняет Фёдор Зволинский.

Цель этого этапа — решить, как проводить тесты, выбрать инструменты и методику.

Четвертый этап. Тестирование

Следующий шаг — автоматическое или ручное тестирование. Специалист проходит все этапы, которые описаны в тест-кейсе и проверяет работу продукта. Например, если нужно найти ошибки в верстке, тестировщик использует валидаторы HTML/CSS. Достаточно указать путь к приложению или сайту, и сервис покажет все обнаруженные ошибки.

Проверить продукт на совместимость с браузерами и операционными системами помогают эмуляторы. Это программы, которые воспроизводят возможности разных устройств — ПК, планшета или смартфона — с разными операционными системами. Эмуляторы удобны, когда продукт нужно протестировать одновременно на Android и iOS: не нужно ничего загружать на устройство, все действия выполняются на виртуальном аналоге.

Поиск уязвимостей или перформанс-тесты — для каждого направления тестирования нужен свой инструмент. Существуют специальные программы, которые решают отдельные задачи тестирования автоматически.

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

Пятый этап. Подготовка отчета

Ошибки нужно описать и показать. Кроме текста тестировщик готовит скриншоты или видео, где можно увидеть ошибку. Всё, что удалось обнаружить, нужно зафиксировать в специальных программах. Для этого используют Bugzilla, Redmine, Mantis, HP ALM. Если процессы в компании еще не настроены, работают с Word и Excel.

Отчет с описанием всех проблем и ошибок тестировщик передает разработчикам и менеджерам. Иногда нужно уточнить, является ли обнаруженный эффект ошибкой или команда изначально заложила его в идею продукта.

Описывать ошибки нужно так, чтобы разработчик или менеджер могли повторить все действия, которые к ней приводят, и увидеть проблему. Подробное описание помогает и на следующем этапе, когда нужно выяснить, действительно ли все ошибки исправлены.

Шестой этап. Проверка исправленного продукта

Нужно свериться с отчетом об ошибках и убедиться, что все проблемы устранены. Если всё работает правильно, тестировщик отмечает, что все обнаруженные ошибки исправлены. Продукт готов к запуску.

Что нужно для старта

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

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

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

Станьте тестировщиком!

academy.yandex.ru

Что должен делать тестировщик при тестировании ПО

Много слышали о тестировании и примеряете на себя возможность работы в этой области? Но пока не совсем понимаете, с чем придется работать?

В этой статье мы расскажем вам, кто же такой специалист по тестированию, что делает тестировщик программного обеспечения и с какими рабочими задачами он сталкивается.

Чем занимается специалист по тестированию?

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


И такие продукты обязательно должны проходить проверку на качество перед тем, как станут доступными конечному пользователю.

Именно от тестировщика зависит качество продукта и, как результат, успех проекта на рынке. Кто станет пользоваться приложением, если оно не в состоянии выполнить даже базовые функции?

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

Кроме поиска ошибок, тестировщик на практике проверяет работоспособность всей функциональности программы. Нужно убедиться в том, что простейшие действия пользователей не вызывают сбоев.

К основным обязанностям тестировщика ПО относятся:

  •         Написание тест-кейсов и чек-листов.

Они являются основой профессиональной документации тестировщиков. Тест-кейсы содержат последовательность шагов для проверки работы всей системы, а чек-листы описывают, что нужно протестировать.

  •         Выполнение нужного набора тестов.

В зависимости от поставленных задач специалист по тестированию решает, какие виды тестов применить.

  •         Документирование и анализ найденных дефектов.

Когда найдена ошибка, ее нужно описать. Делается это для того, чтобы разработчик ПО смог быстро понять, в какой части кода программы кроется ошибка. Сейчас тестировщики вносят все ошибки в баг-трекинговые системы, например, JIRA или TestRail. Для более подробного описания ошибок можно приложить скриншоты экранов или видео.

  •         Контроль за устранением ошибок разработчиками.

Еще один шаг – контроль за устранением всех найденных ошибок. В баг-трекинговой системе каждой ошибке присваивается градация серьезности (от тривиальной до блокирующей) и статус в соответствии с этапом жизненного цикла бага (от нового до закрытого).

В процессе контроля за устранением дефектов тестировщик следит за тем, чтобы разработчик ПО своевременно устранял все ошибки и делал соответствующие отметки в системе.

  •         Разработка автоматических тестов.

Для ускорения тестирования могут применяться не ручные, а автоматизированные тесты. В таких случаях тестировщик пишет код проверки и запускает его. А программа автоматически выполняет тысячи нужных проверок, при этом сохраняя время тестировщику.

Однако начинающему специалисту не придется выполнять такие задачи, они входят в зону ответственности автоматизаторов. Тем не менее, для более быстрого развития карьеры вы можете приступить к изучению основ определенного языка программирования.   

Что нужно, чтобы стать тестировщиком?

Несмотря на относительную молодость профессии тестировщика (не более 20 лет), сегодня сформирован набор требований, которые нужны для старта.

Во-первых, чтобы успешно справляться с рабочими задачами, тестировщик должен иметь прочные теоретические и практические навыки.

К тому же, необходимо обладать рядом специфических качеств. Например, природная любознательность, внимание к деталям, усидчивость, недоверчивость и желание постоянно перепроверять себя.

Еще один важный момент – стремление вносить вклад в развитие новых технологий. Например, сейчас на рынке ИТ акцент идет в сторону автоматизации процессов. И тестировщики осваивают новые для себя аспекты, например, языки программирования.

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

Какие виды тестирования ПО выделяют?

Чтобы понять, чем бы вы хотели заниматься, для начала нужно ознакомиться с тем, какие виды тестирования существуют.

Все виды тестирования разделяют на две группы:

  •         Функциональные (осуществляется проверка того, насколько хорошо система выполняет свои функции, если вообще выполняет).
  •         Нефункциональные (тестируется в целом готовность системы к работе, осуществляется проверка всего, что может касаться пользовательского опыта, например, нагрузочное тестирование, тестирование безопасности).

Помимо видов, в тестировании выделяют еще и уровни, которые показывают над чем ведется работа: над системой в целом или только над одним определенным компонентом.

Всего существуют четыре таких уровня: модульное тестирование, интеграционное, системное и приемочное.

Пример кейса по тестированию для новичков

Чтобы на деле увидеть, что делает тестировщик, давайте рассмотрим небольшую практическую задачу.

Необходимо протестировать форму регистрации в социальной сети LinkedIn.

Первое, что нужно сделать, – открыть сайт. Форма для регистрации выглядит следующим образом:

Далее необходимо провести набор тестов для того, чтобы понять, работает ли форма корректно.

Во-первых, нужно проверить обязательность заполнения всех полей. Для этого нужно, ничего не заполняя, нажать кнопку «Присоединиться». Форма сразу выдает ошибку и выделяет красным те поля, которые необходимо заполнить. В нашем случае – все:

Далее мы проверим, среагирует ли форма на небезопасный пароль. Для этого, заполнив наши данные во всех полях, вводим пароль до 6 символов.

Сразу появилось предупреждение о том, что пароль слишком короткий.

Далее посмотрим, как приложение поведет себя, если мы будем вводить в поля нехарактерные символы. Например, введем в поля «Имя» и «Фамилия» символы, отличные от букв.

Форма требует указать настоящие данные. Однако это условие относится лишь к имени, о фамилии в тексте формы нет ни слова.

Сразу проверим форму на некорректный ввод только фамилии. В результате появляется сообщение об ошибке. Таким образом мы видим, что по отдельности форма реагирует на некорректный ввод имени или фамилии. А вот при неверном заполнении обоих полей ошибка относится только к имени.

Почему так происходит? Возможно, проблема кроется в том, что форма проверяет лишь первое поле в коде. Или же можно говорить о не совсем верной локализации. Ведь приложение изначально написано для англоязычных пользователей. На английском языке имя и фамилию можно передать как name и last name. А на русском языке могли оставить лишь перевод имени.

Такой дефект можно охарактеризовать как малозначимый (minor), и относится он к пользовательскому интерфейсу.

Проверки на ввод некорректных символов нужно провести для всех полей.

Далее посмотрим, как поведет себя форма при вводе корректного электронного адреса. Например:

Форма приняла этот адрес и инициировала проверку безопасности. Адрес был введен корректно, структура соблюдена, присутствует символ «@».

Таким образом, мы протестировали форму регистрации для социальной сети и параллельно нашли малозначимый дефект в пользовательском интерфейсе. Напомним, что при некорректном вводе данных в поля «Имя» и «Фамилия» форма просит корректно заполнить лишь имя. Ошибка некритичная, но пользователь может не сразу заметить, что исправить нужно оба поля, а не одно.

Итог

Хотите научиться безошибочно распознавать дефекты, правильно их документировать и научиться выполнять основные задачи тестировщика? Курс «Основы тестирования ПО» от QA Academy поможет вам погрузиться в профессию, попробовать свои силы на практике, а главное – сделать первый шаг по карьерной лестнице.

Ведь хороший специалист по тестированию ПО всегда будет востребован как дома, так и за границей. Дерзайте!

qa-academy.by

чем занимается QA-инженер и как строит карьеру

профессии IT-сферы очень популярны среди абитуриентов, о чём говорит обилие обучающих программ в вузах Беларуси и конкурентные проходные баллы на специальности. Тем не менее, дипломов с квалификацией «тестировщик» в университетах не выдают. Как попасть в эту сферу? Какие профессиональные качества важны для тестировщика? Что нужно учитывать при трудоустройстве? Адукар расспросил об этом QA-директора iTechArt Оксану Скиндер.

Как Вы пришли в профессию QA-инженера? Кем мечтали стать в детстве, в школьные годы?

По образованию я преподаватель английского языка, окончила БГПУ имени Максима Танка и даже не думала о профессии тестировщика. Сразу после учёбы у меня родился сын, и во время декретного отпуска ко мне обратились знакомые, которые предложили вести блог и размещать сообщения на сайте для молодых мам. И по мере пользования сайтом попросили отмечать, как можно его улучшить. Я с удовольствием приняла их предложение и со временем начала погружаться в тему: проверять, размещать картинки, видеоматериалы, писать очень много комментариев, вставлять код в эти комментарии и ссылки.

Сегодня Оксана является тренером обучения QA в iTechArt от pre-Junior до QA Manager. Как опытный специалист, она исследует разнообразные методы и техники в мануальном тестировании, чтобы сотрудники могли эффективно их использовать на практике

Процесс настолько меня захватил, что я продолжила интересоваться этой профессией. В то время моя знакомая работала тестировщиком. Она советовала мне книги, рассказывала о том, что такое тест-кейсы, как оформляются баги и что это такое тестирование. И, когда моему сыну было 8 месяцев, я устроилась в компанию тестировщиком. С этого и началась моя карьера.

Чем занимается тестировщик, какие задачи в компании решает? Опишите, пожалуйста, свой рабочий день.

Обычно у тестировщика гибкий график, как, в принципе, у всех специалистов IT-сферы. Есть, конечно, компании, которые предъявляют более строгие требования к старту рабочего дня. Конкретно нашим сотрудникам нужно прийти на работу до определённого времени, но по договорённости с руководством это время можно откладывать и переносить.

Плюс мы очень много работаем со студентами. Они учатся и, соответственно, им нужен плавающий график, поэтому стараемся идти им навстречу и предлагаем опцию — неполный рабочий день.

QA-инженер работает с мобильными и десктопными приложениями. Он проверяет, насколько корректно функционирует приложение в соответствии с требованиями заказчика или руководствуясь здравой логикой, потому что не всё бывает описано в требованиях. Плюс тестировщики следят за тем, насколько хорошо выглядит сайт на разных платформах.

Оксана Скиндер, QA-директор iTechArt

По какому сценарию развивается карьера QA-инженера?

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

Одно из направлений iTechArt — работа со студентами. Студенты 2−4 курсов IT-специальностей и начинающие специалисты после серьёзного отбора могут попасть на бесплатное обучение в компанию, на курсы Students Lab. Это один из вариантов начать карьеру в iTechArt

У нас в компании предусмотрено профессиональное развитие сотрудника — Performance Review. Мы ставим цели, с помощью которых начинающий тестировщик постепенно набирается опыта. По мере роста он может стать ключевым специалистом либо руководителем команды.

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

Компания iTechArt динамично развивается. Центры разработки находятся в Беларуси, а головной офис и отдел развития бизнеса — в Нью-Йорке и Атланте. По данным за 2018 год, iTechArt вошла в список пяти тысяч быстрорастущих компаний США — Inc5000

Насколько сейчас востребованы QA-инженеры в Беларуси, за рубежом?

Я посмотрела на dev.by и могу сказать, что вакансий тестировщика очень много. Практически каждая компания ищет того или иного специалиста в тестировании: либо в автоматизированном, либо в ручном. Поэтому можно утверждать, что у нас в Беларуси эта профессия точно востребована. Но я думаю, что хорошие QA-специалисты нужны всегда и везде (Европа, США): просто требования немного отличаются.

Расскажите, как Вы устроились на работу в iTechArt? Чем Вам нравится работа в этой компании?

С 2012 года я присоединилась к компании iTechArt на позицию менеджера департамента. В 2015 году, когда дивизион расширился, и появилась новая должность, стала QA-директором.

Одним из главных составляющих своего карьерного успеха считаю то, что я действительно люблю свою работу. Вот уже на протяжении 13 лет получаю огромное удовольствие от того, чем занимаюсь. Мне нравится общаться с нашими заказчиками и помогать им делать программные продукты лучше. Мне интересно растить своих ребят: у нас большой дивизион, свыше 250 человек. И, конечно, очень приятно делиться знаниями и наблюдать, как сотрудники осваивают новые технологии, решают задачи, радуются своим успехам и позитивными отзывами от клиентов.

Офис в БЦ «Титул», куда заглянул Адукар, — это один из трёх офисов iTechArt в Минске. Филиалы компании также есть в пяти городах Беларуси: Бресте, Витебске, Гомеле, Гродно, Могилёве

Какие личные и профессиональные качества нужны QA-инженеру, чтобы он успешно справлялся со своими задачами?

Знаете, профессиональные качества во многом зависят от того, чем занимается тестировщик. Я условно разделяю специалистов на четыре категории. К первой относятся ребята, которые занимаются ручным (мануальным) тестированием. Ко второй — те, кто работает в автоматизации тестирования и пишет код для проверки других программ. Специалисты третьей категории тестируют систему на устойчивость под разной нагрузкой (нагрузочное тестирование). И четвёртая категория — это тестирование безопасности.

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

В этой уютной лаунж-зоне сотрудники iTechArt могут сделать перерыв и переключиться. А те, кто любит отдыхать активно, могут поиграть в настольный теннис, кикер, Play Station или повисеть на турнике

Так как автоматизаторы работают над определённым решением, им нужно сделать продукт гибким и легко поддерживаемым, чтобы он не ломался при малейших изменениях. Поэтому у этих специалистов должно быть развито образное мышление, как у разработчиков. Если мы говорим про нагрузку, то очень важны технические знания. Такому тестировщику нужно во многом разбираться, искать узкие места. Понимать, что нужно сделать, чтобы эти вопросы закрыть и приложение хорошо функционировало.

Тестировщики безопасности должны быть техничными и очень смекалистыми ребятами. Им необходимо отыскивать лазейки, через которые можно взломать доступ или систему. Чем больше они таких уязвимостей найдут, тем больше таких лазеек можно будет закрыть, чтобы они были недоступны хакерам.

Насколько важно в Вашей профессии самообразование?

Самообразование играет огромную роль. То, что я изучала 13 лет назад, конечно, помогает. Но IT-сфера не стоит на месте, в то время, например, мобильные приложения не были так широко известны. Сейчас в нашей компании около половины всех приложений в тестировании — мобильные. Соответственно, это отдельная тема: особые виды и техники тестирования, устройства, инструменты и подходы. Поэтому нужно постоянно работать над собой и узнавать что-то новое. Я стараюсь много читать, ходить на конференции и мотивировать ребят развиваться и заниматься самообразованием.

Очень важно быть любопытным и жадным до знаний. Потому что всегда появляются новые виды тестирования, инструменты и подходы. И чем больше мы знаем, тем больше у нас вариантов, как действовать и решать одну и ту же проблему.

Оксана Скиндер, QA-директор iTechArt

То есть, неважно, какой у тебя диплом, главное — мотивация и самообразование?

У нас есть ребята, которые пришли в тестирование из самых разных профессий. На мой взгляд, нет строгого деления на гуманитариев и технарей. Каждый из нас идёт со своим багажом знаний: будь то 4−5 лет вуза или 3 года колледжа. Но, в любом случае, есть возможность самообразовываться, доучиваться и начинать карьеру. Только важно не останавливаться. Чем больше читаешь, тем глубже знания и шире возможности сделать свою работу эффективной.

Получается, корочка не главное, а важен опыт и то, как проявишь себя на собеседовании?

Успех в карьере и трудоустройство — это немножко разные вещи. Успех в карьере зависит от того, насколько человеку интересна его профессия. Всё, что делается через «не могу» — не принесет нужного результата, так как если ты заставляешь себя чем-то заниматься, то у тебя всегда найдется миллион причин для прокрастинации. Но если работа тебя увлекает, тогда подписываешься на всевозможные новостные рассылки, посещаешь профильные мероприятия и каждую свободную минуту тратишь на своё профессиональное развитие.

Чтобы держать себя в профессиональном тонусе, Оксана постоянно много читает, посещает конференции и изучает новые методики тестирования

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

Каждая компания предъявляет определённые требования к своим кандидатам и специалистам в зависимости от специфики бизнеса. Поэтому во время отбора кто-то фокусируется на знании иностранного языка, кто-то на коммуникабельности потенциального сотрудника, а кто-то на технической экспертизе.

Когда вы приходите в другую компанию на собеседование и вам отказывают, нужно понимать: это не значит, что вы плохой специалист. Просто пазл не сошёлся. У нас в Минске и регионах очень много компаний, и всегда на любого специалиста найдётся своя компания.

Оксана Скиндер, QA-директор iTechArt

Для начала я всегда предлагаю ребятам изучить немного информации о компании, в которую они идут на собеседование. Например, если компания сотрудничает с Западной Европой и США, то 100% понадобится знание английского. Если работает с Россией и странами СНГ, то к знанию иностранного требования будут не такие строгие. Если бизнес построен на автоматизации производства и технических разработках, соответственно, там нужны будут технические знания. Если вы идёте устраиваться в компанию, которая разрабатывает мобильные приложения, то логично, если у вас будут о них спрашивать. Небольшое исследование на старте поможет не только увереннее чувствовать себя во время собеседования, но и понять, действительно ли вы хотите там работать.

И ещё один важный момент: тестирование должно вам нравиться. Не секрет, что сейчас IT-сфера очень разрекламирована, и порой на собеседования приходят самые разные люди — замечательные футболисты или музыканты. Хорошо, если получается совмещать талант и работу: писать стихи и тестировать. Но когда человек отлично пишет, а на работе умирает, то ничего из этого не получится.

Только не нужно путать с ситуацией, когда будущая профессия тебя немного пугает и нет стопроцентной уверенности, получится или нет. Объясню на личном примере. Когда мне раньше рассказывали о профессии тестировщика, я говорила: «Что вы? За компьютером 8 часов в день, никого не видеть и ни с кем не разговаривать!» Мне казалось, что я никогда так не смогу. Но в итоге само тестирование меня настолько увлекло, что и восьми часов за компьютерами оказалось мало. Особенное удовольствие испытываешь в тот момент, когда у тебя начинает получаться хорошо делать свою работу. Тогда уже никакие трудности не заставят изменить свое решение.

Что бы Вы посоветовали студентам, которые только оканчивают вуз, но уже присматриваются к профессии QA-инженера?

Во-первых, полюбить свою будущую профессию. Во-вторых, стараться узнать о ней как можно больше. И в-третьих, учить английский язык. На рынке очень мало компаний, которые работают со странами СНГ. Очень многие сотрудничают с западным рынком. Кто-то согласен брать ребят с английским послабее, у кого-то, напротив, очень высокие требования.

Всегда более выигрышно выглядят те кандидаты, которые интересуются своей профессией. Читают статьи, книги и увлекаются этой сферой.

Оксана Скиндер, QA-директор iTechArt

И если резюмировать всё вышесказанное, то тестирование — это очень увлекательный процесс. Искать ошибки и предугадывать сценарии, как пользователь будет действовать, придумывать подходы, каким образом вызвать ошибку в приложении ­- это невероятно интересно. Любопытно смотреть, как выглядят новые «фичи», как они работают, насколько они привлекательны на разных устройствах. Не отчаивайтесь, если сначала будет непросто, ваше желание развиваться и любовь к своему делу помогут справиться со всеми сложностями.

***

Хочешь освоить профессию тестировщика? Приходи на курсы в образовательный центр Адукар: при успешном окончании есть возможность попасть на работу в компании-партнёры.

Если материал был для тебя полезен, не забудь поставить «мне нравится» в наших соцсетях ВКонтакте, Instagram, Telegram, ASKfm и поделись постом с друзьями. А мы сделаем ещё больше материалов, которые пригодятся тебе для учёбы.

Перепечатка материалов с сайта adukar.by возможна только с письменного разрешения редакции. [email protected]

adukar.by

Образ современного тестировщика. Что нужно знать и уметь / FunCorp corporate blog / Habr

Бытует мнение, что простейший путь к IT лежит через тестирование. Мол, знать ничего не нужно, уметь и подавно, достаточно желания и готовности не сильно щуриться от боли и слёз, когда тебе прилетает очередной набор тест-кейсов для регрессионного тестирования.

Отчасти это даже правда, но, скорее, для ситуации, которая была на рынке лет 10 назад. Сейчас же всё обстоит несколько иначе. Причин для этого масса, и они самые разные. Если отметить ключевые, то, пожалуй, это:

Возросшие требования к тестировщикам, их знаниям и квалификации, так как всё чаще решаются задачи чуть сложнее, чем «клик-клик — и в продакшен». Работа тестировщиков становится всё более «инженерной», требует технической подкованности, специфических знаний, навыков и компетенций. Тестировщики всё чаще становится QA-инженерами (кто в теме, тот понимает разницу).

Возросшее предложение на рынке, когда толпы вчерашних «гражданских» ринулись в пучину IT, подогреваемые обилием информации: от конференций и книг до статей и курсов по тестированию ПО. Ваш покорный слуга в своё время также приложил руку к созданию пары общедоступных курсов по причине желания тиражировать базовые вещи из своей профессиональной области (посмотреть можно здесь и здесь).

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

Безусловно, всё больше компаний стараются выращивать специалистов у себя под крылом, осыпая счастливчиков новыми знаниями и навыками, заодно повышая лояльность к компании. Однако и в этом случае перед компаниями и их специалистами встают животрепещущие и острые вопросы…
Как не потеряться в многообразии информации, которой наполнен интернет и мир вокруг?
Что учить самим или чему учить своих бойцов?

В своей статье я постараюсь в общих чертах рассказать, что нужно знать и уметь, чтобы работать специалистом в области обеспечения качества в наиболее популярных и востребованных направлениях. Поехали!

Нижепредставленные специальности составляют преобладающую долю рынка спроса и предложения тестировщиков, а потому (и ввиду отсутствия достаточного и актуального опыта работы) в статье, увы, не будет разделов про perfomance и десктоп-специализации.

Материал для этой статьи базируется на собственном опыте работы с блестящими специалистами моих команд, на результатах преподавания в МГУ, МГТУ и онлайн-курса, а также на сотнях проведённых собеседований и десятках нанятых QA-специалистов разных профилей. Не претендую на исключительную правоту своего взгляда, однако считаю, что мой опыт позволяет моей точке зрения быть достаточно компетентной.

Черты характера


Было бы странно полагать, что с возросшими требованиями к техническим аспектам работы тестировщиков значимость личностных качеств уменьшилась или исчезла вовсе. Более того, я уверен, что черты характера лежат в основе успешного специалиста и имеют решающее значение при схожих знаниях и навыках. Ведь мы работаем не с human-интерфейсами к Stack Overflow и Википедии, а с живыми людьми, которые остаются таковыми и в офисе, и дома. Поэтому так важно учитывать качества личности в контексте предстоящего выбора отрасли, профессии и специальности в ней.

Почему я так считаю? Всё очень просто! Я легко могу отправить специалиста на курсы или конференцию, заказать книги или провести тренинги по нюансам тест-дизайна, языкам программирования, SQL, сетям и прочим техническим аспектам, чтобы через некоторое время получить первые результаты и в дальнейшем приумножать их, закрепляя полученную информацию на практике. Однако нельзя отправить на курс «Как перестать бегать за офисными плюшками и начать инвестировать в собственные знания», «Как перестать быть безответственным вруном и начать жить честно», «Как перестать быть серой мышью и стать увлечёным человеком», «Как перестать ненавидеть людей и научиться работать в команде» и рассчитывать на ощутимый результат после прослушивания. Увы, это правда жизни, внутреннее несогласие с которой позволяет широкому пласту «инфобизнесменов» зарабатывать на непокорных, жаждущих изменить свои фундаментальные столпы и черты характера единичным тренингом или серий онлайн-вебинаров. Именно поэтому так важно обладать на старте правильной жизненной мотивацией и качествами для работы в IT и в QA в частности. Итак, что же важно?

Мотивация учиться и склонность к самообучению


Честно ответьте себе на вопрос: нравится ли вам учиться? Не разово, а на постоянной основе. Готовы к единственному прыжку, который волшебным образом выведет вас «в дамки», или страстно желаете ежечасно и ежеминутно впитывать в себя новые знания? IT — это сфера, где достаточно неудачно моргнуть, и вы уже на обочине индустрии. Не стоит рассчитывать, что прочитав за год книгу по тестированию, вы раскроете для себя врата в дивный мир новых знаний, которые позволят вам быть в тренде на десятилетие вперёд. Идеально, если для учёбы вам не всегда нужен мудрый наставник и учитель и вы в состоянии самостоятельно усадить себя за новую книгу, вебинар или курсы.

Ответственность


Оцените свой уровень ответственности. Простой способ: озвучьте для начала сами себе несколько своих самых крупных ошибок в жизни. Не получается? Речь не о вашей безупречности, вспомните, что не ошибается только тот, кто ничего не делает. Вспомнили? Если только пару мелочей, то это грустный показатель. Хуже только, если вспомнив ошибки прошлого, вы тут же внутренне обвинили в них кого-то другого или обстоятельства, а не признали свою ответственность за произошедшее. А вот если вы вспомнили парочку крупных фейлов, где виноваты были именно вы, да ещё и вспомнили как их исправили, то дела с вашей ответственностью обстоят сильно лучше. Вышка — это когда вы не только исправили ошибку, но и застраховались от неё на будущее так, чтобы она не повторялась. Ответственный подход к работе — залог успешной карьеры в любой области, а потому и для тестировщика это крайне важная черта. Главное — не перегибать и знать меру, ведь гиперответственность — не всегда хорошо.

Увлечённость


Вы увлечённый человек? Вот честно, чем вы увлекаетесь? Ничем особенным? Или это много мелких хобби, которыми вы занимаетесь раз в год? Может, что-то большое, но времени постоянно не хватает, а потому хобби ждёт лучших времен. Человек остаётся человеком и в офисе, и когда выходит из него. И если человек действительно увлечён чем-то в обычной жизни, значит, и в работе его можно чем-то увлечь настолько, что он будет засиживаться вечерами или изучать вопрос на выходных по собственной инициативе. Задача грамотного руководителя и самого специалиста — найти такие задачи. Конечно, важно при этом доводить начатое до логического завершения и не бросать на полпути. Тестировщик не может быть «сухарём». А вот если он горит своей работой и продуктом, то результативность такого сотрудника будет выше.

Гибкость поведения


Важная черта для работы в современных IT-компаниях и в QA в частности — это гибкость. Новые знания и веяния приходят со скоростью ветров Юпитера, устоять в стиле Гендальфа Серого «Ты не пройдёшь!» перед индустрией крайне сложно и не всегда целесообразно. А потому довольно важно уметь подстраиваться под новые условия работы, будь то генеральная линия компании, новые продукты, команда, методологии работы или инструменты. Чем гибче сотрудник, тем больше шансов у него карьерно развиваться в IT.

Коммуникабельность и контактность


Без сомнений, можно быть успешным специалистом, будучи довольно замкнутым, но при этом глубоко погружённым в свою задачу, однако научиться чему-то новому и обучить окружающих больше шансов у общительного и контактного человека. Необязательно каждому быть великим оратором и публично выступать на мероприятиях, но важно уметь находить общий язык с коллегами, грамотно изъяснять свои мысли устно и письменно. В работе тестировщика это довольно важные черты, ведь общаться нужно много и часто, и чем больше вы про QA, тем глубже и детальнее вы погружаетесь в смежные сферы, где умение выстроить коммуникацию — половина успеха.

Командность


Тестировщику необходимо быть командным игроком. Неважно, работаете вы в сервисной модели тестирования или тестировщики интегрируются внутрь каждой команды. Очень важно, чтобы вы давали «чувство плеча» своей команде, чтобы они могли положиться на вас, а вы на них. Один в поле не воин — для тестировщиков это ещё и история про дальнейший рост в карьере. Ведь именно команда, как ваше ближайшее окружение, является первостепенным источником знаний, которые вы будете получать о продукте, процессах и технологиях. Если вы командный игрок, то в тестировании вы добьётесь бóльших успехов, чем одиночка.

Инициативность и решительность


Как известно, под лежачий камень вода не течёт, а потому инертность выйдет вам боком и в профессии тестировщика. Хороший тестировщик — проактивный, не ждёт пинка от коллег и руководителя, а сам приходит с новыми решениями и предложениями. Если тестировщику один раз сказали «это не баг, а фича», то он не должен опускать руки. Вместо этого надо брать инициативу и излагать свою точку зрения. Безусловно, не стоит впадать в крайности и спорить по любому поводу, но и соглашаться со всем, что скажут, не стоит. В основе работы хорошего тестировщика не только критическое мышление, подвергающее проверке на прочность окружающий мир, но и умение в нужный момент сформировать собственную позицию и отстоять её перед окружающими.

Этот список можно ещё продолжать и дополнять, я выделил ключевые черты на основе собственного опыта. Безусловно, речь не идёт о том, что если у вас нет этих качеств, то вы профнепригодны. Но можно с уверенностью утверждать, что чем меньше из заявленных качеств будет в вас, тем будет сложнее и вам самим, и вашей команде, и вашему руководителю. Любые исключения допускаются, что лишь подтверждает правило.

Основы тестирования


Нижеперечисленные знания и навыки нужны абсолютно любому тестировщику вне зависимости от его специализации. Эти вещи — основа основ, учатся быстро и легко, особенно если тут же закрепляются практикой. Настоятельно рекомендую всем без исключения начинающим специалистам погрузиться в заявленные ниже темы. Вооружившись этими знаниями, вы сможете открыть для себя бескрайний мир тестирования ПО, со временем освоив любое из направлений, но знания, заложенные в фундамент, останутся востребованными всегда.

Классификация видов тестирования


Даже начинающий тестировщик должен иметь базовые представления о различных видах тестирования, когда они используются и для чего. Это сухая теория, которая сама по себе не нужна, но без неё «класть поверх» практику может быть мучительно больно и долго, а попутно ещё и велосипедов выдумаете, да граблей известных соберёте. Не ленитесь, ознакомьтесь, благо источников уйма. Зато потом с лёгкостью сможете на собеседованиях проходить задачки уровня «протестируйте карандаш».

Локализация ошибок и багрепортинг


Мало ошибку найти. Крайне важно ошибку нужным образом локализовать, установив как можно больше обстоятельств и условий для её стабильного воспроизведения. Более того, необходимо обрести навык составления качественных баг-репортов. На своих лекциях и при работе с командой я часто использую следующее сравнение: «Ваш баг-репорт хороший в том случае, если вы вышли на улицу, взяли за руку первую попавшуюся бабушку, и она смогла воспроизвести дефект по вашему описанию или верифицировать его отсутствие».

Техники тест-дизайна


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

Системы баг-трекинга, управления знаниями и тестами


Канули в небытие те времена, когда баг-репорты писали на листах, а тестовую документацию, чек-листы и тест-кейсы вели в гугл-доках (да-да, я знаю, что некоторые до сих пор пишут, и иногда это даже удобно). На смену этому самопалу пришли профессиональные инструменты — баг-трекинговые системы (из наиболее популярных стоит отметить Jira, Redmine), системы управления знаниями (Confluence, Wiki и другие) и системы управления тест-кейсами (TestRail, Zephyr, TestLink и т.д.). Базовые принципы работы с инструментами можно получить, вписываясь в открытые программы бета-тестирования или установив софт самостоятельно (на рынке есть как бесплатные решения, так и условно-бесплатные в масштабе ознакомительных сессий).

Методологии разработки ПО


Глубокого понимания методологий разработки ПО на начальных этапах тестировщику, может, и не потребуется, важно хотя бы на пальцах понимать отличия наиболее популярных (Waterfall, Scrum и Kanban). Но со временем ему придётся погружаться всё глубже и глубже в методологии, подбирая соответствующие подходы и техники при тестировании в контексте того или иного процесса разработки. Важно быть готовым к такому и уделять определённое внимание этой стороне вопроса.

Клиент-серверная архитектура


Большинство современного ПО строится на китах клиент-серверного взаимодействия. Тестировщику важно быть в контексте этой архитектуры, понимать принципы её работы, основные преимущества и недостатки. Это позволит не только лучше проводить испытания в ходе своей работы, но и при необходимости понимать, каким образом найденные дефекты нужно локализовывать, правильно определяя, на чьей они стороне.

Операционные системы


Принципы работы операционных систем, что они из себя представляют и какие вообще бывают — общие знания, которые, как правило, упрощают жизнь тестировщика. Даже понимание трендов замещения десктопных ОС мобильными, а также владение навыками работы с ОС на уровне пользователя уже плюс. А если погружаться в этот вопрос глубже, то со временем необходимо будет обзавестись навыками настройки и использования целой плеяды ОС (из самых популярных стоит отметить Android, Windows, iOS, macOS, Linux).

Клиентское тестирование веб-приложений


Один из наиболее простых и распространённых способов попасть в тестирование — начать тестировать веб-приложения. Эта специализация — одна из самых распространённых на рынке, однако ей на пятки вовсю наступает направление клиентского тестирования мобильных приложений. В любом случае нужно понимать, что такой вектор развития — один из наиболее доступных в самом начале карьеры. По этой тематике есть масса обучающих материалов и статей. При желании потом можно развиваться в любом другом направлении, чаще всего это автоматизация или всё те же мобильные устройства (например, после освоения тестирования веб-приложений под мобильные устройства).

Браузеры


В контексте клиентского тестирования веба важно понимать устройство тонких клиентов, браузеров в частности, а также их отличия, специфику рендеринга и работы скриптов, движков под капотом, версионности, дополнительного инструментария браузеров и т.д. Тестировщику важно всегда держать в голове популярность использования того или иного браузера у реальных пользователей продукта, чтобы распределять тесты наиболее эффективным способом. Самые популярные: Google Chrome, Safari, Firefox, Opera, Internet Explorer.

Консоль разработчика в браузере


Веб-тестировщик должен уметь пользоваться консолью разработчика в браузере (как минимум работать с элементами на странице и сетевыми запросами). В случае работы с элементами страницы тестировщик должен понимать, как локализовать их или при необходимости изменить, а в случае с сетевым взаимодействием — уметь разбираться в последовательности запросов и полученных ответов. В идеале нужно знать различные http-методы (GET, POST, OPTIONS и другие), знать коды ответов (10Х-50Х), уметь читать заголовки и тела ответов.

HTML, CSS, JavaScript


Чтобы тестировщик лучше понимал, из чего состоят и как устроены современные веб-страницы, будет крайне полезно иметь хотя бы базовое представление о HTML, CSS, JavaScript. Эти знания также помогут локализовывать ошибки, связанные с конкретными элементами на странице, быстро находить их и при необходимости менять на клиентской стороне.

Бэкенд-тестирование


Отдельная вселенная — это бэкенд-тестирование. Этот мир лишён рюшек и красивостей, в нём нет места графическим интерфейсам, только мерцающий курсор в консоли, горы текста и чистая логика приложений. Специфическое направление тестирования, которое не всегда легко даётся новичкам. Обычно требует более тщательной технической подготовки специалиста на старте.

Модель OSI


Базис, с которого стоит начинать бэкенд-тестировщику, — это модель OSI. Несмотря на то, что в большинстве случаев тестировщику вряд ли пригодятся уровни ниже прикладного и представительского, будет неплохо, если он будет понимать, где находятся эти уровни относительно других, в чём их специфика и как они применяются.

REST. SOAP. JSON-RPC


REST, как архитектурный стиль клиент-серверного взаимодействия, лежит в основе современного интернета. Понимание требований к REST-архитектуре должно быть в арсенале знаний бэкенд-тестировщиков, равно как и знания о стандартах, используемых в нём (HTTP, JSON, XML). В отдельно взятых направлениях не менее важным может оказаться знание протоколов SOAP (а вместе с ним XML, XSD, WSDL) и JSON/XML-RPC, их возможностей и ограничений.

Командная строка


Без навыков владения командной строкой бэкенд-тестировщик не сможет обойтись в большинстве случаев. На начальном этапе достаточно будет базовых вещей в духе работы с папками и файлами, их создания, чтения, перемещения и т.п. Эти знания позволят тестировщику, например, работать с серверными логами для локализации дефектов. А со временем вы уже не сможете обходиться и без bash-скриптов, работы с файловыми дескрипторами, конвейерами и регулярками.

cURL. Postman. SoapUI


Для тестирования REST API на стартовом уровне отлично подойдёт утилита командной строки cURL, которая позволит тестировщику отправлять тестовые запросы и получать ответы, разбирать их и сравнивать фактический результат с ожидаемым. Более продвинутым и одновременно более казуальным (за счёт наличия GUI) инструментом тестирования API является Postman, навыки использования которого также весьма полезны. А если нужно тестировать SOAP API, то идеально подойдёт инструмент SoapUI (на самом деле с ним можно тестировать и REST API).

Базы данных


Тестировщику важно знать и уметь работать с СУБД, в первую очередь с SQL (MariaDB, MySQL, PostgreSQL, MS SQL). И наиболее востребованным является знание SQL. Очень часто в описании вакансий есть упоминания про этот навык, который звучит как «Знание SQL на уровне простых запросов». Как правило, для начала достаточно знать базовые вещи уровня INSERT, SELECT, DELETE, UPDATE, WHERE, ORDER BY, в некоторых случаях нужны JOIN, INNER JOIN, RIGHT JOIN, LEFT JOIN. Кроме того, несомненным плюсом будут знания и навыки работы с NoSQL БД (MongoDB, Cassandra). Они позволят тестировщику сверять ожидаемые и фактические результаты в ходе выполнения тестов при работы с данными.

Клиентское тестирование мобильных-приложений


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

IDE


Для тестировщика мобильных приложений важно освоить на базовом уровне среду разработки (XCode для iOS, Android Studio для Android). Знания этих инструментов позволяют осуществлять локальные сборки приложений, при необходимости и с помощью разработчиков конфигурировать их под нужды тестирования, лучше локализовывать баги, читая клиентские логи, и даже работать с исходниками приложения. Кроме того, в IDE есть возможность запуска приложения через эмулятор, что может пригодиться тестировщику.

Инструменты мониторинга HTTP/HTTPS-трафика


Тестировщик обязан понимать клиент-серверную архитектуру и уметь локализовывать ошибки с её учётом. И если в тестировании веб-приложений для этого обычно хватает консоли разработчика, то для мобильных приложений нужно использовать специализированное ПО (Charles, Fiddler, Wireshark), которое позволит перехватывать и анализировать сетевые запросы. Т.е. с помощью этих инструментов в большинстве случаев можно довольно точно определить, на чьей стороне проблема. Более того, они позволяют подменять запросы, эмулируя то или иное поведение ПО (как со стороны клиента, так и со стороны сервера). Это нужно не только для локализации проблем, но и для проведения ряда испытаний в рамках тестирования приложения.

Сервисы дистрибуции мобильных приложений


Для тестирования разных версий приложений необходимо иметь базовые навыки работы с сервисами дистрибуции мобильных приложений, например, Fabric (Crashlytics), HockeyApp, TestFlight. Они позволяют не только получить нужные сборки для тестов, но и анализировать статистику использования, а также работать с падениями приложений, локализуя проблемы и выясняя их причины.

Автоматизация тестирования


Я не стал разграничивать автоматизацию тестирования по направлениям, выделив её в отдельную специализацию. Безусловно, есть ряд принципиальных различий между автоматизаторами тестирования веба, бэкенда и мобильных приложений, но в этом разделе мне хотелось бы консолидировать наиболее важные знания и навыки, которые востребованы инженерами по автоматизации тестирования вне зависимости от их специальности. Стоит отметить, что автоматизация тестирования сама по себе довольно сложна не только с технической точки зрения, но и с точки зрения практик тестирования. А потому настоятельно рекомендую смотреть в эту сторону, предварительно освоив не только общие моменты, но и одно из направлений, перечисленных выше. Если вы научитесь тестировать руками, вам будет проще и понятнее заниматься автоматизацией.

Язык программирования


Обилие языков программирования открывает перед тестировщиками широкие возможности для получения новых знаний и навыков для применения на практике. Выбрать из многообразия языков наиболее подходящий — непростая задача. Рекомендую руководствоваться тремя принципами.
Первый:
сложность обучения языкам — штука довольно относительная, ведь кому-то проще даётся модный стильно-молодёжный Python с динамической типизацией, а кому-то легче с жёстко типизированной и структурированной Java со статической типизацией. Важно попробовать и понять, твоё это или нет.
Второй:
ориентируйтесь на сообщество, у которого вы сможете обучиться языку. Это в равной степени может быть как внешнее комьюнити (форумы, курсы, тренинги и т.п.), так и внутреннее (коллеги по цеху тестирования или даже разработчики). Однако стоит помнить, что равняться исключительно на коммьюнити не стоит, особенно если речь идёт о разработчиках. Безусловно, они эксперты в области своего языка, но не стройте радужных иллюзий, что они начнут помогать вам писать функциональные автотесты на регулярной основе (это очень редкий кейс), да и в специфике тестирования они далеко не всегда могут быть столь же компетентными.
Третий:
ориентируйтесь на тестовые фреймворки и инструменты, которые используют в связке с языком программирования, и их популярность в среде тестировщиков. Это поможет вам в случае возникновения специфических проблем не остаться наедине с трудностями и найти поддержку на стороне.

На основе опыта последних лет самыми популярными языками в контексте тестирования я бы назвал Python, Java, PHP, а в мире мобильной разработки — нативные языки Kotlin, Objective-C и Swift.

Тестовые фреймворки


Дабы тестировщику не приходилось начинать автоматизацию с изобретения собственных велосипедов и чтобы, минимизировать встречу с граблями, автоматизаторы тестирования часто используют тестовые фреймворки (xUnit, nose, unittest, pytest, TestNG, Cucumber) в зависимости от языка, на котором пишут тесты. Важно освоить эти базовые фреймворки, чтобы сделать работу с тестами наиболее эффективной и удобной.

Драйверы и надстройки для автоматизации тестирования


Помимо тестового фреймворка специалисты по автоматизации тестирования должны использовать драйверы, которые позволяют взаимодействовать с приложением через программный интерфейс вместо графического. Без них не обойтись, если вы собираетесь автоматизировать клиентские приложения. Если вы собираетесь работать с вебом, то обязательно нужно изучить Selenium WebDriver, если с iOS — XCUITest, а для Android вам пригодятся Espresso и UI Automator (нативная поддержка от Google), вариативно — Robotium или Selendroid. Для пущего удобства используют надстройки, которые, с одной стороны, усложняют инструментарий специалиста по автоматизации, а с другой — дают дополнительные возможности. Особое внимание рекомендую тут уделить Appium и Cucumber.

Системы отчётности результатов автотестов


Какие бы автотесты вы ни писали, по завершению было бы неплохо иметь возможность получить отчёт о проведённом тестировании, да такой, чтобы не мельтешило в глазах от строчек текста. Наиболее популярной сейчас, пожалуй, можно назвать разработку отечественных коллег — Allure. Инструмент всё чаще используется для удобной визуализации результатов выполненных автотестов, в нём есть возможность группировки тестов по компонентам вашего приложения или задачам, в контексте реализации которых проводятся испытания.

Системы контроля версий


После того как вы напишете свой первый автотест, вам непременно захочется писать ещё и ещё, а затем модифицировать, ускоряя работу, расширяя логику, углубляя проверки, а потом и поделиться результатами с коллегами. Хранить каждую из версий ваших тестов локально, раскладывая по различным папкам, архаично, трудоёмко и неудобно. Поэтому логично перенимать лучшие практики от программистов и научиться пользоваться системами контроля версий. Из наиболее популярных стоит отметить Git, SVN, Mercurial, TFS. Замечу, что Git доминирует на рынке и при прочих равных стоит использовать именно его. На начальном этапе тестировщику потребуется знание того, что такое commit, push, pull (force), fetch, checkout, branch, merge, rebase, revert.

Системы непрерывной интеграции


Запустив свой первый автотест, вам непременно захочется делать это ещё и ещё, а со временем даже поделиться с кем-то этой возможностью. И тут на помощь придут инструменты непрерывной интеграции, такие как Jenkins, TeamCity, Bamboo. Скорее всего, у коллег-разработчиков есть свой CI-инструмент для сборки проектов, возможно, даже и для запуска unit-тестов. Чтобы примкнуть к ним со своими функциональными автотестами будет здорово, если вы будете понимать принципы работы этих инструментов. А если ничего подобного у коллег ещё нет, тогда вы будете первопроходцем и сможете делать удобные параметризированные запуски своих автотестов (на разных хостах, с разными данными и т.д.) по факту изменений, запросу или по расписанию.

Возврат инвестиций от автоматизации тестирования


Последним, но не наименее важным, является знание методики подсчёта возврата инвестиций от автоматизации тестирования. Речь идёт хотя бы о приближённом представлении, какие тесты стоит автоматизировать и поддерживать, а какие лучше даже не пытаться. Если коротко, то отталкивайтесь от важности функционала и тест-кейса, который вы собираетесь автоматизировать, закладывайте трудозатраты и сложность разработки автотеста, а также потенциальную потребность, частоту и сложность его обслуживания и поддержки. Ведь одно дело, когда речь о ключевом нативном функционале, на который написаны все элементы фреймворка и прогнозируются минимальные трудозатраты на поддержку автотеста, и совсем другой разговор, когда речь идёт об автотесте на экспериментальную фичу, которую раскатили на 1% аудитории, фреймворк ещё не поддерживает этот функционал, который вдобавок интегрируется с нестабильными внешними сервисами, да ещё и переделывать егособираются ближайшие пару месяцев. Уметь определять, когда писать автотест, а когда нет — важный навык для специалиста по автоматизации тестирования.

Управление командой тестирования


Помимо становления экспертом в области тестирования популярным путём развития современного тестировщика является рост вертикальный, в управленца командой тестирования. В идеальном кейсе управленец должен уметь делать то же самое, что и команда, которой он будет руководить, однако это не обязательно. Если при этом он будет в части вопросов компетентнее своей команды — ещё лучше, но вот что уж точно чрезмерно, так это абсолютное превосходство во всех вопросах. В конечном итоге, управление командой — это история про обмен опытом, знаниями и компетенциями. Какими же личностными и профессиональными качествами должен обладать хороший тимлид?

Лидерство


Я глубоко убеждён, что лидерство — прирождённое качество, недаром Генри Форд говорил: «Спрашивать, кто должен быть боссом, всё равно что спрашивать, кто должен быть тенором в этом квартете». Тем не менее, можно научиться лидерству. Ведь есть и обратное мнение, что лидерами не рождаются, а становятся. Безусловно, лидерские качества, есть в каждом из нас. Другое дело, что для одних руководить и воодушевлять людей —это дар и мана небесная, а для других — кошмар и адовые муки. Сложно себе представить, что кто-то из читателей сознательно выберет путь развития в управленцы, зная, что это будет приносить дискомфорт и неприятности. Всё-таки с желанием быть лидером у управленца значительно больше шансов на успех.

Решительность


Управленец должен уметь принимать решения. Кажется, что это очень просто, но люди часто сталкиваются с собственной нерешительностью. Когда речь идёт о серьёзных вещах, то некоторые люди и вовсе впадают в ступор, всячески оттягивая принятие решения, опасаясь ответственности и последствий. Для управленца это неприемлемо, поэтому ему важно развивать свою решительность, чётко понимая ситуации, когда действительно есть время для принятия решения, а когда нужно действовать здесь и сейчас.

Формирование команды


Умение работать с командой, формировать её, направлять и развивать — важные качества руководителя. Группа людей — ещё не команда. Изначально у них могут быть разные цели и задачи. Пока они не объединены идеей, не мотивированы и не жаждут плечом к плечу преодолевать трудности, они не могут быть командой. Задача хорошего руководителя — сплотить людей, склеить их, подбирая задачи и выставляя цели, которые будут приводить к формированию настоящей команды. Для этого потребуется и умение подбирать новых людей, и находить подход к своим сотрудникам, а при необходимости и с кем-то попрощаться. Вам надо научиться работать с разными людьми, развивая свои способности находить общий язык с командой, формировать её и развивать для эффективной совместной деятельности.

Планирование


Навык планирования нужен и рядовому специалисту, а для руководителя он становится необходим, как воздух. Ведь управленец распоряжается не только своим временным ресурсом, но рабочим временем целого подразделения, а потому должен уметь распределять его грамотно, вдумчиво и эффективно. На начальном этапе необходим как минимум уровень тактического планирования — на день, неделю, месяц. В конечном итоге руководитель должен научиться мыслить стратегически, ставить задачи не только на видимый горизонт событий, но и перешагивать за него. Это, несомненно, сложно, однако не значит, что этому не нужно учиться. Нужно! Особенно, если вы хотите стать хорошим руководителем.

Навык убеждения и ведения переговоров


Становясь руководителем, вы должны уметь отстаивать не только свою позицию, но и точку зрения вашего подразделения, лицом которого вы по сути являетесь. А это значит, что, во-первых, вы должны научиться убеждать в собственной точке зрения свой коллектив, а во-вторых, в некоторых ситуациях должны уметь принимать и отстаивать мнение своей команды. Вести переговоры от лица своих сотрудников — сложная задача, и получить этот навык автоматом не получится. Потому начинающему тимлиду стоит обратить внимание на прокачку этого навыка, а опытный и так уже знает, что без умения грамотно аргументировать и защищать свою позицию руководителю будет крайне сложно найти общий язык и внутри коллектива, и за его пределами.

Позитивное мышление и умение мотивировать


Руководитель — глава подразделения, от его взгляда на вещи зависит и поведение его сотрудников. На вас лежит ответственность за моральное состояние команды, её боевой дух и уровень мотивации. Руководителю важно понимать, что у каждого сотрудника свои мотиваторы, и способы воздействия на членов коллектива должны быть разными. Хороший руководитель источает не только уверенность в завтрашнем дне и решительность в своих поступках, но и позитивное отношение к вещам, которое он транслирует своей команде, приободряя её, ставя новые задачи.

Итого


Итак, чтобы войти в IT через тестирование, знать нужно довольно-таки много, а чтобы развиваться и стать профессионалом — ещё больше. Важно понимать, что у вас всегда есть выбор — быть экспертом в определённой области с глубоким погружением в специальность или стать широкопрофильным специалистом. На рынке требуются и те, и другие, так как всё зависит от конкретной компании, принципов формирования команд и рабочих процессов. Если уверены, что вам это действительно интересно, и что эта дорога вам по зубам, смело ступайте по ней, впереди много удивительных открытий и новых знаний.

Еще раз хочу напомнить о важности определённого характера для работы в IT и тестировании в частности. Помните, что на курсы по языкам программирования и СУБД можно отправить любого, а вот на курсы по тяге к саморазвитию и увлечённости, которые бы позволили бы успешно пройти первые курсы, увы, отправить никого не получится.

Надеюсь, что статья оказалась полезной для тех, кто её прочитал, будь то новичок или опытный специалист, ведь выбор профессиональных линий развития в области тестирования достаточно велик, чтобы в нём слегка потеряться. Напомню, что вся эта история — in my humble opinion, а потому не судите строго и не забрасывайте тапками. Буду благодарен за конструктивную обратную связь.

Всем качества!

habr.com

Как стать тестировщиком или каких знаний мы ждём от джуниора / Rambler Group corporate blog / Habr

Пара вводных слов
Всем доброго времени суток, меня зовут Туманов Дима. Сейчас я работаю в компании Rambler&Co и отвечаю за тестирование на проектах Афиши. В рамках данной статьи я развею несколько мифов об IT и тестировании в частности. Кроме того, приведу примеры из жизни как “не зная ничего” стать Junior QA Engineer в крупной компании.

Начало пути
Проработав почти два года в одной “мирной” госкорпорации в должности “ненастоящего инженера”, я осознал, что развитие остановилось. Я мог сидеть на одном месте и почти ничего не делать. В конечном итоге мои знания бы совсем отстали от реальной действительности и я бы стал невостребованным на рынке. В этот момент я принял решение о смене места и сути своей работы.

Вопрос №1 — “Какую область для работы выбрать”
Мой выбор основывался на нескольких фактах. Во-первых я хотел работать в быстро развивающейся отрасли. В этом я видел и вижу сейчас возможность постоянно расти в профессии, развивая себя в различных направлениях. Во-вторых я хотел уйти от бюрократии, жёстких регламентов и обязательного ношения костюмов жарким летом. Ну и последнее, но не по значению, я хотел делать действительно важное дело, ощущать близость конечного пользователя, понимать, что моя работа действительно нужна. Все три этих пункта я смог увидеть в IT-отрасли.

Вопрос №2 — “Какую профессию выбрать”
Для меня важным было некое совмещение гуманитарных и технических наук, то есть коммуникаций и инженерии. С одной стороны я не хотел быть только техническим специалистом и например писать лучший код на Java. С другой я хотел понимать как всё устроено изнутри. По этим причинам мой выбор пал на тестирование. Дополнительно к смежности профессии, описанной выше, в тестирование довольно просто попасть. Порог входа действительно небольшой.

Вопрос №3 — “Какую компанию выбрать”
По сути все компании можно классифицировать несколькими способами. Во-первых по отношению заказчик-разработчик. Есть принципиальная разница между компаниями аутсорсерами и продуктовыми компаниями. Для первых самым важным является продажа продукта. Да, есть имя компании, отзывы клиентов, но так или иначе заработок идёт от прямых продаж. Для вторых важным является иметь качественный и популярный продукт. На таком продукте можно разместить дорогую рекламу и заработать много денег. Поэтому с точки зрения тестирования сильная команда будет сформирована именно в продуктовой компании. Во-вторых компании стоит разделять на русские и импортные. На текущий момент тестирование остаётся слабо развитым направлением в России. Это даёт свои плюсы и оставляет возможность занять своё место под солнцем без сильных проблем. Но, с другой стороны, сужает выбор достойных мест для работы. Благо в крупных интернет компаниях рунета уже “пройден этап варварства и созданы первые государства”. Для меня было важно работать именно в русской компании. Это что-то вроде “странного” патриотизма, если хотите. Исходя из всего этого мой выбор пал на крупные продуктовые интернет компании России. Таких кстати совсем немного и вы легко можете найти их рейтинг в Forbes (2014, 2015, 2016).

Вопрос №4 — “Как решить проблему отсутствия опыта”
Парадокс подавляющего числа компаний заключается в необходимости опыта даже для начальных предложений. Ответ на вопрос как они вообще себе такое представляют я не нашёл до сих пор. Благо в неразберихе рождается всё новое и многие построили бизнесы на этой истории. Сеть сейчас кишит различными обучениями с практикой, среди которых есть действительно стоящие. С остальными знаниями, которые нужно приобрести, вроде без эксцессов, поэтому давайте обо всём по порядку.

Вопрос №5 — “Какие знания нужно получить и как это сделать”


  • Погружение в теорию тестирования. В первую очередь нужно научиться говорить на языке IT и тестирования в частности. Для этого необходимо разобраться с тем, что такое обеспечение качества и с основными понятиями из тестирования ПО. Данные материалы можно раскопать почти в любой книге по тестированию, но я ярый противник “технических” талмудов и считаю их медленным источником информации. Намного проще и быстрее это сделать из отдельных статей:
  • Изучение Bug Tracking систем. Ключевым навыком инженера по тестированию является поиск, локализация и качественное заведение дефекта. Баг не существует в вакууме, он чётко связан с разделом программы, воспроизводится на списке конфигураций (операционная система и её версия, браузер и его версия), имеет свой приоритет. Более того работу над исправлением дефекта проводят несколько разных специалистов. Для того чтобы сделать процесс управления починки дефекта управляемым используют специальные системы. Здесь есть иллюзия выбора. Есть широко распространённый Redmine. Но если вы нацелены на работу в компании, указанного выше класса, то вам стоит изучать Jira. Для этого рекомендую сделать следующее:
    • Поставить себе пробную версию продукта и пройти эти ролики
    • Поставить себе и изучить базовые гаджеты: 1, 2, 3
  • Изучение Test Management систем. Любой софт — это по сути набор возможностей, то есть так или иначе конечное множество. При этом логика работы каждой из них не является идеальной моделью, а значит количество багов в системе всегда бесконечно. Вопрос в том что мы считаем багом, а что нет. Тут на помощь нам приходят требования от заказчика, описывающие то каким должен быть наш продукт. В качестве требований не обязательно должно быть техническое задание на тысячу страниц. Это также может быть прототип или постоянное живое обсуждение, если ваш продукт это просто новая доработка. Для перевода требований в набор проверок существуют методы из теории тестирования, которые вы уже должны были изучить выше. Но тесты, как и дефекты не существуют в вакууме и над одним функционалом может одновременно работать несколько специалистов по тестированию. По аналогии для управления процессом написания и применения тестов используют специальные системы. Лихие 90-е ушли и работа в “эксельках”, “блокнотиках” и “тестлинках” уже не является нормальным явлением. Недавно я проводил аудит по поиску подходящей системы. В основном они либо ничего не делают, либо стоят как космолёт. Золотой серединой является TestRail. Для его изучения нужно сделать следующее:
    • Поставить себе пробную версию и пройти эти ролики
  • Поднятие технического бэкграунда. Мы занимаемся web и mobile приложениями, поэтому рассуждение пойдёт в этом ключе. Настоящий тестировщик обязан понимать “начинку” того, что он проверяет. Это экономит время команды, так как специалист по тестированию сам может определить истинную причину дефекта и описать её правильно. Да и тестировать то, о чём ты ничего не знаешь как минимум странно. Плюс глубокое понимание улучшает ваши коммуникации с другими техническими специалистами. Для старта хватит этих общих знаний:
  • Изучение программирования. Извечный вопрос нужно ли уметь программировать тестировщику имеет очень простой ответ. Нужно. Связано это с тем самым техническим бэкграундом во-первых и с развитием аналитичности вашего мышления во-вторых. На начальном этапе достаточно иметь базовые представления о программировании, в будущем для качественного роста вам потребуется изучить один из популярных языков. Например, Python или Java. На старте стоит изучить следующее:
  • Преодоление преграды отсутствия опыта. В IT-отрасли сейчас сильная нехватка кадров, в частности тестировщиков, поэтому часто берут перспективных кандидатов без опыта. Действительно, проще научить с нуля, чем переучивать. Для того, чтобы стать более востребованным по сравнению с другими стоит пройти специализированные курсы по тестированию. На них можно получить структурированные знания и самое главное опыт реального тестирования. Я рекомендую пройти курс “Школа успешных тестировщиков, v 2.0” с этого портала
  • Поиск работы. Дальше остаётся только составить резюме, учитывая обновлённые знания и навыки, и научиться грамотно использовать hh

Перспективы развития
Работа занимает треть нашей жизни. Если отбросить сон, то это вообще половина нашего времени. Единственно правильным считаю работать там и делать то, что действительно нравится. Помимо морального удовлетворения есть и материальные блага. Уровень зарплат по официальным источникам даже на старте превышает среднюю температуру по больнице. Наличие ДМС, скидки на фитнес или наличие зала внутри компании, бесплатные билеты на различные мероприятия и прочие бонусы конечно же присутствуют. К тому же работа оценивается по количеству сделанной работы, а никак не по проведённому на ней времени. В IT всегда гибкий график и “опоздание на 15 минут” никак не будет наказываться. Более того, на это даже никто не обратит внимание, потому что это действительно нормально. Роль тестировщика — это не окончание вашего движения, это лишь точка входа. После пары лет хорошей практики в тестировании вы сможете выбрать любой путь развития в компании.

Почему я уверен в вашем успехе
Как когда-то сказал Стив Джобс: “Нельзя соединить точки жизненного пути, смотря вперёд. Их можно соединить, только оглядываясь в прошлое”. Именно этот принцип и даёт мне уверенность в том, что стать тестировщиком и начать получать удовлетворение от работы может абсолютно каждый. Есть и другие примеры за последние несколько лет, которые только подтверждают доступность данной профессии. У меня был некий Challenge Accepted. В какой-то момент ко мне почти одновременно обратилось два человека, которых я очень хорошо знал. Один из них на тот момент работал в правоохранительных органах, другой был профессиональный военным. Схожесть ситуации была на лицо. Они большие молодцы и с большой настойчивостью проходили примерно описанный выше план. Такое самообучение и поиск самой работы у них заняло порядка трёх-четырёх месяцев. Сейчас они работают тестировщиками, имеют перспективы для развития, гибкий график и думаю много чего в их жизнях ещё изменилось.

Post Scriptum
Ещё раз подчеркну. Войти в данную профессию не сложно. Это сможет каждый. Дальнейшее развитие в IT зависит уже только от вас.

habr.com

личный опыт тестировщика / Maxilect corporate blog / Habr

Хочу рассказать о работе тестировщика с нетипичного ракурса, который вряд ли покажут в учебных заведениях или профессиональной литературе. Становясь профессионалом в этой области, ты неизбежно начинаешь жить концепциями, заложенными в саму основу тестирования. И это очень по-разному отражается на обустройстве жизни. О том, как именно это происходит у меня, под катом.



Немного о себе


Тестированием в том или ином виде я занимаюсь уже более 10 лет.
Путь в ИТ, как и многие, я начинал с разработки «для себя». У меня всегда был миллион идей, что написать, и таким образом я постепенно развивался. Мне нравилось разбираться в деталях проектов и делать их отказоустойчивыми, и уже тогда было более-менее все равно, на каком языке писать: я умел алгоритмировать, а погуглить синтаксис – вопрос недели.
Где-то в 2005 году я познакомился с человеком, который в буквальном смысле открыл для меня отрасль тестирования. Мне уже тогда показалось, что ее идеология полностью соответствует моим внутренним стремлениям. Человек тот в итоге прошел путь от рядового тестера до технического директора и уже тогда звал меня к себе работать. Но по разным причинам попал я в эту отрасль лишь год спустя, устроившись в компанию Smartbear (на тот момент – Automated QA Corporation), чей инструмент для автоматизированного тестирования TestComplete известен, пожалуй, всем тестировщикам. Правда, попал я не на сам TestComplete, а на другой продукт, Automated Build Studio – по сути, сразу в автоматизацию. В его GUI-подход к автоматизации, кстати, я буквально влюбился, даже написал для себя аналог, когда ушел из компании.
Впоследствии я успел поработать и на зарубежных заказчиков, и на российских. А на данный момент автоматизирую тестирование в российской полностью удаленной компании (на формате работы еще остановлюсь далее).

За время, проведенное в профессии, я понял, что тестирование — это не просто работа, но и своеобразный стиль жизни, который влияет на все аспекты твоей жизни. Будучи тестером, ты просто не можешь жить иначе.
У этого подхода есть как позитивные, так и негативные стороны.

Чем проще задача, тем хуже ты себя чувствуешь


Поиск сложных задач – это не только пристрастие, но и неизбежность.
Сколько бы ты ни учился, в любом инструменте, в любой технологии всегда найдется тот, кто знает больше тебя. И если ты условно «едешь по колее» простого проекта, об этой разнице знаний тебе будут постоянно напоминать. Со всех сторон будет сыпаться критика, что здесь можно было сделать иначе или даже лучше.
Единственный способ этого избежать – искать более сложные задачи, где нет очевидных решений, но есть бессонные ночи в поисках проблем.
К примеру, на одном из последних проектов я столкнулся с разработкой библиотек для Robot Framework в связке с Jython. Конкретно в том случае можно было использовать стороннюю библиотеку для работы с базой данных, и она вроде бы должна была работать, но не работала. Три ночи я потратил на то, чтобы в итоге, читая код самой библиотеки, найти ошибку в документации, которая неверно указывала типы и количество значений на входе. Это была победа и настоящий кайф от ее достижения! И мне нравятся подобные моменты. Это гораздо интереснее, чем «колея» типичного проекта.
Однако стремление к сложным задачам несколько ограничивает круг возможных работодателей. Еще больше его ограничивают дикое тестирование фронтэнда, работодатели без внятного ТЗ на тестирование или имеющие какие-то смутные представления о том, кто такой автоматизатор. Я встречал тех, кто, приглашая на автотестирование, ставит ручные задачи или подключает тестеров к support. Еще довольно много тех, кто экономит на покупке нормального инструментария, предлагая работать чуть ли не в Google Docs. И надо быть готовым к тому, что рынок потенциально интересных работодателей уже, чем тебе кажется.

Высшее образование не тождественно трудоустройству. Важна техническая база и интерес к профессии


На текущем месте работы в число моих обязанностей входит техническое собеседование тестировщиков, поступающих к нам на работу. В ходе беседы я никогда не задаю вопрос о наличии высшего образования, потому что уверен: оно абсолютно не гарантирует присутствие логического мышления. Может быть, мой собеседник имеет докторскую степень, но ни в зуб ногой в тестировании.
Откровенно говоря, я вообще считаю, что тестером нужно родиться. Для этого требуются природная внимательность, усидчивость и какая-то специальная тестерская жилка, когда ты из 1000 документов можешь наобум попасть в один из трех ошибочных. Правда, не все разделяют это мнение.
Важно то, что даже при наличии этой самой жилки нужна хорошая техническая база, которую вряд ли можно получить, закончив двухнедельные онлайн-курсы. Сложно сказать, что обеспечило техническую базу в моем случае. В 90-е доступа к Интернету у меня не было, нужной литературы в библиотеках — тоже, поэтому знания я черпал из FIDO (до сих пор поинты свои помню — 2:5022/5.102 и 2:5022/123.222). А базой именно по тестированию я обязан сертификации International Software Testing Qualifications Board (ISTQB). Кажется, ничего лучше пока не придумали.
Однако довольно редко я встречаю знания по ISTQB у кандидатов на вакансии. Более того, иногда мне кажется, что люди вообще не интересуются отраслью. На собеседованиях у меня есть вопрос про конференции: посещает ли кандидат какие-то мероприятия в сфере QA. И традиционный ответ на него отрицательный. Для меня это показатель серьезности и заинтересованности самого кандидата, а заодно и компаний, на которые он работал. Участие в мероприятиях типа SQA Days, куда я поеду в ближайшее время, стоит денег. И какая-нибудь «шарашкина контора» не будет тратить их на своих сотрудников. Из своего кармана же заплатит лишь тот, кому по-настоящему интересно.

Без опыта никуда


Каждый проект в тестировании заставлял меня изучать новые технологии. Выше я рассказывал о своей «героической битве» с Jython, но ведь придя на тот проект, я не знал ни Robot Framework, ни, собственно, самого Jython (ни даже Python, на котором есть много всего для Robot Framework). Теперь же я, пожалуй, лучше всех в компании разбираюсь в роботе, потому что база в тестировании подсказала подход, а опыт разработки на разных языках и тестирования предыдущих проектов позволил быстро переключиться на новый стек.
Кроме того, опыт позволяет правильно распределить усилия. Я заметил, что новички очень много внимания уделяют негативному тестированию – как бы что сломать. Видимо, стереотипы у них такие относительно профессии. В большинстве случаев их негативное тестирование неважно и ненужно (т.е. растрата ресурсов неоправдана, за исключением тех случаев, когда проект подразумевает необходимость такого тестирования). Лишь с опытом приходит понимание того, что нужно, а что нет, при такой постановке задачи.
Кстати, у меня на собеседованиях есть целый список вопросов, задача которых – выявить наличие именно практического опыта кандидатов.

Все люди раздолбаи. Это вызывает боль, но дает работу


Увы, мир несовершенен.
В разработке это выражается в том, что на тестеров существует спрос. Если бы разработчики замечательно писали код, мы бы остались без работы. С нами же раздолбайство никуда не исчезает, но мы покрываем его тестами.
Сами тестеры, к слову, тоже небезгрешны. Какой бы проект ни попался, вам тоже иногда придется писать «костыли». И с этим ничего не поделаешь – таковы порой условия бизнеса.

Чем лучше ты как тестер, тем больше тебя ненавидят


Разработчики с тонкой душевной организацией, с которыми я сталкивался на прошлых работах, порой очень тяжело относились к багам в их коде, информация о которых появлялась в системе. С их точки зрения, это, видимо, что-то вроде публичного оглашения их ошибок. И чем активнее ты отчитываешься о багах, тем сильнее тебя ненавидят коллеги. В результате в офисе у тебя, конечно, есть какое-то количество хороших знакомых, но примерно треть коллектива начинает тебя избегать, и ты это чувствуешь. Для меня это крайне неприятно.

На удаленке быть тестировщиком легче


Это естественное следствие из предыдущего замечания. Когда ты нажил себе в офисе достаточно «недоброжелателей» с тонкой душевной организацией, ходить по такому помещению становится не очень приятно. Поэтому для себя я уже давно сделал выбор в пользу удаленки. В таком формате непрофессиональные отношения сходят на нет – никаких косых взглядов. Возможно, конечно, я просто не сталкиваюсь теперь с такими характерами. Но здесь и шансов на такое столкновение немного. Мы, к примеру, созваниваемся по видеосвязи только внутри QA-отдела. С разработчиками, на которых я могу повесить баг, общаюсь только в тексте, без каких-либо эмоций. А даже если эти эмоции и будут, в тексте их переживать гораздо проще, чем когда человек по несколько раз в день проходит мимо.
А еще я могу питаться нормальной домашней пищей, оборудовать рабочее место так, как мне хочется. Могу сидеть в жару в одной футболке (помня о видеосозвонах) или даже изменить свои рабочие часы так, чтобы в середине дня выехать в поле и понаблюдать, как начинается осень или природа просыпается от зимней спячки. А самое главное достоинство удаленки – это экономия времени. Я живу неподалеку от областного центра. ИТ у нас существует только там. И если мне работать в офисе в центре, то до рабочего места придется добираться по часу в одну сторону, а по пятницам все полтора. И это время, которое ты просто теряешь: оно не оплачивается, не тратится с пользой. Плюс риск попасть в ДТП и расходники на машину. С удаленкой этих трат и рисков просто не возникает.
Мне кажется, по своей воле я уже не пойду работать в офис. Единственное, чего мне порой не хватает, так это личного общения. Но в целом это вопрос решаемый.

Профессиональная деформация влияет на взаимоотношения с друзьями


К сожалению или к счастью, тестирование – это стиль жизни. Не могу говорить за всех, но именно так это происходит у меня.
Тестирование начинается с требований к проекту. Собственно, его задача – убедиться в том, что продукт этим требованиям соответствует. Целыми днями разыскивая и исправляя проблемы в чужом софте, ты начинаешь заниматься чем-то аналогичным и в своей жизни. Я всегда живу с ощущением того, что все должно соответствовать требованиям. Быть тестером – значит жить по правилам. И если кто-то или что-то выходит за рамки этих правил (законов или собственных норм, сформулированных в голове), у меня это вызывает какой-то когнитивный диссонанс. Я срочно пытаюсь исправить баг или хотя бы заявить о нем. При этом окружающие люди очень часто страдают от того, что ты им постоянно твердишь о неправильных поступках.
Кстати, все это не способствует устранению той самой нехватки личного общения.

Общий комфорт рабочего процесса значит больше, чем кажется на первый взгляд


Выше я говорил по большей части о проектах и взаимоотношении с командой. Но работа, даже удаленная, состоит не только из этих моментов. И вот тут многое зависит от проекта, в который ты попал.
Во-первых, есть банальное материальное обеспечение. Например, удобное кресло, на котором я сейчас сижу, а также 24-дюймовый монитор куплены за счет работодателя. Плюс всякие оплаты спорта и прочие бонусы.
Во-вторых, есть банальная самореализация. К примеру, в одном из проектов, в которых я участвовал (тестирование проекта заказчика на аутсорсинге), меня – единственного из аутсорсеров этой компании – привлекали к собеседованиям сотрудников на данный проект в офис и приглашали на корпоративные мероприятия. Реально ли это в компании, для которой тестеры – безликие винтики механизма? Сомневаюсь.

Так или иначе, мне нравится моя работа. И когда удается решать сложные задачи в интересном проекте, я испытываю настоящее удовлетворение. Однако развиваясь на этом поприще, стоит быть готовым к тому, что подходы к работе затронут все аспекты жизни. А если превратишься однажды в тестера со всеми тараканами, назад дороги не будет.

Автор статьи: Владимир Васяев, Ведущий специалист по автоматизированному тестированию программного обеспечения

P.S. Мы публикуем наши статьи на нескольких площадках Рунета. Подписывайтесь на наши страницы в VK, FB или Telegram-канал, чтобы узнавать обо всех наших публикациях и других новостях компании Maxilect.

habr.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *