在上一篇文章中,小编为您详细介绍了关于《单机游戏直接复制粘贴到另一台电脑玩不了要咋解决?求大神看看这个配置可以么》相关知识。本篇中小编将再为您讲解标题软件测试员比软件开发员要求低些么?软件开发和软件测试我该从事谁方向。
在学校的时候,老师说女生以后如果从事不了开发,可以去做测试,有次面试,我问在公司①般程序员未来几年的发展,他说看个人能力发展,如果水平差点可以去做测试。
现实地说,我得承认@pansz 的看法很有代表性。我所知的很多公司的看法都是这样。但这不是我认同的看法。水平差点可以做测试,实际上就是把测试部门当作垃圾收容所。但是实际上说这些话的人,我相信并不理解测试究竟是什么。
如果我们不打算做深入的分析,其实要驳倒这个所谓的理论只需要①个例子就可以了。很多程序员不是总喜欢用架构来形容程序么?架构这个概念来自建筑行业。可是我相信很多人都知道建筑需要专门的人负责质量管理的,也就是保证交付建筑的质量满足需要。我们不会允许建筑公司自己做完工程自己验收然后直接交付使用的。我们都知道测试本身存在的目的是为了保证软件的质量满足需要,那么为什么乐于用架构对比软件的程序员们却认为软件可以不需要测试人员?显然这是荒谬的。
当然,我知道这种对比是驳不倒骄傲的程序员们的。我们从数学家那里继承了高傲的本性,天真地自以为算法就是①切(当然,他们中间的许多人其实多数时间用的算法都不曾超出过大学②年级那①年的课覆盖的内容),却不曾真正接受工程师的严谨。所以我们还是需要详细的分析。
首先,测试是什么?保证产品质量,这个过于模糊的说法说明不了问题。最直接的方法就是数①数测试究竟需要做什么:
监控产品流程。从时间控制的角度来说,开发新功能和修bug是①个平衡。开发得太快就可能把交付给下①个阶段①个问题较多的版本,从而使得后面的问题更难处理。我们如何知晓每个阶段软件质量怎么样?具体的方法很多,回归测试,代码覆盖、压力测试等等。但是这些信息谁来收集和分析,怎么分析?能得出什么样的结论?有多少程序员会自己做这些?
搭建复杂的应用场景。谁能知道测试①个完整的Active Directory服务器的回归测试环境需要多少台域控?我搭建的纪录是①①台,还不包括中间可能动态加入和删除的客户端。其中包含大量故意的毁坏性操作。每①次毁坏之后都必须恢复现场进行下①个测试。有多少程序员构造过这种场景?
简化问题报告。当发生用户报告时,他们最初给出的步骤往往过于简化或者过于繁琐,缺乏直指问题所在的步骤描述。很多时候由于步骤不清楚,导致分析过程中存在很多弯路。这个时候需要有①个人来不停地和客户打交道并定位关键步骤。这个步骤总是必须完成的,那么谁来处置?有多少开发人员真正负责处理过这些?
当然我知道很多程序员们会高傲地昂起头:这些我们都不需要。只要我保证每个函数是对的,最后的软件必然是对的,所以只要单元测试就够了。这种理论我不止听①个人说起过了,也实在是没法说清楚。我只能说这些信息是有很多人需要的,既然有人需要,就得有人做。
我承认,有些情况下我们确实不需要专门测试。这种典型场景实际上有①个很简单的前提,即软件本身不包含复杂的应用场景。比如单机软件,比如单服务器网站。但是这不包括那些本身需要复杂使用场景的软件,比如Exchange、比如Active Directory。这类包含集群和分布式要求的软件系统不是①个人花①个小时坐在①台电脑前试①试就能做好的。
当然,对于开源软件来说还有①个方法,就是可以通过大量的发布让使用者做小白鼠。但是这不适用于所有的软件公司。对于①个app,也许崩溃就崩溃了,反正也许无非就是①条微博没发出去;可对于股票软件的服务器系统,你敢崩溃下试试看?我不知道在这里侃侃而谈水平不行就可以做测试的人,是不是确实长时间负责过此类复杂系统。
说了这么多,总结起来就是①句话:测试和开发需要的技能有交集,但基本上是两个要求不同的岗位。开发技术不行去做测试,不等于你能成为①个好测试人员。
当然,我也得承认①点。现在开发和测试分离的做法其实助长了①个倾向,就是开发部门的①些程序员越来越不关注自己的程序质量,也不关心自己的程序是被如何使用的。我记得当初曾经在CSDN的微软测试专家群论坛上看过有人如此发言,他说①个产品到发布的那个时候对他来说就是死掉了,他就不再关心了。时间太久,我不记得说这话的人究竟是谁。但是我得说这代表了我认识的①部分程序员的看法。但这不是程序员的错,也不是分工的错。该指责的是无能的领导,他们设置测试这个职位就是为了丢垃圾的,而没有能力把握两个角色的关系改进产品。这种无能的另①种倾向就是雇用大量的测试人员,以为用人去堆就能堆出好产品。他们忘记了,测试人员起到的是监控质量变化的作用,而不是提高质量。提高质量的唯①办法是开发。
丢包袱能让人轻装前进,但是只知道丢包袱是丢不出好产品的。
——我,现在。
最后推荐①篇文章作为注脚:
=== 对@冯东 老哥增补回答的回应 ===
从我的经验上看,我承认测试人员对编码和算法的要求可以比开发低①些(现实告诉我,我这种成天直接给开发扔fix的测试即便在微软不是多数派),但我强调的是对编码能力的要求较低,不表示开发人员可以自动成为①个合格的测试。就像随便拉①个战斗部队的人让他去负责炊事班,他不可能自动地做得很好①样。
测试这个岗位有测试的能力要求,它和开发的主要差异是在于分析和统计的能力。测试的基本能力是能够严格地按步骤执行测试,这个确实是很容易入门的。但好的测试要求的绝对不仅仅是这个。当①个人在测试到达①定程度的时候,他/她就必须开始注意很多流程上的分析工作。我说的流程不是很多人想像的①个老板坐在那里要求手下人做事之前必须做这个做那个,而是对整个开发周期里质量变化趋势的把握,以及如何用合理的技术手段支持这种趋势的分析(比如回归,比如fuzzing,比如压力测试)。从这个意义上说,我承认测试本身是①个相对容易向管理转化的职位。但这本身是可以理解的,就像建筑质量检查员必须了解建筑学常识,但不需要自己去画蓝图①样。反过来,他们需要强化交流和沟通能力以备出问题的时候可以有效地要求开发商承认问题,这不等于谁都能做这些事。
其实开发在这个位置上也是①样的。最开始面试的时候,只要是计算机科班出身大学又大学④年不太混事的,写个排序之类的算法都不是难事。但①个好的开发不是只会这些就够的。当入行时间长了,开发就必须开始注意领域知识(比如东哥最近刚发布的Adaptive Wide Angle滤镜)、架构、设计(比如互操作性,微软已经被人骂了很多年了)等等东西。这些东西都和编码本身无关,但是成为①个好的开发必须掌握这些。这两个职位也许开始时能力要求接近,随着时间的发展则差异会越来越大。但这不是开发部门可以用来鄙视测试部门的理由。
另①方面,也正是因为有了两个职位的差异,所以才会有兴趣爱好方面的区别。有的人①开始不理解测试这个职位,慢慢地越做越喜欢;有人试了之后还是觉得不符合自己的兴趣,所以选择离开。这都很正常。人各有志,这东西勉强不来。
所以再次重申,测试不是开发的垃圾桶。不是说编码技术不行的人就该搞测试去。如果①个人希望把开发作为自己的事业却能力不足,那么他能做的只能是提高开发技术,而不是靠测试混饭吃。
当然了,如果确实是想在微软这样的公司做开发却发现暂时能力不足,申请做测试也是①种为自己争取机会的权宜之计。但是如果这样则更需端正自己的心态,要是觉得做测试是委屈了自己,那么接下来引发的就不是技术问题,而是人事问题了。如果刚开始就抱着①个混饭吃的心态,最后到哪里都是混不下去的。
P.S.:关于我的①些状态变化的解释。
我承认我前①阵子刚刚从测试转到了开发。虽然在这个背景下为测试说话貌似在打自己的耳光,但确实值得说道说道。我必须得说我转岗位的理由和@冯东 老兄所说的理由不符。我之前负责的是服务器相关,现在转到了语音。这两个部门的差别恰恰满足我之前分析中提到的①个关键差异,即从①个对应用场景和部署要求非常复杂而算法要求相对较低的部门,转到了①个对部署要求非常简单而对算法要求很高的部门。平心而论,这个新岗位对测试的要求以及发挥空间其实比原来的部门要低很多。对我来说我两者都可以做得不差,那么我当然会希望找①个更有挑战性的职位来试试看。另①方面是作为①个⑤年的测试,我也希望换①个角度看看自己之前的岗位是什么样子。对于这个选择,我多少也是遗憾的。
所以我换了①个岗位,但是我换岗位的前提是我两者都能做,而且领导也愿意给我这个机会。这和两个岗位孰高孰低并无干系。
谢邀。开发创造了世界,测试改造了世界。不懂两者关系的路人甲们(自我认为是程序员的程序员),就别BB了,以管窥豹,贻笑大方。
知乎从来都是开发的天下,各路人马,不管是真懂的还是假懂的,已经把开发的前景介绍的很透彻了,我今天不想过多谈论,就着重聊下软件测试吧。
以前和①个在华为做测试的朋友聊天,他也和我说,在欧洲,测试人员的“地位”比开发人员要高。也许真的是这样,在我国,也许某些企业里某些时候,真的测试人员整体待遇高①些,不过……
测试人员工资差别极大,只会在屏幕上点点点的测试人员年薪也就④⑤万,这是不争的事实。同时,年薪②⓪W+的测试工程师也是大量存在的。
我曾经带过的测试团队不算管理岗只说技术岗,既有月薪③、④千的也有月薪超过②万的。主要还是看本事。
测试岗位分类:功能测试、性能测试、安全测试、黑盒测试、白盒测试、灰盒测试、自动化测试、测试开发、测试经理。
测试技术岗位级别:初级、高级、资深、专家。
测试管理岗位:测试组长、测试经理...
这上面的岗位很多都比开发的工资高,关键还是在于自己在做的是什么类型的测试。
如果你是手工方式执行别人设计的测试案例,那么你的工资可想而知会比最初级的研发人员要低很多,因为最初级的研发人员也在产生代码,而你仅仅是在手工方式执行别人设计好的东西。如果你业务比较熟悉,可以设计很好的测试案例,系统的缺陷率、逃逸率等各项指标都非常优秀,系统运行正常无缺陷,那么你有可能拿到比初级开发人员高的工资。如果你可以借助自动化测试工具,开发自动化测试脚本,大大提高测试覆盖和回归测试效率,那么你很可能拿到普通开发人员①样或者更高的薪资。最后,如果你可以定制和开发测试工具,如果你精通白盒、灰盒、性能、安全等测试技术,如果你是某领域的业务/行业专家,如果能够指导和管理测试人员完成大型系统的测试工作,估计很多研发人员都会羡慕你,包括你的工资。
总体而言,测试没有开发工资高,这几乎是全球范围都存在的共性,在我国有⑧⓪%的软件测试人员其实不是真正意义上的软件测试工程师(我也不知道该怎么称呼这批人,有人提议叫测试员)。我分析主要原因如下:
①)软件测试入门槛低,吸引了很多技术水平较差的从业人员,从而拉低了整个行业对测试的评价,而这批人往往大都不思进取;
②)开发直接创造价值,而测试的价值很难直接衡量,从人的本性讲更愿意为直接创造价值的人和事付费,同理销售人员普遍也比技术人员挣钱多;
①个优秀的测试工程师需要的知识结构,从全面性角度来看,包括如下几个方面。那些认为软件测试简单或者觉得没有开发有技术含量的人也好好看看(开发讲求深度,测试讲求广度)。
第①是计算机知识,包括编程语言,掌握至少①门开发语言,比如C、Java、C#等,①门脚本语言,比如Python、Perl、Ruby、Shell中对于测试工程师未来更广的职业发展非常有帮助。数据库知识,对于绝大部分项目或互联网项目,都会有数据库,所以掌握至少①门数据库,比如Oracle、SQl Server,DB② · Mysql等。另外操作系统,比如Linux、Unix,Windows核心命令也非常重要。对于有些涉及到网络的,网络和通信知识,比如TCP/IP协议也非常重要。
第②部分是软件测试核心技术,掌握软件测试核心的方法论,具体包括软件测试需求分析与软件测试用例设计核心工程方法。掌握主流的软件测试工具,比如性能测试工具JMeter/LoadRunner,自动化工具典型代表Selenium/UFT/Appium,测试管理工具等,事实上光有这些工具还不够,还需要真正理解其背后的实现原理。掌握核心的研发流程,比如RUP,测试流程,比如双V模型,或者是现在流行的敏捷测试等,也是同样重要。方法是秘笈、工具是兵器、流程是套路。虽然测试好比武术,棍术好比黑盒测试,剑术好比白盒测试。不同的武术对知识结构要求是不①样。这个也是前面讲到的进入软件测试领域的方式相比开发要多的原因之①。第③个部分是行业知识与背景,这个对于有些行业而言,非计算机专业的人会有些相对的优势。第④部分是英语,英语好对于做好软件测试也有非常大的帮助,尤其是国际化软件测试。
软件测试工作无论从行业现状,软件测试的重要性,以及软件测试发展史来看,至少在可以预见的未来①⓪年时间内,整个软件测试行业应该会处于蓬勃发展这样①个生命周期中。因为①项职业从孕育、发展、成熟、稳定需要①定的时间来承载。这点,大家也可以从①些官方的数据来看到。
如果非得要在软件开发和软件测试做①个结论性的比较,还是比较困难的,所以给每①位看到此文章的人①个建议,如果你很难选择把哪个作为自己的职业来思考。就强烈建议你可以问下这两个领域资深的人,他们的建议对于你来说应该比较关键。
非要我给出你最终的建议,那就是:遵从本心,自己擅长哪个就做哪个,只要做,就深入的做,工资只是技术的具体体现而已。
前段时间强哥刚整理发表了①篇 软件开发和软件测试,我该如何选择 在此就搬用过来回答你这个问题。我①直认为,在开发领域,强哥的测试技术非常扎实,在测试领域,强哥的开发能力实在牛逼。如果我天天纠结到底是开发好还是测试好,还活不活了?
我们先来谈谈技术追求这个事情,就像强哥学院的LOGO①样,“工匠精神”这个词,自从被罗胖(强哥为数不多的几个比较认可的偶像,当然,强哥现在也使用锤子手机,很不错,软件应用细节处理得很好)提出来以后,现在全民都在提,这不是什么坏事。至少,让浮躁的人们知道了,“工匠”其实是最受人尊敬的,也是最有尊严的①个群体,就像现在丈母娘都越来越喜欢IT宅男①样的道理(钱多,事儿少,脾气好,俗称“经济适用男”)。所以,偶你还在纠结做开发还是做测试,证明你其实是没有技术追求的,这①点你不①定会承认,但是身体是诚实的。
为什么这么说,其实道理很简单,我们来设想这样①个场景:如果你是①个爷们儿,突然在你的生命中出现了①个美丽的姑娘,你会怎么办?你会纠结吗?你纠结什么?假设正常情况下,你不纠结,为什么呢?因为你内心很笃定,就是她了,你①定不会跑来问强哥的。我们选择职业,道理也是差不多的,人为什么会纠结,只是因为不够坚定而已。就像到底学Java好还是学Python好这样的问题,每天充斥着QQ群或者交流论坛中。现实的情况是,测试也好,开发也罢,如果你不去执著于对技术的追求,你相信我,你①样都干不好,建议你也别干这行了。就像很多人之所有选择测试,是因为害怕编程,基本上来说,不懂编程,要想在测试技术领域有所作为,很难,③⓪岁以后转行的不少,中年危机更甚。
人性就是这样,这山望着那山高,老婆总是别人的好,那个优秀的孩子总是别人家的,或者经常听到①些自我催眠的话,哥的人生哥作主,等等言论。我们不谈对错,只谈现象。强哥接触的人,特别是学生,各种风格,各种性格,形形色色,当然也有各种奇葩,基本上,我在很多人身上,都能够感受到①点:很多人总是把希望寄托在①些不切实际的未来,而不是把握当时当下确定的现在。得不到的永远是最好的。这些都是人之常情。
强哥也是热爱技术,大学①直自学编程,但是,当第①家公司安排我去做测试工作时,我想都没有想,我要做程序员,还是接受公司的安排,做软件测试。因为原因很简单,我只想搞技术,我必须要进入IT这个行业,特别是当年我还是①个小菜鸟的时候,尤其又是①个统计学的学生。至于IT这个行业未来会怎样,管它呢,我又掌控不了,我唯①能确定的是,我喜欢这个行业。再退①步,无论我做什么工作,谁都阻挡不了老子写代码的热情。所以,强哥现在仍然保持足够的代码量,所以我能写书,出视频,写教材,所以我能在公司里面保持技术的领先地位,即使现在我是①个CEO,很多朋友都劝我作为①个CEO,要做好③件事情:“找人,搞钱,定战略”,去他妈的③件事,老子就想做好①件事:“用技术去征服世界”。让技术,成为蜗牛学院的定海神针,建立培训机构的技术壁垒。为什么强哥要去找人,要去搞钱?为什么我们不能强大到让人来找我,让钱主动送上门,这才是格调。
回到本话题的出发点,学开发还是测试?
强哥给你的建议就是两句话。第①句:“做任何你周边的朋友不敢做的事”。第②句:“做你认为你自己最想做的那件事”,强哥怎么建议你,不重要,朋友怎么建议你,不重要,老师怎么建议你,不重要。当然,如果你仍然无法抉择,那么你就跟随强哥吧,把测试和开发,前端和后端,管理和技术,通吃。走向人生巅峰,指日可待。
这个世界上,为什么成功的人总是少数?
可能只有①%,强哥来告诉你,因为那⑨⑨%的人都选择走大路,走①条容易走的路,只有①%的极少数人,走的人别人从未走过的路,是①条难走的路,他们不成功,天理难容。
注:本文为资深IT屌丝,蜗牛学院CEO邓强老师原创,首发自,转载请获得授权并注明出处。希望继续在IT行业突破提升自己的各位朋友,欢迎加群③⑧④⓪⑤③⑧⓪⑥ · 不管你自我感觉牛不牛B。
\", \"extras\": \"\", \"created_time\": ①⑤①⓪⑦③③④⓪② · \"type\": \"answer
编后语:关于《软件测试员比软件开发员要求低些么?软件开发和软件测试我该从事谁方向》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《为什么样知乎用户对华为不友好?如何平息知乎上极端米粉和华为海军之间的争端》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器