The testing of systems, networks or web applications to identify security vulnerabilities that hackers could exploit.