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