软件测试人员和软件开发人员的岗位要求到底哪个更高?哪个更有发展前景?业界关于此问题的争论似乎一直未停。而有人指出,这个问题实际上就是一个伪命题。武汉达内IT培训学校专家表示:对于两个不同岗位的从业人员能力,因不具备可比性所以无法比较。但不可否认,这两个岗位之间又存在着不可分割的重合领域。本篇文章列出了从业者对于软件测试和软件开发的几类典型观点,并包括了二者对应的职业发展方向,以此为广大从业者提供参考。 一些软件开发方向的毕业生表示,还在学校时,老师经常说的是如果女生以后不能从事开发,可以去做测试。刚进入企业时,问起开发人员未来几年的发展,被告知如果个人水平差的话可以转去做测试。言外之意是否就是:软件测试人员的技术要求比软件开发人员的技术要求低呢? 针对这个问题,众多开发人员、测试人员发表了不同意见,这里整理总结了几类典型观点,其中还包括了一些关于职业发展的建议,不妨一看。 “造炸弹”和“拆炸弹” 《我的第一本C++书》作者表示,他不认为程序开发人员的技术水平比测试人员高。他把开发人员和测试人员分别比作“造炸弹”的和“拆炸弹”的,从这方面来说,陈良乔甚至认为测试人员的技术水平要求应该要比开发人员的要求高一些。 陈良乔进一步指出,之所以有很大一部分人认为“开发人员技术水平高于测试人员技术水平”的这个观点的产生,反映了国内目前重视程序实现、轻视程序质量的业界现状。 “生产力”和附加“支持” Adobe程序员冯东观点刚好与陈良乔相反,他结合行业现状表示,在软件工业里,只有开发者旗鼓相当的公司,才能拼测试。而实际上,开发者的生产力可能会相差到十几倍。冯东认为,目前行业内大部分公司中的测试人员起到的是“支持”作用,只有开发人员才能起到“生产”作用。换句话说,如果你只能招一个人,你是招开发人员还是测试人员呢?“造炸弹的起码可以当半个拆炸弹的,如果你非要说拆炸弹的也会造炸弹,我只能说你给他的title错了。”因此,测试和开发的技术水平不在同一“境地”。 要做好测试工作同样需要高技术水平 微软亚洲工程院项目开发工程师陈认为,对于并不真正理解测试究竟是什么的人来说,“开发人员技术水平高于测试人员技术水平”这个观点具有一定代表性。 陈甫鸼表示,软件测试的目的是为了保证软件质量,从工程的角度出发,软件测试人员举足轻重。他认为,要真正了解什么是测试,要先了解测试究竟是做什么的。陈甫鸼介绍了软件测试所做的三大方面工作:第一方面是监控产品流程。程序的开发和这个过程中的bug修正是一个时间平衡的工作。开发得太快,就有可能给下一阶段带来较多的问题。而每一个开发阶段都需要一定的信息收集、分析。这些只能由测试人员去做。 第二方面是搭建复杂的应用场景。就拿一个完整的ActiveDirectory服务器的回归测试环境的搭建来说,陈甫鸼曾为此搭建过11台域控,其中还不包括中间可能动态加入的、删除的客户端。而过程中包含大量故意毁坏性操作,每一次毁坏之后都必须恢复现场进行下一个测试。陈甫鸼认为这种测试场景并不是任何一个程序员可以构造的。 第三方面是简化问题报告。当发生用户报告时,用户给出的描述往往缺乏直指问题所在的步骤描述,此时,需要分析过程、并反复与用户进行沟通最终完成关键步骤的定位,这一系列工作也并不适合开发人员来负责处理。 陈甫鸼介绍了一些不需要专门测试的情况。即软件本身不包含复杂的应用场景,比如单机软件、单服务器网站。而更多的复杂应用场景需要通过专业而严谨的测试,比如股票软件类的服务器系统。如果没有长时间熟悉过这类复杂系统的技术人员,是无法做好测试工作的。测试和开发所需的技能有交集,但又属于两个要求不同的岗位。如果因为开发技术不行就去做测试,也不等于你就能成为一个好的测试人员。 目前开发和测试分离的做法助长了一个倾向:一些程序员越来越不关注自己的程序质量,也不关心自己的程序如何被使用。在CSDN的微软测试专家群论坛上曾有人发言说一个产品到发布的时候对他来说就是死掉了,他就不再关心了。陈甫鸼认为这代表了一部分程序员的看法。但这不是程序员的错,也不是分工的错。该指责的是无能的领导,他们设置测试这个职位就是为了丢垃圾的,而没有能力把握两个角色的关系改进产品。这种无能的另一种倾向就是雇用大量的测试人员,以为用人去堆就能堆出好产品。他们忘记了,测试人员起到的是监控质量变化的作用,而不是提高质量。提高质量的唯一办法是开发。丢包袱能让人轻装前进,但是只知道丢包袱丢不出好产品。 技术要求侧重点不同 iOS开发者石英则认为,开发人员和测试人员的技术水平要求大致一样,只是侧重点不同。开发人员需要精通某个技术点,测试人员要高度熟悉某个技术面。
题主你好,这个问题基本就是正对于高三毕业生的。对于这个问题我分了几部去分析他们的利与弊。
未来前景:
软件开发这个专业在未来就业市场是非常大的并且工作也会是相当高的但是目前市场初级开发的人员已经饱和甚至溢出,目前IT行业缺少高端性人才,如果对于编程和计算机语言非常感兴趣的话,这方面会是一个不错的选择
测试软件岗位主要适合于大部分IT开发,现在软件测试也是一个比较新的岗位,在未来潜力也是比较大的。相比于开发来说肯定工资没有那么高。在大公司一般每几个开发就要配1到2个测试,可显而知测试是有多重要的岗位,门槛低但不可缺。
学习程度上:
如果你想去做开发,不管是前端还是后端,都必须要精通一门语言。在代码的学习过程中是比较枯燥的,而且需要自己花自己课下的时间去研究学习。
软件测试是一个偏文一点的职位,它主要是文案的编写,对这些特点这个职业并不是需要很高的技术和逻辑,但是它需要学习和了解的东西比较杂。
性格上:
软件开发需要一个人去研究、去思考、去查找问题、解决问题、迎难而上、安静、耐得住枯燥。
软件测试需要一个人有耐心、心细、提出问题、发现问题、有想法、集中精力等要素。
不能说哪一个要求更高,或者哪一个更好。只能说软件测试的入行门槛相对于软件开发要低一些,但并不是指软件测试的要求就比开发低。就好比,你能说教语文的就比教数学的要求低么?
软件测试刚在国内发展时,大多数从业人员是做一些基础的功能性测试执行工作,这让很多外行人都误以为软件测试就是点点点。但随着互联网行业的发展,用户对产品的质量要求越来越高,未来单纯只是做功能性软件测试的人不再满足于企业的招聘要求而懂得一定开发知识的综合性技术人才才是发展趋势。
今年,很多研发企业中测试工程师的职能已经开始慢慢转移到开发工程师身上,并且由项目经理做引导,使两个开发团队去测试对方团队开发的软件。这样就能够有效的避免思维误区,同时也能增强软件开发工程师的沟通协调、风险意识、挖掘需求、分析总结等能力。
这两年的自动化测试比重明显增加,一些简单的极限操作测试将会由接口程序来完成,比如测试软件图片从重复加载多少次会造成软件卡顿、游戏软件里撞墙多少次竟然能够穿墙,这些简单无聊的测试以前会耗费测试人员大量的时间,并且可能花了大量时间后也无法测试到真正问题的原因。但如果使用接口程序来解决,就可以大量的节省测试时间以及测试的全面性,这样的效率对于手工测试而言,是完全无法达到的。
未来3-5年内,一些低端的测试人员会被行业所淘汰。软件的性能测试、需求测试等方面的需求仍然无比巨大,因为这些需要主观分析总结,用经验和逻辑分析得出的问题,是算法无法实现无法取代的,正如AI永远取代不了程序员一样。
简单的测试技术已成为软件开发工程师的必备技能,开发人员将自己打造成复合型人才,具备综合技能与专精技能;而软件测试也将慢慢发展为测试开发型复合人才,只有真正有能力的程序员,才能与行业同行,不被市场所淘汰。
软件开发是通过写代码来生成一个软件,也就是从无到有的过程。而软件测试则是测试一个软件有没有问题,能不能上线,也就是把软件变得更好,起到把关质量的作用。软件开发是有产品产出的,而软件测试则没有,但是这并不影响软件测试的重要性。
软件开发需要写大量的代码,要有很多的创造力,比较费脑。软件测试代码则较少,相对来讲轻松一些,只要耐心、细心就可以胜任。软件开发从业者随着年龄的增长,可能会因为脑力和体力跟不上而被迫转行。但软件测试则不会,因为它是一个需要很多经验,越老越吃香的行业。
软件开发行业通常以男性为主导,软件测试行业则没有性别歧视,男女比例基本相当。软件开发人员有时为了赶项目进度常常需要加班熬夜,软件测试人员则不需要加班,正常跟着进度工作就可以了。
从以上的对比可以看出,软件测试是个不错的从业选择。国外企业软件开发与测试人员的比例为1:1到1:2.5,国内企业的比例却是4:1甚至是10:1,可见软件测试行业的人才缺口相当大。软件测试的薪资水平相比于开发也不低,刚入行的软件测试人员起薪一般都在8000元左右。
一般来说高校里都会设置软件开发相关的课程,但是不太会设置软件测试相关的课程,所以要想学习软件测试的话,要多方比较,找到靠谱的机构。
坦白来说软件测试稍微轻松一些,软件开发会比较复杂。但是也是相对来说的,如果开发人员技术不精,测试人员就会很累,反之则很轻松。具体怎么选择要看你自己了,多劳多得,复杂的相对工资肯定也高一些。