Kарьера
Профессиональный рост в тестировании зачастую связан с ростом ответственности и повышением сложности выполняемых задач. Ещё одной возможность для роста, явялется профессиональное развитие в направлении новых технологий и инструментов применяемых в тестировании ПО.
В формальных отношениях “специалист-компания”, повышение может фиксироваться переводом в другую роль: тестировщик -> ведущий тестировщик -> руководитель группы -> менеджер по тестированию.
Рассмотрим роли в тестировании ПО, чтобы понять какие задачи обычно входят в зону ответственности Специалиста.
Роли в тестировании
Тест-менеджер, менеджер проекта по тестированию
Test Manager, Test Project Manager
Производит управленческий контроль (management oversight). Человек, который часто совмещает в себе роли и ведущего тестировщика и менеджера проекта по тестированию. Отвечает за успешность проекта по тестированию, мотивацию членов команды тестирования, выбор и внедрение практик и инструментов тестирования, а также взаимодействие с командами разработки, внедрения, эксплуатации и управления проектом.
Ответственность:
- Обеспечивает техническое направление
- Получает необходимые ресурсы
- Обеспечивает управленческую отчётность
Тест дизайнер
Test Designer
Определяет, приоритизирует и обеспечивает разработку тестовых случаев. Устанавливает и определяет операции, атрибуты и связи тестовых классов. Проще говоря описывает тестовые сценарии на уровне достаточном для проведения тестирования. Формат создаваемых тест-дизайнером документов может существенно отличаться от проекта к проекту: от описания тест-кейсов или тестовых сценариев (test case) в обычных вордовских или ексельных файлах до создания формальных спецификаций, которые будут передаваться в выделенную группу автоматизации тестирования.
Ответственность:
- Разрабатывает стратегию и план тестирования
- Разрабатывает модель тестирования
- Разрабатывает тестовые сценарии
- Оценивает эффективность тестирования
Тестировщик, Инженер по тестированию
Tester, software test engineer
Выполняет тесты и проводит испытания. Роль, которая крайне редко встречается в “чистом виде”. Обычно, тестировщик это основная “боевая единица” команды тестирования, в определённом смысле “универсальный солдат”, который самостоятельно проектирует тестовые сценарии, проводит тестирование, анализирует полученные результаты, фиксирует ошибки, проводит перетестирование исправленных ошибок, вносит предложения об улучшении и задаёт вопросы команде разработке, аналитикам и заказчику.
Ответственность:
- Выполняет тесты
- Фиксирует результаты
- Восстанавливает тесты и систему после сбоев
- Документирует запросы на изменение
Инженер по автоматизированному тестированию
Automated test engineer, Software developer in automated testing
Обеспечивает проектирование, разработку и поддержку тестовых процедур и скриптов. Выполняет запись, отладку и интеграцию с наборами тестовых данных тестовых процедур и скриптов в среде автоматизации тестирования.
На практике выделяется два типа инженеров автоматизации, которые занимаются автоматизацией функционального тестирования и автоматизацией нагрузочного тестирования (тестирования производительности) ПО.
К автоматизации функционального тестирования ПО относятся как методы record-playback автоматизации (запись-отладка-прогон), когда записываются или программируются действия эмулирующие поведение конечного пользователя по отношению к пользовательскому интерфейсу (GUI) тестируемой программы, так и методы автоматизации модульного и интеграционного тестирования, когда тестирование производится путём программирования вызовов методов и функций кода тестируемой системы и автоматизированного анализа полученных ответов. Говоря проще, может записываться каждый клик и выбор-ввод значений в форме приложения, а может покрываться тестовым программным кодом сам код системы под тестом.
Автоматизация нагрузочного тестирования или тестирование производительности информационных систем, выполняется путём создания релевантной (максимально отображающей или повторяющей реальную эксплуатационную нагрузку) методом записи и воспроизведения пользовательских сессий на уровне протоколов обмена запросами и данными или системных вызовов функций.
Ответственность:
- Создаёт тестовые скрипты
- Отвечает за поддержание тестовых скриптов в актуальном состоянии в процессе модификации системы
- Анализирует результаты тестовых прогонов
- Восстанавливает систему и данные после теста (удачного или неудачного)
- Анализирует уровень достигнутого тестового покрытия
Администратор тестовой системы, приложений поддерживающих жизненный цикл тестирования
Test System Administrator
Обеспечивает управление и поддержку тестовых окружений и данных. Часто роль совмещается с ролью “универсального солдата” и тестовые окружения (даже достаточно сложные и большие тестовые стенды с применением технологий виртуальных сред) создают и администрируют сами тестировщики.
Ответственность:
- Администрирует систему управления тестированием
- Инсталлирует и управляет доступом к тестовым системам
Администратор баз данных, менеджер баз данных
Database Administrator, Database Manager
* следует отметить, не совсем тестовая роль, но в достаточно больших проектных командах её иногда выделяют
Обеспечивает управление и поддержку тестовых данных (баз данных). Также как и администратор тестовой системы, зачастую эту роль выполняет кто-то из команды тестирования или каждый тестировщик для своего тестового стенда.
Ответственность:
- Администрирует тестовые данные (базы данных)
Разработчик тестов, программист тестовой функциональности
Implementer, test developer.
Разрабатывает юнит тесты (unit tests), тестовые классы и тестовые наборы (пакеты). Зачастую это непосредственно разработчик-программист, но в некоторых проектах, эти виды тестирования также выполняют тестировщики соответствующей квалификации и обладающие опытом работы в программировании.
Ответственность:
- Создаёт тестовые классы, собирает тестовые пакеты и интегрирует их с тестовую модель
Карьерный рост
Обычно с опытом тестировщик, как и любой другой IT-специалист начинает отвечать за других специалистов. Такой рост обычно можно выразить следующей структурой:
- Тестировщик: выполняет тестирование, фиксирует ошибки, проводит повторное тестирование;
- Ведущий тестировщик: отвечает за тестирование определённой подсистемы или набора модулей в системе или занимается разработкой тестовых скриптов в среде автоматизации тестирования
- Руководитель группы тестирования: ставит задачи другим тестировщикам, может руководить группой до 4-5 тестировщиков
- Менеджер по тестированию: отвечает за тестирование в проекте на уровне ресурсов и достигнутых результатов
Следует отметить, что это разделение условно и зачастую зависит от принятого в компании штатного расписания. Зачастую ограничиваются линейкой: тестировщик -> ведущий тестировщик -> тест менеджер.
По-сути, карьерный рост может быть связан как с вертикальным направлением роста “Тестировщик” -> “Ведущий тестировщик” -> “Менеджер по тестированию”, так и с технологической составляющей: “Тестировщик” -> “Тест дизайнер” или “Тест аналитик” -> “Инженер автоматизированного тестирования”.
Оба направления не исключают друг-друга, так как рост в сторону освоения техник и инструментов автоматизированного тестирования может сопровождаться ростом в вертикальном плане. Например линейка: “Тестировщик” -> “Инженер автоматизированного тестирования” -> “Руководитель группы автоматизации тестирования” -> “Руководитель департамента нагрузочного тестирования” вполне логична.
Рост внутри компаний зачастую зависит от масштабов самой компании, а вот профессиональный рост специалиста ограничивается только его амбициями, желанием изучать техники, инструменты и процессы тестирования ПО.
QA как “следующая ступенька”
QA (quality assurance) - область знаний, которая отвечает за “обеспечение качества”, в отличии от тестирования, которое чаще всего является “контролем качества”.
В отрасли тестирования существуют как сложившиеся традиции так и путаница. Часто путаница возникает и вокруг термина QA, который иногда приравнивают к “software testing”, хотя тестирование является одной из составляющих процесса по обеспечению качества программного продукта. Из путаницы QA=”software testing” растёт путаница с терминологией и названием роли “QA менеджер”.
В 95% случаев термином “QA менеджер” называют Тест-Менеджера. Исключением (5%) являются компании с выделенными отделами качества (не тестирования, а именно обеспечения качества процессов разработки и выпуска ПО) где есть роль Менеджера по качеству.
Зарплаты в тестировании
Для того, что бы оценить финансовую привлекательность профессии “Тестировщик ПО”, мы предлагаем вам изучить раздел посвящённый зарплатам в тестировании на сервере it4business.ru: “Зарплаты тестировщиков ПО”
Если вы воспользовались вышеизложенной информацией или считаете этот сайт полезным, поставьте ссылку на http://tester.com.ua/career