为什么国外资深的软件测试人员大多是手动测试,国内却把自动化测试当成很厉害的资本?

本文转载自黑马测试高赞知乎文章
链接: https://www.zhihu.com/question/19721142/answer/1633490943

先抛出我的结论:
之所以很多人会认为自动化测试很厉害,原因在于国内IT行业对于coding的崇拜,更是源于国内测试人员自身coding能力普遍不足导致的。
在真实的测试行业中,手工测试和自动化测试缺一不可。手工测试是基础,自动化测试是提升测试效率必不可少的测试能力。现在的测试工程师应该在两个方面都努力提升自己,才能让自己立于不败之地。
为了讲清这个问题,我将通过下面4个方面来进行阐述:
1、到底是手工测试厉害还是自动化测试厉害?
2、国外测试行业的发展现状是怎样的?
3、国内测试行业的发展现在是怎样的?
4、测试用例文章+专项视频分享
一、到底是手工测试厉害还是自动化测试厉害?
这个问题非常具有代表性。之所以回答这个问题,在于我亲身经历的一个事件:在黑马10期,在教授手工测试(包括测试用例的设计和测试用例的手工执行)阶段,有部分学员对于上手工测试课程非常抵触,认为手工测试已经落伍了,表示自己“是来黑马学自动化测试的,为何要教10天的手工测试课程?”。

所以黑马的这些学员(相信有很多人),都是将手工测试和自动化测试割裂开了,并且想当然的认为自动化测试更厉害。之所以很多人会认为自动化测试很厉害,原因在于国内IT行业对于coding的崇拜,更是源于国内测试人员自身coding能力普遍不足导致的。
到底是手工测试厉害还是自动化测试厉害?其实换一个问题,相信大家不会有困惑。举例问题:究竟是软件架构设计厉害,还是软件编码厉害?软件架构设计是指导软件成功编码的基础,同样测试用例设计也是指导测试成功执行的基础(自动化测试也是一种执行的手段)。
所以今天,虽然越来越多用人单位要求测试人员要有自动化测试的技术,但绝不能轻视手工测试,认为手工测试不重要。手工测试其实才是测试工作的基础。
二、国外测试的发展现状:重视自动化测试,也非常重视手工测试
关于“在国外,资深的软件测试人员大多是手动测试”这一点需要说明的是:手工测试并不等同与手工执行测试。手工测试包括测试用例的设计和测试用例的手工执行。
测试用例的设计是智力型的活动,目前最有效的方法依然是手工进行(当然目前有一些使用AI进行用例自动设计的尝试,还不成熟);但是在执行上,最高效的方法肯定是自动化的测试执行,在国外,测试执行使用自动化这一点尤其突出:
Facebook没有专职的测试工程师,他们的测试工作大部分靠开发单元测试完成;
google测试工程师与开发工程师的比例大概为1:10,如果靠手工执行,相信天天不吃不喝也测试不完;
就算是微软,偏传统的软件公司,大家津津乐道的测试开发比接近1:1,很早就搭建了自动化的构建流程,开发了单元、接口、UI各个层面的自动化测试工具。

因此,国外非常重视测试用例的设计,同时也有非常好的自动化测试的技术积累。那是不是国外基本不做手工测试执行呢?答案是否定的,《google软件测试之道》的作者James Whittaker,还写了一本书叫《探索式测试》。这要求测试人员对产品业务有充分的了解,同时对设计、架构、代码实现等都有一定的认知,在此基础上动用测试人员的发散思维能力,去思考一些非常规业务流程的测试用例,去发现一些不容易发现的bug。而这些探索性的测试都必须通过手工执行来完成,因为复杂的业务逻辑很难用自动化脚本实现(费时费力,性价比太低)。因此,自动化测试执行并没有替代手工测试执行,只是释放了人力,让测试人员可以通过手工完成更多有价值的探索性测试,而不是重复性地测试执行。
三、国内测试的发展现状:正历经第三阶段,会加大探索性测试工作,提升测试用例设计能力
最后,回到国内的现状,为什么大家会把自动化测试当成很厉害的资本呢?主要还是受到测试行业发展水平和项目特点的影响。打个简单的比方:中国人随着国家的发展,对生活的要求是:有饭吃(阶段一),吃饱饭(阶段二),生活有品质(阶段三)。对于测试行业也是这样,正在经历这样的发展阶段:
(1)国内IT公司在2000年以后才开始慢慢普及测试岗位,测试人员主要是以手工测试为主,覆盖基本的业务功能,保证软件正常上线可用。——阶段一
(2)互联网产品兴起后,产品发布的速度明显加快,有时一个月要发布好几个版本,需要快速迭代,传统的人工测试方法无法满足企业的测试需求,必须通过自动化测试来提高测试效率,保证测试覆盖的完全。 —— 阶段二
(3)在能够完成测试工作的情况下,企业就会想办法来提高测试的质量。在技术方面,会在常规自动化测试的基础上,搭建持续集成的自动化测试平台,进行测试前移和测试后移,覆盖环境搭建、单元测试、集成测试、UI测试、测试覆盖率分析、测试建模、系统发布等;在业务方面,会加大投入探索性测试的工作,提升测试的用例设计能力。
四、测试用例文章+专项视频分享
题目和上面的回答中反复提到了测试用例,如果想知道 “怎么写测试用例“,可看下方这2个知乎高赞那链接:
《如何编写测试用例?1668 赞同 · 241 评论回答》
https://www.zhihu.com/question/51558124/answer/1494934653

《如何写出高效的软件测试用例?560 赞同 · 46 评论回答》
https://www.zhihu.com/question/39865629/answer/1639536795

若想更深入学习测试用例的编写,可认真查看下列5个视频:





之所以很多人会认为自动化测试很厉害,原因在于国内IT行业对于coding的崇拜,更是源于国内测试人员自身coding能力普遍不足导致的。
但是在真实的测试行业中,手工测试和自动化测试是缺一不可的。手工测试是基础,自动化测试是提升测试效率必不可少的测试能力,想最终得到高质量的软件产品,又离不开高质量的测试用例。现在的测试工程师应该在两个方面都努力提升自己,才能让自己立于不败之地。

若你是对测试不太了解的测试小萌新,有太多太多对测试的疑惑(前途、薪资、技术含量、男生是否可以干.....),强烈推荐你观看《测试小白必看:学习软件测试必问的100个问题,从此贴开始》,相信能扫除掉你心目中90%以上的常见问题。
《100个常见问题链接》:http://bbs.itheima.com/thread-507947-1-1.html

最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,黑马50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2020软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
《2022黑马测试学习路线图链接》:http://bbs.itheima.com/thread-405757-1-1.html
