Hey, who said that static typing caught all bugs ? :)
Sure it does, you just need Quickcheck property based testing:
forall $ \xs -> sorted (qsort xs :: [Int])
That's not static.
Or typing
No, it's not, but Haskell's type system is what allows quickcheck to work as well as it does. The implementations in other languages mostly lack a lot of the power provided by the type system.