Как это ни странно, но тестирование - это часть разработки ПО. Раньше разработчики сами создавали и тестировали свои программы. Но потом тестирование стало занимать больше времени чем сама разработка, и выделилось целое направление - тестирование ( что уже говорит о том, что тестировщику нужно разбираться в программировании).
Однако, в какой-то момент разработка и тестирование усложнились, и стало не хватать именно пользовательских действий для гарантии качества ПО - по сути, ручного тестирования и подхода к системе с точки зрения пользователя, и на позицию тестировщика стали брать людей для выполнения такого тестирования, которое не требовало в целом глубоких технических знаний, в том числе программирования.
С тех пор появился некоторый миф, что тестировщику не нужно уметь программировать, и вообще можно ничего не знать о компьютере и других технических вещах.
Это заблуждение может стоить качества разрабатываемой системы.
Такие специалисты бывают востребованы и в настоящее время, но это скорее исключение, чем правило.
Так зачем где же тестировщик использует программирование?
💻 знание основ программирования позволяет тестировщику разбираться в том, как ПО разрабывается вообще, в алгоритмах, структурах и типах данных, и выстраивать тестирование в соответствии с этим. 💻 эти знания позволяют правильно использовать техники тест дизайна, ведь многие из них используют и алгоритмы и блок схемы программы. 💻 эти знания помогают разговаривать с разработчиками, архитекторами и другими специалистами на одном языке. 💻 тестировщик получает возможность использовать навыки написания кода для решения рутинных задач, писать простые скрипты, для допустим генерации тестовые данных, анализа логов, и тп 💻 навык программирования позволяет писать автоматические тесты для ускорения своей работы, улучшения качества тестов за счет высвободившегося времени и исключения человеческого фактора.
Для всех этих задач необходимы знания и навыки программирования.