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