Security Testing: Types, Techniques, and Tools for Building Better Products