что необходимо знать тестировщику
Как стать тестировщиком или каких знаний мы ждём от джуниора
Пара вводных слов
Всем доброго времени суток, меня зовут Туманов Дима. Сейчас я работаю в компании Rambler&Co и отвечаю за тестирование на проектах Афиши. В рамках данной статьи я развею несколько мифов об IT и тестировании в частности. Кроме того, приведу примеры из жизни как “не зная ничего” стать Junior QA Engineer в крупной компании.
Начало пути
Проработав почти два года в одной “мирной” госкорпорации в должности “ненастоящего инженера”, я осознал, что развитие остановилось. Я мог сидеть на одном месте и почти ничего не делать. В конечном итоге мои знания бы совсем отстали от реальной действительности и я бы стал невостребованным на рынке. В этот момент я принял решение о смене места и сути своей работы.
Вопрос №1 — “Какую область для работы выбрать”
Мой выбор основывался на нескольких фактах. Во-первых я хотел работать в быстро развивающейся отрасли. В этом я видел и вижу сейчас возможность постоянно расти в профессии, развивая себя в различных направлениях. Во-вторых я хотел уйти от бюрократии, жёстких регламентов и обязательного ношения костюмов жарким летом. Ну и последнее, но не по значению, я хотел делать действительно важное дело, ощущать близость конечного пользователя, понимать, что моя работа действительно нужна. Все три этих пункта я смог увидеть в IT-отрасли.
Вопрос №2 — “Какую профессию выбрать”
Для меня важным было некое совмещение гуманитарных и технических наук, то есть коммуникаций и инженерии. С одной стороны я не хотел быть только техническим специалистом и например писать лучший код на Java. С другой я хотел понимать как всё устроено изнутри. По этим причинам мой выбор пал на тестирование. Дополнительно к смежности профессии, описанной выше, в тестирование довольно просто попасть. Порог входа действительно небольшой.
Вопрос №3 — “Какую компанию выбрать”
По сути все компании можно классифицировать несколькими способами. Во-первых по отношению заказчик-разработчик. Есть принципиальная разница между компаниями аутсорсерами и продуктовыми компаниями. Для первых самым важным является продажа продукта. Да, есть имя компании, отзывы клиентов, но так или иначе заработок идёт от прямых продаж. Для вторых важным является иметь качественный и популярный продукт. На таком продукте можно разместить дорогую рекламу и заработать много денег. Поэтому с точки зрения тестирования сильная команда будет сформирована именно в продуктовой компании. Во-вторых компании стоит разделять на русские и импортные. На текущий момент тестирование остаётся слабо развитым направлением в России. Это даёт свои плюсы и оставляет возможность занять своё место под солнцем без сильных проблем. Но, с другой стороны, сужает выбор достойных мест для работы. Благо в крупных интернет компаниях рунета уже “пройден этап варварства и созданы первые государства”. Для меня было важно работать именно в русской компании. Это что-то вроде “странного” патриотизма, если хотите. Исходя из всего этого мой выбор пал на крупные продуктовые интернет компании России. Таких кстати совсем немного и вы легко можете найти их рейтинг в Forbes (2014, 2015, 2016).
Вопрос №4 — “Как решить проблему отсутствия опыта”
Парадокс подавляющего числа компаний заключается в необходимости опыта даже для начальных предложений. Ответ на вопрос как они вообще себе такое представляют я не нашёл до сих пор. Благо в неразберихе рождается всё новое и многие построили бизнесы на этой истории. Сеть сейчас кишит различными обучениями с практикой, среди которых есть действительно стоящие. С остальными знаниями, которые нужно приобрести, вроде без эксцессов, поэтому давайте обо всём по порядку.
Вопрос №5 — “Какие знания нужно получить и как это сделать”
Перспективы развития
Работа занимает треть нашей жизни. Если отбросить сон, то это вообще половина нашего времени. Единственно правильным считаю работать там и делать то, что действительно нравится. Помимо морального удовлетворения есть и материальные блага. Уровень зарплат по официальным источникам даже на старте превышает среднюю температуру по больнице. Наличие ДМС, скидки на фитнес или наличие зала внутри компании, бесплатные билеты на различные мероприятия и прочие бонусы конечно же присутствуют. К тому же работа оценивается по количеству сделанной работы, а никак не по проведённому на ней времени. В IT всегда гибкий график и “опоздание на 15 минут” никак не будет наказываться. Более того, на это даже никто не обратит внимание, потому что это действительно нормально. Роль тестировщика — это не окончание вашего движения, это лишь точка входа. После пары лет хорошей практики в тестировании вы сможете выбрать любой путь развития в компании.
Почему я уверен в вашем успехе
Как когда-то сказал Стив Джобс: “Нельзя соединить точки жизненного пути, смотря вперёд. Их можно соединить, только оглядываясь в прошлое”. Именно этот принцип и даёт мне уверенность в том, что стать тестировщиком и начать получать удовлетворение от работы может абсолютно каждый. Есть и другие примеры за последние несколько лет, которые только подтверждают доступность данной профессии. У меня был некий Challenge Accepted. В какой-то момент ко мне почти одновременно обратилось два человека, которых я очень хорошо знал. Один из них на тот момент работал в правоохранительных органах, другой был профессиональный военным. Схожесть ситуации была на лицо. Они большие молодцы и с большой настойчивостью проходили примерно описанный выше план. Такое самообучение и поиск самой работы у них заняло порядка трёх-четырёх месяцев. Сейчас они работают тестировщиками, имеют перспективы для развития, гибкий график и думаю много чего в их жизнях ещё изменилось.
Post Scriptum
Ещё раз подчеркну. Войти в данную профессию не сложно. Это сможет каждый. Дальнейшее развитие в IT зависит уже только от вас.
Кто такой тестировщик и как им стать с нуля
Разбираемся, кому подходит профессия и что нужно уметь QA-специалисту.
Тестировщики, или QA-инженеры, — это люди, которые проверяют, как работает программа или приложение. Они ищут ошибки, смотрят, чтобы программа делала именно то, что задумано, защищают продукт от хакеров, проверяют, как приложение работает на разных устройствах и в разных операционных системах.
Тем, кто не работал тестировщиком, кажется, что это очень просто: понажимал все кнопки подряд, нашёл ошибку, сказал разработчику, и всё. На самом деле тестировщик — это сложная и творческая профессия на стыке IT, UX-дизайна и продуктового менеджмента.
Что делает тестировщик
Честно говоря, тестировщикам действительно приходится тыкать на все кнопочки и ссылки, заполнять все формы и стараться совершить все возможные ошибки, которые могут прийти в голову пользователю. Без этого не обойтись.
Неполиткорректные разработчики из-за этого когда-то обидно называли тестировщиков «обезьянками-кликальщиками». Термин был так распространён, что Android назвал свой инструмент для автоматизации тестирования MonkeyRunner — в том смысле, что он как обезьянка, только быстрее.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Но не думайте, что тестировщики лишь хаотично бьют по клавишам в надежде найти баг, — это непродуктивно. У них есть собственные методы для определения слабых мест программы и быстрого поиска ошибок.
QA-инженеры придумывают инструкции для тестирования — тест-кейсы. На элементарном уровне это выглядит так: аналитики пишут требования — какие данные должны быть на входе, как они обрабатываются, что должно получиться в результате; тестировщики пишут пошаговые инструкции для проверки программы на соответствие этим требованиям.
Тестировщик должен скрупулёзно проверить, что будет, если совершить какое-то действие, и соответствует ли результат ожидаемому.
Но ошибки коварны — в лабораторных условиях они могут себя и не проявить, зато пользователь наткнётся на них после релиза. Поэтому QA-инженеры придумывают разные стандартные и нестандартные ситуации, чтобы проверить, как поведёт себя программа. Это творческий процесс, для поиска скрытых багов приходится проявлять смекалку и аналитические способности.
Нужно предусмотреть все возможные и невозможные варианты. Что будет, если пользователь введёт цифры вместо букв? А что, если у него компьютер глючный? А вдруг сразу много пользователей будут работать и перегрузят систему?
Работа тестировщика — это бесконечное приближение к совершенству. Невозможно проверить всё, поэтому тестировщик должен работать так, чтобы совершить минимум действий, но найти максимум ошибок.
Мануальщики и автотестеры
Облегчить работу тестировщика помогают программы для автоматического тестирования. Автоматизация сокращает время тестирования и уменьшает рутину в работе. В больших проектах без автоматизации не обойтись: там очень много элементарных повторяющихся действий, никакого времени не хватит, чтобы все их проделать.
Всех тестировщиков делят на мануальщиков и автотестеров. Первые ищут ошибки в коде вручную, вторые пишут программы, которые делают это автоматически. Но это очень условное деление. Вы не найдёте автоматизатора, который не умел бы тестировать программу вручную. А многие мануальные тестировщики не любят рутину, поэтому осваивают языки программирования и пишут автоматические тесты. Опытные специалисты могут выполнять работу и мануальщика, и автотестера.
Может ли новичок-нетехнарь стать хорошим QA-специалистом
Порог входа в тестирование довольно низкий. Чтобы стать тестировщиком, не требуется техническое образование. Главное, чтобы человеку была интересна сфера IT и он хотел развиваться в этом направлении. Об этом говорит в своём интервью на hh.ru руководитель департамента обеспечения качества ПО Veeam Software Игорь Кацев.
На сайте Software-Testing.ru опрашивали тестировщиков из России и СНГ по поводу их образования. Оказалось, что в профессию приходят и достигают в ней карьерных высот разные люди: технари, гуманитарии, экономисты, юристы, люди с двумя высшими и люди без диплома вообще.
Насколько востребована профессия тестировщика
Тестировщики нужны во всех мало-мальски серьёзных IT-проектах. Большие компании предпочитают нанимать их в штат, малые работают с фрилансерами. О том, насколько востребованы QA-специалисты, говорят данные с сайтов по поиску работы:
Мануальщиков, не понимающих кода, работодатели не любят, даже если они прекрасно составляют тесты. Но и автоматизаторы, не знающие основ тестирования, тоже никому не интересны.
Вот, например, скрин с hh.ru, где работодатель перечисляет требования к тестировщику:
Большим спросом пользуются универсалы, владеющие современными методами тестирования, знающие языки программирования, умеющие составлять и автоматизировать тесты, например:
На какую зарплату можно рассчитывать
Заработная плата тестировщика в регионах — от 55 до 60 тысяч рублей, а в Москве — 80–150 тысяч.
Новички могут рассчитывать на зарплату от 40 тысяч рублей, специалисты высокого уровня получают 220–300 тысяч.
Как развиваться тестировщику
Путей для карьерного роста много. Некоторые начинают с тестирования, чтобы потом уйти в разработку, но это не единственный вариант — можно развиваться и внутри профессии.
Младший специалист тестирует программы вручную по готовым тест-кейсам. Чтобы из «обезьянки» стать мидлом, нужно развиваться: досконально изучать проект, знать язык кода и основы автоматического тестирования.
Если джуниор хорошо себя зарекомендует, то через 2-3 года получит повышение и станет мидлом. Будет самостоятельно составлять тест-кейсы и заполнять документацию.
Ещё через год-полтора успешный мидл может претендовать на должность старшего специалиста (Senior QA Engineer). Его круг задач расширяется: синьор планирует работы по тестированию, контролирует работу джунов.
Лет через пять можно стать тимлидом — руководителем команды тестировщиков. От тимлида требуются профессиональные компетенции, навыки менеджмента, умение решать сложные задачи.
Так происходит карьерный рост специалиста по вертикали. Но на практике тестировщики часто выбирают развитие внутри профессии — например, специализации по тестированию:
Какие личные качества необходимы тестировщику
Кроме того, в тестировании очень важны личные качества специалиста. Вот список основных, без которых точно не обойтись:
Что надо уметь
От тестировщика требуется:
Кроме того, тестировщик должен владеть инструментами ручного и автоматического тестирования. Это могут быть:
Для автоматизации тестов понадобятся системы тестирования веб-приложений, программы для функционального и нагрузочного тестирования.
Ну и обязательно потребуется английский язык — для чтения и заполнения технической документации.
Где всему этому научиться
Если вас увлекла профессия тестировщика, можно самостоятельно изучить методики тестирования по книгам, мануалам и видео, а затем попытаться устроиться на работу на junior-позицию. Этот вариант рабочий, но займёт много времени.
Более простой способ стать тестировщиком — пройти обучение на онлайн-курсах. Вы освоите необходимые техники и инструменты, получите практический опыт тестирования крупного проекта. После обучения наши успешные студенты становятся специалистами middle-уровня.
Как стать тестировщиком с нуля
Основы тестирования можно освоить без курсов за 120K. Наш QA-инженер Антон в прошлом работал на стройке и самостоятельно переучился на тестировщика игр за полгода. В статье он расскажет, как нашел бесплатный курс, сколько часов в день тратил на теорию и зачем в перерывах между занятиями рубил дрова.
«Ребята, работаю охранником, мне 40 лет. На кого пойти переучиться?» Этот пост на Пикабу сразу меня зацепил: я мечтал бросить работу на стройке, но не знал, чем зарабатывать дальше. В комментариях увидел ссылку на бесплатный курс по QA. Посмотрел вводный урок о профессии тестировщика и на следующий день уволился.
Видео, после которого я решил учиться на тестировщика. Скриншот с YouTube
Составьте план обучения
После увольнения устроил себе долгий-долгий отпуск. Шучу 🙂 Сразу сел за курс и, вдохновленный, решил изучать его по 8 часов в день. Не считал, сколько месяцев буду осваивать основы тестирования, а потом искать работу. Не считал, сколько денег нужно на этот период.
У нас с женой было отложено около 90 тысяч, казалось, нам хватит надолго: машины нет, квартира своя. Ели гречку, макароны, сосиски, хлеб. Из развлечений оставили только прогулки по улице.
Отложенные деньги закончились через 4 месяца, а я еще не открывал сайты с вакансиями. Пришлось переехать к родителям жены: мы не могли даже оплатить коммуналку. Тогда я поставил себе дедлайн — через 2 месяца устроиться в IT-компанию.
Совет: сразу решите, когда закончите учебу и станете искать работу. Рассчитайте, сколько денег нужно на этот период. Не начинайте ничего без финансовой подушки.
Найдите базовый курс для тестировщиков
Я не хотел платить адские деньги за курсы: в интернете есть тысячи бесплатных материалов по основам тестирования. Но в них легко запутаться, особенно когда не знаешь базу. Поэтому я сосредоточился на бесплатном курсе Михаила Портнова «Тестирование программного обеспечения в США», который рекомендовали на Пикабу.
Курс — топ за свои деньги 🙂 Во время уроков Михаил Портнов шарит экран компьютера и показывает, как ищет баги и пишет баг-репорты. Иногда он отвлекается от теории и рассказывает истории из жизни, чтобы мотивировать новичков. В курсе 23 видео по 2 часа, есть проверочные онлайн-тесты и практические задания. Минус — нет обратной связи.
Пример домашнего задания из курса Михаила Портнова. Скриншот с YouTube
Чтобы лучше запомнить уроки, я конспектировал их от руки. Не забивал на домашние задания, старался сделать на «отлично» — как если бы от качества зависело, отчислят меня с курса или нет. В конце дня перечитывал свои конспекты и вслух пересказывал их жене.
Конспект от руки, как в универе
Совет: заучивайте лекции, делайте домашки, и тогда любой курс будет работать.
Ограничивайте и сортируйте информацию
К базовому курсу я подключал другие источники. Если в уроке попадался незнакомый термин — какая-нибудь «верификация» или «валидация», — то ставил видео на паузу и шел гуглить. Изучал все статьи подряд. Думал, чем больше прочитаю, тем лучше разберусь, но по факту либо читал одну и ту же информацию в разной подаче, либо углублялся в экспертные дебри, в которых ничего не понимал. В итоге решил смотреть не более двух-трех сайтов по непонятной теме.
Когда серфишь, список закладок растет в геометрической прогрессии. У каждой статьи по десять ссылок на другие статьи, а у тех статей — еще десять. Под конец обучения я боялся открывать свои закладки: там царил неудержимый хаос. Я так и не решился его упорядочить и потерял много классных ресурсов.
Совет: не пытайтесь прочитать весь интернет. Изучайте темы:
— как составлять тест-кейсы,
— как составлять чек-листы,
— что такое классы эквивалентности и как их выделять,
— что такое метод граничных значений,
— как правильно оформить баг,
— какие бывают виды и уровни тестирования,
— что такое клиент-серверная архитектура и как она работает.
Сохраняйте полезную информацию по этим темам в закладки. Сортируйте закладки по папкам.
Занимайтесь краудтестингом
Как только я прошел половину курса, захотел применить свои знания на практике.
Чтобы получать много заказов, нужно много девайсов. У меня был только комп, мой мобильник и мобильник жены. Я поставил виртуальные машины с различными ОС и Android Studio на свою винду. Так набралось 20 девайсов, которые я и указал в профиле. С инвайтами проблем не было.
Проблемы были с оформлением багов. Мне возвращали баг-репорты, потому что неправильно называл баги, описывал их не по ТЗ, прикреплял мало скриншотов. Я переделывал, переделывал и еще раз переделывал. В итоге за несколько месяцев на краудтестинге научился правильно оформлять баг-репорты.
Совет: сосредоточьтесь на качестве баг-репортов, а не на их количестве.
Отдыхайте от учебы (хоть иногда)
Освоением новой профессии я занимался по 11 часов в день: 8 часов на теорию и 3 — на практику. Во время обеда быстро грел еду и сидел с тарелкой за компьютером. Когда голова совсем закипала, позволял себе максимум 5 минут, чтобы встать со стула и пройтись по комнате. Никаких соцсетей, просмотра новостей и видосиков на Ютубе.
Такой экстремальный режим измотал меня: хуже запоминал информацию, быстро уставал. Поэтому решил делать нормальные перемены в течение дня — по 15–20 минут каждые 2 часа. В это время гулял вокруг дома, рубил дрова, помогал с домашней работой. Если не находил проект на краудтестинге, то вечером со спокойной совестью отдыхал.
Совет: устраивайте перемены по 15 минут каждые несколько часов. Полноценно отдыхайте по вечерам.
Смотрите, читайте, слушайте
Сложно учиться 8 часов подряд, даже с небольшими передышками в течение дня. Чтобы голова не закипала, я постоянно переключался между просмотром видео, чтением бумажной книги, изучением сайта и т. д.
Как это выглядело? Когда начинал тупить над видеоуроком, переключался на чтение книги. Когда начинал перечитывать абзац по сто раз, включал подкаст про тестирование и ложился на диван. Когда переставал слышать информацию, открывал форум по тестированию. И так по кругу. Иногда в течение часа менял источники каждые 20 минут.
Совет: переключайтесь между источниками информации, как только начинаете тупить. Заранее составьте список книг, сайтов, подкастов или воспользуйтесь перечнем, который я спрятал под кат в конце статьи.
Ищите вакансии на позицию интерна
Чтобы стать тестировщиком с нуля, я потратил полгода. Первые четыре месяца просто учился, оставшиеся два — учился и искал работу. Искать было тяжело, получил 15 отказов и почти отчаялся, но тут мне попалась вакансия Plarium Krasnodar. Они набирали тестировщиков онлайн-игры без опыта работы на позицию интернов. Интерны — это специалисты начального уровня: компания обучает их, так как видит потенциал.
Мое сопроводительное письмо в одну из компаний. Только за образец брать не надо, ладно?
Теоретические знания и опыт в краудтестинге помогли мне выполнить тестовое задание, а на собеседовании ребята расспрашивали про мое самообразование. Через день позвонила HR и сказала, что меня берут в интернатуру. Первые 3 месяца я обучался под руководством крутого тестировщика, потом сдал финальный тест и стал самостоятельно заводить баги. В этом месте звучат фанфары, и занавес медленно опускается 🙂
Не совет: я не знаю, как закончить статью. Писать что-то из серии «Иди к своей цели» или «Ученье — свет» не хочется. Поэтому беру помощь Хабра. Опытные тестировщики, давайте вместе сделаем статью полезной. Что еще можно почитать/посмотреть новичкам? Какие курсы рекомендуете?
Книги
«Тестирование программного обеспечения. Базовый курс», С. Куликов. Написана простым языком, с юмором.
«Тестирование программного обеспечения», С. Канер, Д. Фолк, Е. К. Нгуен. Книга сложная. Осилят не все.
«Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах», Р. Савин. Для новичков, без сложных терминов.
«Быстрое тестирование», Р. Калбертсон, К. Браун, Г. Кобб. Книга о том, как тестировать быстро и качественно.
«Кровь, пот и пиксели. Обратная сторона индустрии видеоигр», Дж. Шрейер. Прочитайте, если хотите идти в геймдев.
«Как тестируют в Google», Дж. Уиттакер, Дж. Арбон, Дж. Кароло. Общая информация о работе QA в большой корпорации.
Сайты
Сообщество программистов DOU. Новости, тренды тестирования и IT-индустрии в целом.
Software-Testing.Ru. В разделе «Библиотека» есть подраздел для новичков — «Начинающему тестировщику». Там много мегаполезных статей.
Testbase.ru. Коротко об основах тестирования. Помогает разобраться в терминах.
Группы ВКонтакте
QA тестирование и котики. Вакансии, приколы, практические советы.
Ключ седого тестировщика. Создатели сообщества регулярно отвечают на вопросы новичков.
QA Club. Много видеоконтента о тестировании.
QA NINJAS. Работающий тестировщик делится своим опытом в статьях.
Телеграм-каналы
QA — Курсы и образование. Обсуждение курсов, книг, мастер-классов по тестированию.
QA — Bad Company! Про компании, в которые стоит или не стоит идти тестировщику.