Работа тестером – Сколько стоят тестировщики и от чего зависят их зарплаты? Строим портрет успешного QA-специалиста

Содержание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

alt

Суровая жизнь тестировщика игр / Habr

Оригинальная статья: «The Tough Life of a Games Tester».

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

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

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

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

Утомительные задания


Хотя работа и может показаться воплощением мечты в жизнь, Рубен говорит, что это совсем не так, будто ты целый день играешь в игры, еще и получаешь за это заработную плату. «Представьте ваш любимый фильм. Теперь возьмите любимый 30-секундный отрезок из этого фильма. Теперь просматривайте этот отрезок раз за разом, 12 часов в день, каждый день в течение двух месяцев. Когда вы закончите, ответьте мне: можете ли вы сказать, что то, чем вы занимались, — это целый день просматривали фильмы? Готов поспорить, что это совсем не так. Вам дают определенный участок игры, это — ваш участок и вы тестируете все, что попадается на нем, на протяжении нескольких месяцев».

Кроме того, тестеры не получают никакого удовольствия от выбора игры, в которую им предстоит играть. «Это очень скучно — снова и снова играть в игру для детей», — говорит Рич.

Фрэнк добавляет: «Я видел людей, которые раз и навсегда завязали с играми из-за разочарования в процессе работы и бесконечной монотонной игры в игру, которую ты ненавидишь, и сам бы ни за что не стал играть в нее. Ты просто становишься измученным».

Низкая заработная плата


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

Компании частенько платят наемным рабочим более высокую основную заработную плату вместо каких-либо премий или вознаграждений, но Дэнни зарабатывает всего 10 долларов в час. Отсюда можно сделать вывод, что средняя заработная плата тестировщика, работающего полный рабочий день, — это всего лишь $20,800 в год. Официальная минимальная плата — $7,25 в час, но тестировщики игр — работники информационной сферы, а не продавцы бургеров. Для того, чтобы тестировать и выносить суждения об играх, нужны определенные навыки и знания.

Допустим, что новички без опыта работы в игровой индустрии зарабатывают довольно-таки мало, но что насчет тестировщиков со стажем? Дэнни говорит: «Я работаю с парнем, который последние восемь лет только и делает, что пытается угодить руководству: никогда не спорит, делает все, что ему говорят. Но в тестировании он просто гений! После восьми лет работы он до сих пор получает только $14. Черт побери, я думаю, что мы заслуживаем большего, чем $10 в час». Он считает, что разработчики/издатели игр должны «предлагать и нам какие-нибудь премии или поощрения, как они делают это с остальной частью компании».

Нас не уважают


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

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

«Я абсолютно не одинок в своих чувствах», — добавляет он. «Возможно, большинство таких, как я, не стали бы высказывать свои недовольства из-за страха быть уволенными; а те, кто осмелился бы, уже давно вышли из игровой индустрии из-за тех условий, о которых я рассказываю».

Суровые рабочие условия


В отличие от обычного рабочего дня с 9 до 17, последние месяцы перед релизом видеоигры, когда все силы брошены на то, чтобы продукт вышел в срок, в компании называются «критическими».

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

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

Потеря сна — не единственное, что физически повлияло на Фрэнка и компанию. «Наше питание было просто ужасным! Единственное заведение, которое было открыто в ночные часы — был Макдоналдс, находящийся на станции Шеврон, и мы с насмешкой называли его «Шевроналдс». Я чувствовал себя, как кусок дерьма и просто хотел поскорее закончить со всем этим».

Рубен говорит, что вести здоровую семейную жизнь становится крайне тяжело. «Как только начинается сверхурочная работа, тебе кажется, что это не кончится никогда. Самый длинный период переработок в моей жизни длился более 7 месяцев, самая короткая рабочая неделя составляла 65 часов, а самая длинная — 92. Тогда мы работали над двумя проектами, которые просто срослись друг с другом».

Низкий уровень стабильности


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

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

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

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

Ты не в силах ничего изменить


Так как люди ошибочно полагают, что работа тестировщика заключается в том, что он целый день играет в игры, у компаний никогда нет недостатка в желающих устроиться на такую работу. «Любой человек в тестировании легкозаменяемый», — говорит Фрэнк. Рубен добавляет: «Если управлению не нравится кто-либо, они просто отказываются продлевать с ним контракт, таким образом избегая каких-либо трудностей. Это приводит к тому, что люди начинают жаловаться на то, что их работа стала более нагруженной или продолжительной, их называют скандалистами и просто не продлевают с ними контракт».

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

Могут ли тестировщики организовать свой собственный профсоюз? Хотя теоретически это и возможно, Рубен считает, что это нереально. «Образование подобного профсоюза на уровне тестировщиков практически невозможно по причине ужасного обращения с наемными работниками. Если ты попытаешься — твой контракт не будет продлен. Самое обидное — это то, что игровая индустрия настолько мала, что если по какой-либо причине ты будешь уволен, большинство компаний будет в курсе этого и не согласится взять тебя на работу».

Во всем виноват тестировщик


