o segredo é ir testando no fim de cada tarefa, depois fazer um teste geral, passando por tudo de novo, sempre pensando que o usuário não entende como funciona o seu código, e que provavelmente ele vai tentar algo que nao deveria.
Respondendo a "Nossa que legal! Eu tenho um serio problema qua..." dentro da publicação Aprenda a Planejar um Projeto de Programação
1