согласен.ИМХО. Хороший тестровщик должен уметь программировать в той среде, на который разрабатывается система. Не опускаться, конечно, в тонкости реализации интерфейса того или иного класса, но понимать как живут программные компоненты, при случае настроить необходимую заглушку и т.д.
Особенно, если касается баз данных: вытащить необходимые даные из базы, закачать, проапдейтить. Создать свой тестовый набор данных и т.п.
Особая статья для низкоуровневых систем, типа драйверов или сетевых протоколов, как там без программирования, я не понимаю
Но это, опять же имхо, только минимум -- желательно все же знать и понимать особенности реализации классов тестируемого кода -- появляется возможность white-box тестирования, предложения suggested fix, что в больших организациях экономит ой как немало времени.