测试部分我用得最多的是黑盒测试的等价类划分和边界值分析方法。等价类划分的目的主要是区分哪些是合法输入,哪些是我们不希望用户输入的,确保每一种非法输入都有对应的应对方法。然后就是测试边界值,因为边界值是最容易出现bug的地方,可以检验程序的逻辑在细节处是否也是正确的。
调试部分我主要是使用回溯法和归纳法。回溯法一般是明显的某个模块的bug,就回到对应模块的代码里去找问题;归纳法则是对应一些奇奇怪怪的bug,通过更多的数据输入,推测可能的错误原因,然后到处对错误原因的一个或多一个假设,并利用已有的数据来证明或排除这些假设。