软件测试与软件开发比较?

发表于:2011-12-21 13:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:linlinxu    来源:51Testing软件测试博客

分享:

  五、【知识结构】,知识结构决定职业发展,知识结构决定行业发展,包括未来职业规划的考虑,下面从一个优秀的测试工程师应该具备的知识结构来对比软件测试与软件开发。

  【软件测试】:一个优秀的测试工程师需要的知识结构,从全面性角度来看,包括如下几个方面,第一是计算机知识,包括编程语言,掌握至少一门开发语言,比如c、java、C#等,一门脚本语言,比如Tcl、python、Perl、Ruby、Shell中对于测试工程师未来更广的职业发展非常有帮助。数据库知识,虽然并不是所有的测试工程师都需要掌握一门数据库,比如做移动互联网的,对数据库要求相对较低,但对于大部分大型项目,都会有数据库,所以掌握至少一门数据库,比如Oracle、DB2、Mysql等。另外操作系统,比如Linux、Unix核心命令也非常重要。对于有些涉及到网络的,网络和通信知识,比如Tcp/IP协议也非常重要。另外数据结构、软件工程等其他计算机知识也最好也具备。第二部分是软件测试核心技术,掌握软件测试核心的方法论,具体包括软件测试需求分析与软件测试用例设计核心工程方法。掌握主流的软件测试工具,比如性能测试工具LoadRunner,自动化工具典型代表QTP,测试管理工具QC、51Testing的TP、开源测试管理工具Testlink、Bugzilla、Bugfree、Jira等。掌握核心的研发流程,比如RUP,测试流程,比如双V模型,或者是现在流行的敏捷测试等,也是同样重要。方法是秘笈、工具是兵器、流程是套路。虽然测试好比武术,棍术好比黑盒测试,剑术好比白盒测试。不同的武术对知识结构要求是不一样。这个也是前面讲到的进入软件测试领域的方式相比开发要多的原因之一。第三个部分是行业知识与背景,这个对于有些行业而言,非计算机专业的人会有些相对的优势。第四部分是英语,英语好对于做好软件测试也有非常大的帮助,尤其是国际化软件测试。

  【软件开发】:一个优秀的软件开发工程师需要的知识结构,从全面性角度来看,包括如下几个方面,第一也是最重要的是精通至少一门编程语言语法,比如Java、C、C++、C#等,至少熟悉一个开发平台或工具,跟具体开发语言对应的平台,比如Eclipse、Netbeans、VC等。熟悉一门数据库,比如Oracle、DB2、Mysql等,熟悉操作系统,比如Linux、Unix包括相关的编译环境,比如gcc等。熟悉软件工程、熟悉算法、数据结构。这个方面可以多看看,设计模式方面的书籍。第二部分是英语,英语对于做好软件开发也有非常大的帮助,因为开发平台和环境都是英文为主。英语也有助于帮助理解一个编程语言的语法。

  六、【竞争压力】,竞争压力的分析有助于帮助我们选择,选择大于努力指的是,同样花5年的时间,所能达到的不同的程度。竞争压力的大小取决于行业发展现状。行业越成熟,竞争压力越大。

  【软件测试】:软件测试的发展史相对于软件开发来看,相对来说是不太成熟的,尤其是在中国。从很多猎头招聘网站包括51Testing论坛的招聘板块来看,想招一个10年左右测试经验的人,很难。原因是真正意义上软件测试的兴起基本上在2000年左右才开始。发展到今天,软件测试从业人员和软件开发从业人员的比例相比国外成熟的1:1的比例还是相差甚远。所以相对来说,竞争的压力相对较小。严格意义上来说,软件测试在中国的情况,还是乱世,所以乱世出英雄。另外,很多企业已经意识到软件测试对于软件质量的重要性,很多的软件事故迫使企业真正思考测试的核心价值。所以客观上也导致了,软件测试需求在增加,虽然对测试工程师的要求越来越高。

  【软件开发】:软件开发的发展史相比软件测试来看,相对来说还是比较成熟的,虽然相比印度等软件大国来看,远不如别人成熟。软件开发在2000年左右的时候很火,曾经有一句口号是“学好C++,走遍深圳都不怕”。当时的深圳严重缺少C++人才。但现在市面上其实不缺少初级的开发工程师了。因为初级的已经相对饱和了。另外做开发,如果3年时间内都只是做编码的工作,也会遇到职业瓶颈。另外从学习的角度来看,开发平台和语言的更新相比测试平台还是要快一点。所以客观意义上也导致软件开发的压力大些。另外在同一个企业里面,正常来讲,开发加班会比测试加班要多。

  七、【职业发展】,关于职业发展,以前也写过关于测试的职业发展的文章,51Testing网站上也有不少,但是对比开发的职业发展,还是比较少的。其实测试与开发的职业发展在有些方面是一直的,比如将来都可以往管理方向发展,也都可以考虑往需求分析方面发展。甚至也都可以往咨询和培训服务方面发展。这些是他们的共同点。

  【软件测试】:前面讲到过,软件测试从综合素质,知识结构等角度来看,要求比软件开发要更全面,这也直接导致了,软件测试的职业发展路线要广于软件开发,在测试技术领域,可以从测试执行工程师、测试设计工程师、测试系统工程师、测试架构工程师、测试专家这个道路晋升,也可以走比如自动化测试、测试开发、性能测试、易用性测试、安全性测试等专项。另外从管理的领域来看,可以从普通测试工程师,测试项目经理、测试主管、测试经理、测试总监、大部门测试总监等晋升。另外从外围IT职业,测试还可以走行业测试专家,比如金融领域测试专家,项目管理、软件测试咨询与培训等、软件质量保证(SQA)、软件销售、技术支持等只要是IT领域的职位都行。

  【软件开发】:软件开发的职业发展其实也比较广泛,在开发技术领域,可以从软件编码、软件设计与架构、软件需求等领域晋升。也可以从普通开发工程师、开发项目经理、开发经理、开发总监或者研发总监等晋升。另外也可以转型来做测试,通过学习测试关键技术,来做测试领域的测试开发。但从外围IT职业,开发相比测试能走的相对还是要窄些,很难走行业专家,除非先走需求分析,最后走行业专家。

  八、【职业前景】,严格意义上来讲,软件开发和软件测试都有非常不错的职业前景。因为IT服务人类,IT改变人们的生活方式,IT对于现代社会而言非常重要。但从历史的角度来看,软件测试与软件开发的职业前景还是有一些区别的。

  【软件测试】:无论从行业现状,软件测试的重要性,以及软件测试发展史来看,至少在可以预见的未来10年时间内,整个软件测试行业应该会处于蓬勃发展这样一个生命周期中。因为一项职业从孕育、发展、成熟、稳定需要一定的时间来承载。这点,大家也可以从一些官方的数据来看到。

  【软件开发】:从长远来看,还是不错的,但是相对于生命周期来看,软件开发早已经不是以前很多企业只是关注把软件做出来,就像现在要做出一个类似于淘宝的电子商城,其实从功能上,从代码实现上来看,已经很成熟了,花几千块可以买现成的模板,定制下,就可以。所以开发模式在改变,工厂化,模块化思想已经很成熟。所以将来的软件开发一定会关注,个性化、差异化。从这个意义上来看,软件开发的职业前景会受到需求的影响。另外,从行业资讯来看,比较新的开发技术会得到关注。老的慢慢会淡化。

  总体而言,如果非得要在软件开发和软件测试做一个结论性的比较,还是比较困难的,所以给每一位看到此文章的人一个建议,如果你很难选择把哪个作为自己的职业来思考。就强烈建议你可以问下这两个领域资深的人,他们的建议对于你来说应该比较关键。另外,清楚地问下如下几个问题:一个是,你的优点是什么?缺点是什么?第二个是,你想做什么样的工作?你能做什么样的工作?第三个是,有哪些事情是一定要靠自己的,有哪些事情是一定要借助外力。所以,有时我们不仅仅是要埋头干活,也需要抬头看路,另外,人生没有捷径可走,但要懂得借势而上。如果你对你的职业不满意,转行是一种选择,树挪死,人挪活。只是在挪的时候,分析下自己,因为你可以改变你自己。分析下外部的环境,因为你需要去适应环境。

版权声明:本文出自 linlinxu 的51Testing软件测试博客:http://www.51testing.com/?94273

原创作品,转载时请务必以超链接形式标明本文原始出处、作者信息和本声明,否则将追究法律责任。

22/2<12
春暖花开更文季,点击参与还有惊喜礼品~

精彩评论

  • billhu
    2011-12-22 13:12:16

    有些偏颇,有明显的倾向性。

  • chenabc6
    2011-12-21 15:13:13

    说的很不错哦!

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计

法律顾问:上海漕溪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号