One Key reason why developers have difficulty testing their own work is :
Lack of technical documentation
Lack of test tools on the market for developers
Lack of training
Lack of Objectivity