Тестировщики работают в составе команды разработки некоего продукта – компьютерной программы, или онлайн магазина, или приложения в вашем телефоне. Такие команды обитают либо в специальных организациях, занимающимися производством программного обеспечения (в IT конторах), либо в специальных отделах при не IT организациях (банки, турфирмы, страховые компании – у многих есть свои собственные IT-отделы).
Первое, что приходит в голову при описании работы тестировщика – отдел качества при производстве. Прежде чем выпустить некий продукт (например, автомобиль, или кофеварку) специалисты отдела качества проверяют его – исправен ли, работает ли.
Тестировщики программного обеспечения тоже занимаются подобным – проверяют как работает программа, сайт, интернет-магазин или компьютерная игра, но это только часть их работы.
Тестировщик немного представитель интересов клиента или пользователя на территории разработчика. Тестировщик должен проверить, что программа не просто работает, а работает так, как будет удобно пользователю.
И еще тестировщик немного связующее звено между всеми участниками разработки (аналитиками, менеджерами, программистами). Если все они преследуют какие-то свои цели, тестировщик должен проверить, что программное обеспечение максимально соответствует всем этим целям (и если они взаимоисключающие, то доносить это до команды).
Из предыдущего абзаца вытекает следующий пункт – тестировщик немного психолог, потому, что доносить до коллег мысль, что они немного ошиблись так, чтобы коллеги не сильно расстроились, сложно, но мы стараемся. А также чтобы понять как будет пользователь использовать наш продукт – тут нужно не только глубокое знание своего пользователя, но и немного информации из курса психологии.
Разработчики (программисты) обычно видят только небольшую часть продукта, которую разрабатывают сами. Часто они понятия не имеют чем вообще занимается их продукт в целом и как он будет использоваться. У тестировщика обычно есть знание по всему продукту, обо всех его проблемах и о том какие вопросы возникают у пользователей.
Итого, чем занимается тестировщик на работе:
- Проверяет, что программа соответствует требованиям заказчика, здравому смыслу, удобна и безопасна в использовании.
- Находит ошибки, сообщает о них, а после того, как ошибки исправлены, проверяет снова – не поломалось ли при исправлении что-то другое.
- Знает программное обеспечение, его историю, слабые и сильные стороны, а также ближайшие планы развития.
- Предсказывает поведение пользователя (тестировщик немного оракул, хотя часто мои коллеги от этого открещиваются).
- Участвует в разработке ПО начиная с этапа планирования – чтобы можно было заранее учесть потенциальные проблемы и избежать их.
Работа тестировщика очень интересная, хотя местами нудная (когда надо много, очень много писать), но чаще захватывающая (когда, например, ловишь ускользающую ошибку или ищешь откуда у этой ошибки корни растут). И еще это работа сложная, с большим количеством техник и сценариев – чтобы не упустить банальные дефекты необходимо знать как и где их искать. И для меня лично главное – это работа разнообразная, в ней есть возможность выбрать направление и двигаться в нем, а потом взять – и все поменять, начать специализироваться в новой теме. Расти в ней можно как вертикально, так и горизонтально.