Привет, начинающий (или уже опытный) тестировщик!
В первой статье хотел бы затронуть следующее:
1) Что такое тестирование в общих словах (все мелочи будут раскрыты в следующих частях);
2) Основные мифы о тестировании у новичков;
3) Что нужно знать начинающему специалисту в современных реалиях?
Итак, начнем. Огромная просьба сразу завести текстовый файлик (глоссарий, куда будете записывать все новые определения).
Базовое понятие тестирования.
Официальное определение по версии ISTQB (International Software Testing Qualifications Board) выглядит так:
Тестирование - процесс, содержащий в себе все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки программного продукта и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они подходят для заявленных целей и для определения дефектов.
Выглядит громоздки и не совсем понятно. Но сразу оговорюсь ISTQB - это довольно формализованное сертифицирование специалистов, которое новичку вряд ли нужно. Да и более опытным специалистам тоже. Но для себя, либо на перспективу работы за рубежом попробовать стоит (следует уточнить стоимость сертификации (на момент написания статьи - 229$). Тест сдать сложно, поэтому готовьтесь на несколько итераций. За все, конечно же, нужно платить :)
FYI: ISTQB (International software testing qualification board) — Международный совет по тестированию программного обеспечения.
На данный момент же предлагаю использовать более понятное определение:
Тестирование программного обеспечения – это метод проверки соответствия фактического программного продукта ожидаемым требованиям.
И при этом ничего больше! Заметьте, тестирование не ставит под собой задачу "поиска багов", основная цель тестирования - проверить соответствие спецификации (документированных требований к продукту от заказчика) с получившимся продуктом.
Также к целям тестирования стоит отнести:
- Проверка, все ли указанные требования выполнены;
- Создание уверенности в уровне качества объекта тестирования;
- Предотвращение дефектов (например, когда вы тестируете документацию к продукту);
- Обнаружение дефектов;
- Предоставление заинтересованным лицам достаточной информации, позволяющей им принять обоснованные решения о работоспособности продукта. Нужно понять, что далеко не всегда продукт выводится в промышленность, не имея дефектов вообще. Есть также критерии успешности, которые согласовывает заказчик продукта с командой, которая этот продукт будет тестировать.
Основные мифы о тестировании у новичков
Легкий вход в IT.
Вероятно, лет 10 назад я бы согласился с этим мифом. Сейчас же, когда спрос на работу в IT увеличился (в связи с мнением о высоких заработных планах, возможностью удаленной работы и мнением, что пройдя курсы можно сразу рваться в бой).
Это увеличение влечёт за собой лишь одно - повышение требований к кандидатам и снижение уровня заработка для начинающих специалистов.
Ответ как использовать этот миф на пользу: учиться усерднее, чем ваши сокурсники, друзья; практиковаться; представлять работодателю уровень знаний, которые будут отличаться от общей массы.
Тестирование - легкий вход в разработку.
Нет. Если хотите стать разработчиком (именно классическим разработчиком, а не, например, автоматизатором тестирования) сразу выбирайте траекторию по разработке. Онлайн курсы, литература, бесплатные источники позволяют это сделать. Подходите к построению своей карьеры грамотно. Если же вы уже серьезный разработчик, то, конечно, изучить основы тестирования пригодится, чтобы понять как на ваш код (продукт) смотрят ваши коллеги.
Тестировщиком может стать каждый.
Сам тезис не является мифом. Просто хотел сразу сказать: может каждый, приложив достаточно (даже МНОГО) усилий, чтобы стать специалистом. Стать лучше без боли - невозможно. Главное - решить, действительно ли эта ваше цель?
По поводу профориентации расписывать не буду. В интернете довольно много тестов/чек-листов по определению подходящих вам профессий в IT.
Необходимо техническое образование.
Да, техническое образование это бонус в копилку. Но ДАЛЕКО не панацея. На собеседовании никто не будет смотреть на ваше образование, регалии и так далее. Будут смотреть на ваше знание теории, решение практических задач и умение думать логически.
Тестировщик не имеет возможности продвинуться по карьерной лестнице.
Это абсолютный миф.
Во-первых, есть вертикальная лестница по типу: младший тестировщик, старший тестировщик и так далее. В основном выделяют (itnern или trainee - стажёр, junior - начинающий, middle - старший, senior - ведущий, lead - главный).
Также стоит обязательно (!!!) понять, что тестировщик и QA engineer это не одно и то же:
Tester (тестировщик) — разработка и прохождение тест-кейсов, локализация дефектов и прочее.
QC (контроль качества продукта) — анализ результатов тестирования и качества новых версий выпускаемого продукта в процессе разработки.
QA (обеспечение качества)— изучение возможностей по изменению и улучшению процесса разработки, улучшению коммуникаций в команде.
Но сразу отмечу - в России и странах СНГ под всеми этими понятиями часто подразумевают одно и то же.
А теперь о знаниях. Для самого начинающего тестировщика.
Что нужно знать начинающему специалисту в современных реалиях?
Поверьте, я не пытаюсь вас испугать объёмностью списка и даже хочу сказать, что сложного, научного, тут ничего нет. Все качественные курсы дают данные знания. Также тут нет новых технологий, тем самым информации в интернете более чем достаточно:
1) Отличное знание основ тестирования (определения, техники тест-дизайна, составление документаций, виды тестирования) - всё это я хочу покрыть серией своих статей.
Не могу оценить в среднем количество времени для освоения знаний. Думаю, месяца 2-3 точно нужно заложить.
Как материал для изучения:
Тестирование программного обеспечения. Куликов C.С.
Тестирование Дот Ком. Савин Р.
2) Знание SQL (если совсем просто - язык для работы с определенными, табличными базами данных). Достаточно навыков, которые даны в бесплатном курсе: https://stepik.org/course/63054/syllabus
Курс можно пройти хоть за день, тут вопрос ваших возможностей усвоения и запоминания.
3) Основы Linux: https://stepik.org/course/762/syllabus
Курс можно пройти хоть за день, тут вопрос ваших возможностей усвоения и запоминания.
4) Компьютерные сети (самая база, без дебрей). Очень крутое поэтапное объяснение (56 видео), если смотреть по 5 в день (займет час-полтора), то за 10 дней ваши знания уже превзойдут многих кандидатов.
Также стоит посмотреть про безопасность (12 видео):
5) Навыки работы с инструментами тестирования по API (postman - обязательно, soapUI - по желанию). В среднем изучение займет 1-2 недели.
6) Навыки работы со снифферами трафика (charles, fiddler, wireshark) - достаточно одного. Материалов в интернете очень много. Видео + практика займет 2-3 дня. Например:
7) Навыки работы с devtools. Информации более чем достаточно в интернете. В среднем займет недели две.
8) HTML/CSS хотя бы минимально (на уровне верстки очень простого сайта визитки). Достаточно бесплатных модулей на htmlacademy. Потребуется в среднем неделя-две. Крайне рекомендую создать себе сайт визитку с вашим фото, описанием, успехами (например, выполненные проекты на курсах, сертификаты и так далее).
9) XML и JSON - оба понятия гуглятся. Ознакомиться со всем материалом можно за час (поверхностный знаний для начинающих обычно достаточно).
10) Навыки работы с баг-трекинговой системой, любой (например, jira, redmine, яндекс трекер и так далее).
11) Также я бы изучил понятие регулярных выражений (regex). Количество видеоматериалов на эту тему безгранично. После понимания базовой концепции рекомендую пройти тренажер:
Отвёл я бы на это одну неделю.
12) Основы автоматизированного тестирования. Основы алгоритмов. Базовое освоение языка программирования. Базовое освоение автоматизации с использованием языка программирования. Тут оценка чисто индивидуальна. Данный пункт касается исключительно тех, кто планирует идти в автоматизацию.
Коллеги, будущие коллеги, буду рад всем вопросам в комментариях, на всё отвечу!
Если есть моменты с которыми вы не согласны, также пишите, будем думать и обсуждать.
В следующей статье расскажу про "плюсы" и "минусы" работы в QA, приведу анализ заработных плат со своими комментариями, а затем уже начнем погружаться в основы тестирования :)