手工测试和自动化测试都是软件质量保障的重要途径,也是很多测试人员争相讨论的两种测试方法。如何正确的看待这两种测试方式,更好的使两者相互结合是我们现在所要讨论的话题。本文总结了自动化测试和手工测试的优点和缺点,列举了各自的适用范围,并分析了自动化测试无法最终取代手工测试的原因。
1. 自动化测试是灵丹妙药吗?
自动化测试有众多的优点,例如:快速、全面、可靠、可编程、可重复使用、可重用。自动化测试产品和解决方案的潜在客户经常会以下面的思考方式设想自动化测试:
快速:显然测试脚本执行比人工执行要快得多,而且和手工测试相比,计算机可以不知疲惫的执行测试,一天24小时不休息的工作
全面:所有的测试都能够实现自动化,你可以构建一个覆盖应用程序每一个功能的测试包
可靠:每次测试脚本在运行时执行相同的操作,因此减少了人为的错误,排除了人测试的不确定性,使测试结果更加客观。
可编程:你可以编写复杂的测试脚本来找出应用程序中隐藏的信息
可重复:对于重复执行相同操作,计算机软件可以轻松完成
可重用:你可以重复使用测试脚本来测试应用程序的不同版本,即使用户界面发生了变更
如此看来,完全可以用自动化测试取代手工测试吗?答案是否定的。无庸质疑,自动化测试具有上述优点,但这些优点是在一定的约束条件下存在的。尽管人们对自动化测试有美好的愿望,但自动化测试并非我们梦寐以求的神兵利器。
Frederick P. Brooks, Jr. 曾在1986年写过一篇题为《没有银弹:软件工程的根本和次要问题》的文章(No Silver Bullet – Esse