That is right. In the future, all the program/codes need to be tested throughly on the testnet before they can be released on the main net.
I think that is not sufficient. First of all, you can hardly test a contract for a year on a test net, because then it is much less hassle to go through the normal legal system. The idea was to make contracting "light quick and easy". Also, contracts can contain ideas, and agreements which are confidential until they are made. If you make them public before the deal is real, you lose a lot of competitive edge.
But most of all, if contracts run on a testnet, there will not be the same incentive to hack them than if they are for real. In fact, I would look at contracts running on test nets, try to find hacks into them, not reveal them until the contract runs for real and then attack it. The test net phase simply gives me more time to find a hack.