В зависимости от того, какие цели ставите перед собой. По опыту скажу, что аудит исходных кодов предпочтительнее и эффективнее.
По коду мы можем видеть всю логику приложения, выявить максимальное количество уязвимостей, в то время как при тестировании на проникновение код неизвестен и в дальнейшем, даже если и удастся найти серьёзные уязвимости, никто не сможет гарантировать, что критических уязвимостей в скриптах больше нет, ведь их могли не найти за время, отведенное под аудит. По статистике аудит кода в среднем позволяет обнаружить в 10 раз больше критических уязвимостей, а также примерно в два раза больше уязвимостей среднего и низкого приоритета.
При этом не стоит недооценивать и пентест, есть множество узких мест, которых не выявить с помощью анализа кода.