最近看到了一些关于测试趋势分析的文章。大致观点有以下几种:
1、 纯手工测试人员会慢慢被淘汰,测试工作由开发代替。
2、 自动化测试是王道。
首先表明我的观点——我对这两种观点都不敢苟同。
这些观点我感觉也许有些公司或有些领域是对的,但是应用于整个测试行业,我觉的就有点以偏概全,以一己之目光视行业之趋势,形同盲人之摸象。
下面我说一下我的想法。
据我的了解,目前国内测试行业,测试还属于学习、探索、成长的阶段。
在测试行业,由于测试进入门槛较低,所以测试整体技术水平会偏差。大部分人还是以手工测试为主,会写代码就可以称为大牛。通过招聘就会发现,想找一个既有手工测试经验又精通代码的真实很难,即使有这样的人,也已被称为是大牛,难以招到。其他的或者会写代码,没有手工测试经验;或者有手工测试经验,但是代码只是略知一二;但总的趋势是现在有手工测试经验且“懂”代码的人越来越多。
在整个软件行业,大部分人都是计算机专业或其他相关专业毕业(即使学计算机的也很少有学习测试专业课程的;所以导致现在行业内的PM、leader、开发对测试的认识都还是停留在“随便点点”阶段。他们认为的测试是,如果会写代码就是最牛的测试。导致有些开发同学有了鲤鱼跃龙门的机会,只要由开发转行过来做测试,立马身价大涨。
我觉得正是现在这种状态导致了测试行业发展有点畸形。大家都以自动化为最高测试标准,而他们却并没有考虑,自动化测试对于他们的系统是不是适合,成本对于他们来说是不是会很高。他们只知道自动化测试很牛,很时髦,数据很好看,却忽略了人的重要性,忽略了日常测试工作90%以上都是由人来完成的。
当然有些自动化如果适合自己的系统,而且投入产出比很高的话,自动化还是很好的东西,他可以代替我们做我们不愿意做的事情,何乐而不为呢。比如接口的自动化测试我觉得比较不错。
国外的公司,据我看的一些文章及书籍了解:有一些大牛公司真的没有测试,雅虎最近还取消了测试部门。但是这样的公司毕竟还是少数(对于初创公司或为了节省成本没有测试人员的小公司不做考虑)。大部分公司不仅有测试,而且比例还很高。
但是他们的测试人员过去基本都是开发出身,都是以白盒测试和自动化测试等技术类型的测试为主。纯手工测试基本没有;即使有,他们也基本以外包的形式包给中国印度这些亚洲国家了。
但是最近几年,他们也发现,只靠通过【代码】测试【代码】是不可靠的! 因为最终软件是交付给人来使用的,人是有感情的。即使代码写的再好再炫,用户也是看不到的,用户只能通过他们看到的或用到的功能来感知,这就是用户体验;所以用户体验现在已经被越来越多的公司所重视。
之前看过一篇文章,介绍微软的Vista系统之所以失败,就是因为他们太过相信自动化测试,而忽略了用户体验,最终导致产品的失败。
去年看了《Google软件测试之道》这本书,我发现Google的测试人员也是分为测试开发工程师(SET)和测试工程师(TE)。TE虽然涉及一些编程,但是只是一小部分。TE的主要工作是以用户为中心,检查软件的质量。
所以根据我自己的理解,手工测试不会消失;“自动化测试是王道”这个也无法成立;因为人是无法被替代的。自动化测试只能是一种测试手段,来帮助我们提高工作效率,而不是取代人的工作。因为代码是死的,人是活的。
我认为测试的趋势就是Coding测试与人工测试同步进行、同步发展;因为他们关注的点是不同的。Coding测试更多关注的是代码的逻辑,代码的正确与优劣。人工测试,由于人是有思想的,所以会代替用户提前使用,帮助用户发现将来使用过程遇到的各种问题,包括用户体验。
所以我认为,只关注代码不关注用户的测试不是好测试;
没有思考的测试是盲目的执行;
不经过测试的产品交付给用户,是不负责任的行为,无论对用户还是对自己。
总之,我的观点是Coding测试与手工测试会同步发展,同样不可或缺。