Studying transient properties of nonlinear systems is an important problem for safety applications. Computationally, it is a very challenging problem to verify that a nonlinear system satisfies a safety specification. Therefore, in many cases, engineers try to solve a related problem, i.e., they try to find a system behavior that does not satisfy a given specification. This problem is called specification falsification. Optimization has been shown to be very effective in providing a practical solution to the falsification problem. In this paper, we provide effective and practical local and global optimization strategies to falsify a smooth nonlinear system of arbitrary complexity.