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

Есть ли будущее у функционального тестировщика?

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

Тестирование в контексте программного обеспечения.

Тестирование ПО появилось в тот же момент, когда было разработано первое программное обеспечение (в середине 20-го века). С тех пор процесс тестирования ПО прошёл несколько стадий эволюции:

  1. Показать, что продукт выполняет заявленные требования;
  2. Помимо этого, найти у продукта изъяны и попробовать сломать его;
  3. Начать тестировать не только продукт, но и все артефакты проекта (требования, дизайны и т.д.) на ранних этапах. Ведь исправить ошибку в требованиях проще, чем баг в коде;
  4. Делать так, чтобы дефекты не появлялись даже на ранних этапах продукта.

Собственно первые 3 этапа эволюции и сформировали современное понятие тестирования ПО. А последний вылился в отдельное направление, которое называется Quality Assurance (Обеспечение качества).

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

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

Чем занимается тестировщик?

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

В любом случае тестирование — это комплексный процесс, который состоит из следующих фаз:

  1. Планирование и контроль тестирования;
  2. Анализ тестовых условий и создание тестов;
  3. Организация написанных тестов и их прохождение;
  4. Завершение тестирования и создание отчётности.

Соответственно, на каждом из этапов тестировщик выполняет определённый набор активностей. Более подробно с ними можно познакомиться в статье Фундаментальный процесс тестирования.

Кроме этого, работа тестировщика разбавляется различными коммуникациями и техническими задачами.

Обычный день тестировщика можно представить примерно так:

  • 10:00 — Утренний кофе
  • 10:20 — Чтение писем и ответы на них
  • 11:00 — Работа с документацией
  • 12:00 — Ежедневный статус митинг
  • 12:30 — Настройка окружения
  • 13:00 — Обед 
  • 14:00 — Тестирование
  • 17:30 — Коммуникация с командой
  • 18.00 — Анализ проделанной и планирование последующей работы
  • 18:30 — Составление отчёта

В результате этого мы и получаем на столько интересную и разнообразную работу.

Куда может расти специалист по тестированию?

Как и специалисты в других IT направлениях, тестировщик может расти от Junior до Chief специалиста.

Перспективы развития тестировщика

Но на самом деле крайне низкий процент людей доходит до позиции Chief. Это происходит не из-за того, что на этот уровень почти невозможно попасть.

Причина тому — это лёгкий переход из инженеров по тестированию в другие направления.

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

Перспективы развития тестировщика

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

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

В этом направлении возможны следующие варианты развития карьеры:

  • Test Management — управление тестированием на проектах;
  • Project\Delivery — управление проектами;
  • Resource\Group Management — управление людьми в рамках компании;
  • Team Leading — управление людьми в рамках проектной команды;
  • Mentorship\Training — обучение людей.

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

Как выглядит тестировщик будущего?

Мы с вами живём в век стартапов и Agile процессов. Следовательно, чтобы быть конкурентными нам, специалистам по тестированию нужно тоже быть «гибкими».

По этой причине сейчас на рынке очень востребованы «Mixed» специалисты. Такие, как тестировщики\автоматизаторы, тестировщики\бизнес-аналитики, тестировщики\менеджеры и т.д. Чем больше бизнес задач вы сможете выполнять, тем ценнее вы будете как специалист.

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

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

Будущее тестирования и автоматизации выглядит примерно так:

  • Автоматизатор — создаёт средства\тулы\фреймворки с помощью которых создаются автотесты;
  • Тестировщик — помимо основных своих активностей, создаёт автотесты при помощи уже готовых средств автоматизации.

Вывод:

Отвечая на вопрос «Есть ли будущее у функционального тестировщика?», говорю однозначно «да». Мир никуда не денется от тестирования. Информационные системы становятся всё более комплексными, что вызывает необходимость в качественном тестировании. Автоматизация ещё не скоро полностью заменит ручной труд тестировщика. А когда это случится, она наверняка уже будет очень простой и доступной для любого человека 🙂