Даже после прохождения всех тестов и утверждения игры к релизу, на сегодняшний день не редкость то, что в игре все равно остаются очень большие баги и недочеты. Взять хотя бы версию Bethesda’s Skyrim для Playstation 3. Если тестировщики действительно так усиленно работали над ней, как было заявлено, то каким же образом в итоге в ней оказалось столько технических недоработок?

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

«Иногда игровые компании просто наугад выбирают те баги, которые должны быть исправлены», — говорит Трент. «Фишка тестирования в том, что не все играют в одну и ту же игру. В игре есть миллионы комбинаций, которыми может воспользоваться игрок, так что команда в 100, или даже меньше человек просто не в силах найти все недочеты, а все это всплывает в конечном продукте». В сочетании с тем, что некоторые баги не повторяются, это объясняет то, почему такие катастрофические проблемы способны просачиваться в игру. «Тысячу раз ты мог найти баг, но если ты детально не можешь объяснить, как он должен быть починен, ты не можешь учесть его, даже если он критичен для игры… Чтобы его наконец-таки приняли во внимание, нужно, чтобы он постоянно повторялся».

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

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

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

Заключение


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

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

Образ современного тестировщика. Что нужно знать и уметь / 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, а потому не судите строго и не забрасывайте тапками. Буду благодарен за конструктивную обратную связь.

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

Как стать тестировщиком или каких знаний мы ждём от джуниора / 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 зависит уже только от вас.

Как стать тестировщиком — необходимые знания и навыки / Mail.ru Group corporate blog / Habr


Источник

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

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


Кто может стать тестировщиком?

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

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


Образование, опыт и знания

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

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

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

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


  • Проведение и документирование автоматических и "ручных" тестов и процедур. Анализ результатов, составление отчетов о проблемах и ошибках.
  • Выполнение тестирования программного обеспечения в течение всего цикла разработки и жизненного цикла ПО.
  • Понимание различных методов разработки и организации работы над проектом, включая Agile и Scrum.
  • Владение несколькими инструментами тестирования.
  • Знакомство и общее владение UNIX, Linux и Windows, включая командную строку.
  • Умение работать одновременно над несколькими задачами.
  • Коммуникационный навык, как вербальный, так и письменный. Умение общаться с разработчиками, менеджментом, клиентами.
  • Базовое знание языков программирования и фреймворков, например, Java, JavaScript, C# или C++, SQL, Python, PHP и Ruby on Rails (не обязательно знать сразу все эти языки, это лишь пример).

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

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


Что, если опыта и знаний нет?

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

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

Для получения хорошей работы стоит попробовать пройти сертификацию. В США ценится ISTQB, сертификацию проводит организация American Software Testing Qualifications Board (ASTQB). Есть и международные сертификаты, например CSTE (сертификацию проводит The International Software Certification Board (ISCB)). Правда, во втором случае необходима степень бакалавра и двухлетний опыт работы в сфере IT.

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


Финальный этап — получение работы

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

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

Профессия инженер по тестированию. Обучение в сервисе Яндекс.Практикум

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

Когда объявили о запуске Яндекс.Практикума, я уже несколько месяцев как решила уходить со своей профессии, совсем не связанной с IT, во фронтенд. В моём багаже были базовые знания о JavaScript, HTML и CSS, огромная неуверенность в себе и вопрос «А что дальше?». После нескольких бесплатных курсов, статей, пары книг из списков «Каждый фронтендер должен прочитать» и туториалов я поняла, что хоть и могу решать отдельные задачи, но как подступиться к большим самостоятельным проектам — непонятно.

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

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

Принцип тренажёра не новый, такое я видела и раньше, но самое классное здесь — это самостоятельная работа над проектами. Она действительно самостоятельная. Отчётливо помню свой ужас во время первого домашнего задания, когда я увидела, что у меня есть просто статичный макет страницы. Пришлось открыть редактор и с нуля верстать полностью всё. Я думала не смогу. Я боялась, что результат будет настолько плох, что меня отчислят, потому что таким бездарям не место в программировании. И я отчётливо помню невероятное счастье, когда после проверки увидела комментарии ревьюера. Да, были ошибки, но кроме них у меня ещё был структурированный и логичный код, хорошая семантика, и я справилась с именованием классов по БЭМу. За 15 часов, которые я потратила на первое дз и правки, я выучила больше, чем за несколько месяцев самостоятельной практики, но, что важно, я почувствовала, что я могу.

Прошло почти 2 месяца после первого домашнего задания и около 2.5 месяцев — как я с Яндекс.Практикумом. В моём портфолио одностраничный сайт и большой адаптивный лендинг. Я узнала много интересного о вёрстке, научилась отлаживать код и уместно комментировать его, а впереди ещё много тем и дипломный проект. Осенью я планирую начать поиски своей первой работы во фронтенде. Большое спасибо всем из Яндекс.Практикума! Уверена, у нас всё получится.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Некоторые утверждают[источник не указан 3121 день], что специфика профессии заключается в видимом однообразии и монотонности трудового процесса; по мнению других[источник не указан 3121 день], тестирование является творческой исследовательской работой (в противовес стандартизированной разработке).[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.

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

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