作为对多年的编程总结,我认为程序遇到的所有bug或错误大致可以分为两大类:程序性Bug或错误,和用户交互性Bug或错误,前者的解决可以通过技术进步来达到;后者确实很难解决的,因为用户与程序的交互过程很难与你设计程序的流程完全一致,因此主要通过测试来减少发生的概率。