可能无数的开发者和测试者都有这样的疑问:IT公司为什么要设置测试这个岗位,开发不能做吗?测试的价值在哪里?
我也曾经无数次的问过自己,标准答案如下:
1.开发人员不能够完全的发现自己的bug
2.开发人员和测试人员的立场不同,前者立足技术,后者立足需求,关注质量
3.测试人员能够更好的促进项目沟通与反馈
……
显然,以上答案都有些假大空,如果现在还觉得拥有上述的基本素养,就拥有无可替代的作用,那真的就属于自欺欺人了。
总所周知,IT公司更新换代很快,如果公司员工不具备与时俱进的无可替代的能力,早晚都会被淘汰。测试行业更是如此,可能还会更惨烈,正是时代“重开发轻测试”这种风气所致。确实,很多小公司基本上不会招聘这个职位,他们觉得开发完全可以胜任测试,与其招聘一个测试不如招聘一个会开发的去做测试,这样可以大大节省项目成本。其实这就是最理想的测试岗位了,开发测试工程师,既可以开发又可以测试;而现实情况是,会开发的都去开发了,不会开发的都去测试了,分化很严重啊,毕竟薪资都差距嘛。
一直以来,测试行业都流传着这样一个亘古不变的招聘法则,需要具有编程基础或者至少熟悉一种语言(C/C++/JAVA/Python........),相信大家拥有半年以上工作经验的测试人员都有意识到,技术的重要性,当然这里不是指开发技术,而是自动化技术,代码编写能力和表达能力。所以拥有编程能力应该被当做是测试人员的基本门槛,是每个测试人员的基本职业素养。
那么测试人员的不可替代性体现在哪里呢?
- 提高产品质量。正是因为开发、测试的立场不同,开发主攻程序、测试立足产品质量和用户体验,所谓一心不能二用,一个人身兼多职,还要做到尽善尽美,太难。
- 沟通能力。相信大家都很清楚,开发人员专注技术,沟通能力真的不及测试。
- 促进开发效率。没有测试人员的催催催,相信开发真的可以拖拖拖。
- 对bug的敏锐警觉。测试人员的细心和长期的经验练就了一双火眼,bug的测试方法和经验是相当丰富了。
- 编程能力+测试技巧的完美结合,必将使测试人员屹立不倒。
- 文档编写及测试反馈。测试方案、测试用例、用户手册、测试结果反馈等。
。。。。。。
当然还有很多很多,这些一个开发人员都可以兼顾吗?如果可以,并且拥有良好的开发能力,那就应该是产品经理级别的人物了,岂还会在意和揣测测试这个小小的岗位。归根结底,测试人员的只有在具备基本测试素养的基础上不断提升编程能力(自动化测试、性能测试、代码复用等),才能使软件界重视测试,才能在软件行业流传千古,屹立不倒。
能力提升包括:数据库(sql、Oracle)、了解前端基础、selenium自动化、LR/Jmeter性能、shell常用命令等、掌握一种编程语言(推荐java/Python)。
共勉