争论的焦点在于何时选取哪种测试方法,以及何种情况下手工测试更合适或自动化测试更合适。有种观点认为自动化测试更适合回归测试和API测试,手工测试更 适合做验收测试和GUI测试。我觉得这种简单化的看法使我们偏离了真正的问题。觉得问题的本质与API还是GUI,回归还是功能都没有关系。 我们应该从代码是业务逻辑相关还是基础性代码出发。因为这正是这点区分了手工测试和自动化测试。业务逻辑代码对应投资人或用户掏钱买的那些功 能。是实际完成工作的。基础性代码则确保业务逻辑代码运行在合适的环境中。基础性代码使得业务逻辑代码可以用于多用户,更安全,本地化等等。这是支撑业务 逻辑干活的平台。很明显,两种代码都要测试。直觉上,手工测试更适合测业务逻辑,因为这部分人类学习起来要比交给自动化容易。觉得这个直觉太 对了。手工测试者适合成为领域专家,他们可以把相当复杂的业务逻辑存在强力的测试工具??大脑里。而且手工测试速度比较慢,测试者有时 间可以观察分析细微的逻辑问题。速度虽然慢些,但是比较容易。自动化则胜在测试底层的细节。自动化可以测试崩溃、挂起、错误返回值、返回码、 异常和内存使用等等。速度快但是也困难些。想对业务逻辑进行自动化测试比较困难,风险也大。事后想想,我觉得Vista有这个问题,太依赖自动化测试 了。如果能加多一些手工测试人员,效果会更好。所以不管你是要测API还是GUI,回归测试还是头次测试,所选择的测试方法取决于你想要发现 什么样的bug。当然会有例外,但总的来说,手工测试胜在测试业务逻辑,而自动化测试胜在测试底层架构。这是个人的观点,根据具体情况选择 合适的方法。