Потому что тестировщик. Он профессионал в поиске багов, в ломании софта. В коде он - любитель, ему тупо за это не платят. Платят ему не за это.
Если код доступен для тестировщиков, то они вполне в процессе тестирования могут и разобраться в нём, пускай не на 100% глубоко, но достаточно, чтобы локализовать ошибку. На моей первой работе в дефекте обязательно было указывать строчку, в которой ошибка (либо несколько, если оно далеко тянется)
Если тестировщик пишет автотесты на том же языке, что и основной продукт, он всё ещё любитель в коде?
И дежурно - тестировщик не только ищет баги и ломает софт