There have been many positive developments in the last few years. However, the biggest challenge continues to be that numerous companies still view software testing as a costly necessity rather than as a mean to reduce costs in the long run. Software tests, if applied correctly, not only increase software quality but also lower costs to a great extent. Therefore, static code analysis can be employed early in the development process, even at a stage where the code is not executable yet and error corrections are still cheap. Of course, creating and taking care of tests naturally creates costs in the beginning. However, if code coverage measurements are employed, thus avoiding redundant tests, these costs could be limited.
Another challenge would be the fact that in order to speed up development, many companies receive third-party-code often only in binary form. This renders testing on a source code level impossible. Nowadays, testing tools for binary code analysis do exist. Similarly, there are tools which analyse the binary software composition. These tools offer good approaches to solve this problem.