Testability tarpits: the impact of code patterns on the security testing of web applications