На 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 % тестировщиков, принявших участие в специализированном опросе (результаты здесь, англ.).
Финальный этап — получение работы
О том, как получить работу тестировщику программного обеспечения, подробно рассказывать уже не будем. Это очень обширная тема, которую раскрывали много раз. Главное — иметь базовый опыт и знания, после чего можно пробовать рассылать резюме, ходить на собеседования и пробовать себя в роли самого что ни на есть настоящего тестировщика.
Было бы интересно услышать историю успеха тестировщиков ПО с Хабра. Начинали ли вы с нуля, как готовились к новой для себя профессии, что помогло получить работу? И наоборот, если у вас возникли сложности на пути, расскажите о них тоже, иначе получается "эффект выжившего", а ведь крайне полезен как раз опыт тех, кто столкнулся с препятствиями.