A prova de idiotas envolve muito mais do que simples validação de entrada. Eu nem incluiria isso em sua definição.
A validação de entrada é um processo em que você limpa e valida os dados do usuário para eliminar valores ilegais / sem sentido. Isso sempre deve ser feito com qualquer informação vinda de fora do seu programa, a fim de eliminar o óbvio e também proteger-se de ataques (por exemplo, ataques de injeção de sql).
Eu consideraria a prova de idiotas um conjunto de lógicas para impedir que o usuário acidentalmente causasse grandes danos a si próprio por meios legais.
Por exemplo, fazer rmrejeitar o comando rm -rf /e fechar variantes não tem nada a ver com validação ou correção. É um comando perfeitamente válido. Infelizmente, é um comando que pode e pode eliminar todos os seus dados de todos os seus discos no Unix / Linux. A prova idiota disso rejeitaria esse comando e sugeriria rm -rf --i-really-mean-this /, ou se estiver no modo interativo, que o usuário digite uma resposta afirmativa após um aviso.
Qualquer coisa que seja destrutiva para o sistema deve ser à prova de idiotas. Qualquer coisa que possa causar constrangimento em potencial também pode ser um candidato (por exemplo, "você tem certeza de que deseja enviar este e-mail sem anexo, mesmo que tenha mencionado um no seu texto?" E "você tem certeza de que deseja enviar este e-mail para o empresa inteira? ")
A prova de idiotas é uma colaboração entre o controle de qualidade (tentando ser o melhor idiota) e o desenvolvimento (tentando antecipar todos esses cenários e projetá-los).
Quanto a um sinônimo mais amigável , posso sugerir "análise destrutiva do caminho do código" ou "ativar o feedback do usuário para operações críticas". Qualquer que seja o nome, você deve realmente iniciá-lo o mais cedo possível no processo de design.