Тестирования входит в процесс разработки программного обеспечения (здесь вы можете более подробно узнать о процессе разработки программного обеспечения). Тестировщик — специалист, занимающийся тестированием программного обеспечения (ПО). В его обязанность входит поиск вероятных ошибок и сбоев в функционировании программы. Тестировщик моделирует различные ситуации, которые могут возникнуть в процессе использования программы, чтобы разработчики смогли исправить обнаруженные ошибки.Тестировщик также создаёт и использует разнообразные входные данные, предусмотренные и не предусмотренные авторами программы. Его деятельность обычно подразумевает как минимум три модели поведения:
- Пользователь не читал инструкций или неспособен их прочитать. Находится несоответствие интерфейса программы существующим стереотипам.
- Добросовестный пользователь действует в строгом соответствии с инструкциями. Поиск ошибок как в логике работы программы, так и в документации на программу.
- Злонамеренный пользователь стремится использовать программу непредусмотренным способом.
В случае создания программ с различными уровнями защиты и прав доступа для пользователя количество возможных моделей поведения («начальник», «подчинённый») существенно увеличивается.
Альфа-тестер — пользователь программы, находящейся на стадии разработки («Альфа-версия», как правило не полнофункциональная), взявший на себя в какой-либо форме обязательства по полному или частичному тестированию программы, а также, возможно, об особых условиях её копирования и использования.
Бета-тестер — пользователь программы, взявший на себя обязательства по тестированию программы («Бета-версия»), в том числе опубликованных официально версий и так называемых «релиз-кандидатов» программы.
В разных случаях отношения альфа- и бета-тестеров с разработчиками могут оформляться или не оформляться. Ряд пользователей добровольно участвует в бета-тестировании программного обеспечения.
Некоторые утверждают, что специфика профессии заключается в видимом однообразии и монотонности трудового процесса; по мнению других, тестирование является творческой исследовательской работой (в противовес стандартизированной разработке). Одной из особенностей профессии является возможность удаленной работы, причем расстояние часто не имеет значения (тестировщик может находиться в другом городе или стране по отношению к разработчику и заказчику). Это позволяет рассматривать данную профессию как одну из возможных ступеней для получения опыта и накопления знаний в удалённой разработке ПО с целью дальнейшей работы программистом.
Необходимыми качествами являются логическое мышление, хорошая память, умение учиться и адаптироваться к существующим задачам, быстро переключаться с одного типа задач на другой. Не менее важны терпение, усидчивость и умение работать в команде (при XP-тестировании).
Кроме того, тестировщик выступает одновременно и как пользователь, и как эксперт, а потому должен иметь определенный склад мышления: уметь воспроизводить поведение пользователя продукта и анализировать поведение системы, входящие параметры и полученные результаты с точки зрения инженера.