正解:D
The most effective way to identify security vulnerabilities in an application is to conduct automated and manual security testing throughout the development lifecycle. This approach ensures that security is continuously evaluated at every stage of development, rather than waiting until the end. Automated tools can help identify common vulnerabilities quickly, while manual testing allows for more in-depth analysis, including testing for complex, contextual security issues. This proactive and ongoing approach reduces the risk of vulnerabilities being overlooked and helps ensure that security is integrated into the application from the start.
Performing code reviews just prior to release is valuable, but it's not comprehensive enough. Security testing should be done early and continuously, not just before release. Relying solely on secure coding practices is important but not sufficient. Even with secure coding practices, testing is essential to identify vulnerabilities.
Waiting for a single penetration test after development is not effective because waiting until the end can allow many vulnerabilities to go unnoticed during development, leaving the application exposed.