I think a lot of it has to do with how little software -- even enterprise software -- is actually written from the ground up. Reliance on both external libraries and modules owned by unrelated internal teams has made a lot of both the programming and debugging almost black box, where effective testing isn't really tractable.