An In-Depth Guide to Software Security Testing