小编寄语:

我最近在贴吧里面看到一篇文章,

分享给正在选择学习方向的同学,

内容如下:

 


 

贴吧提问:我最近考虑转行IT行业,但是不知道该选择软件开发还是软件测试岗位?希望老师能够指点迷津。

 


 

1.做软件测试需要掌握的技术有哪些?

 


 

如果要做一名让开发人员佩服的测试人员,需要掌握的技能。

 


 

1)编程语言

         

            至少要掌握一门语言,不管是简单的php,java,还是C++也好,或者其他的脚本语言python,perl还是shell也好,至少用一种语言真正的做过一些事情,而且能拿来就用。

 

2)数据库

 

            至少要掌握一种数据库,对SQL的操作要熟悉,至少能熟练的运用JOIN进行查询,知道基本的HAVING的用法,如果能写存储过程,并且能优化存储过程那当然更好了,测试人员离不开数据库的管理和数据库的操作。

 

3)操作系统

     

             作为测试人员,各种操作系统应该很熟悉,系统安装,配置,管理,一个都不能少,对于Linux,至少要对一种系统做过系统管理,熟悉常用的命令行操作,具体要会哪些,建议google一下,用Linux的时候,尽量能用命令行,就不要去点鼠标,因为它不是windows,要改变这样的习惯。能在Linux下能安装和配置软件。

 

4)扎实的软件测试理论

 

            这是做为测试人员最基本的,不要连开发人员都知道的一些测试方法,测试人员竟然没听过,很多测试人员觉得理论知识都看过,以为自己就了解了,其实做过一段时间之后,再回头去看理论,会有更多的收获,工作多年之后再看测试方面的书籍,发现还是会有不同的收获,理论是实践经验的总结,不能说最好,但是如果说设计测试用例的时候,如果每种方法都有涉及到,肯定会发现用例覆盖率会高,而且容易发现bug。

 

5)尽量自己分析问题

 

        发现问题了,怎么办?可以找相关的开发人员帮忙分析,但是在发现问题之后,能自己尽量的寻找线索,首先要确定非环境因素,比如检查配置是否全部正确,网络是否有问题等等,然后确定非环境因素后,保护现场,保存记录系统提示信息,如果有日志功能,那自己先根据日志查找一些线索,并把自己检查过的地础和做过的分析信息尽可能多的提供给开发人员,而不是仅仅把错误日志或者错误信息丢给开发人员分析就不管了。

 

6)多涉猎一些项目

 

            之外的知识不要做一个项目,就两耳不闻窗外事,做测试的就是要涉猎的广,跟开发不同,测试是要能接受任何类型的项目,因为测试是一门方法学,方法学是不受某个产品或者领域限制的,但是如果对其他领域也了解的多,对做测试是有帮助的,前沿技术也要了解一些。

 

7)掌握一些安全方面的知识

 

            往往系统安全是很重要的,如果能提出一些系统安全方面的漏洞,那别人自然会觉得你考虑的比较全面,至于安全方面需要哪些知识,首先从网络安全入手,了解一些密码学方面的知识,比如了解常用的加密算法原理,比如 报文加密传输协议原理,建议看一下hash的方法,这个简单容易理解,还比较容易举一反三。

 

8)提高沟通能力,懂得尊重开发人员

 

            测试人员要面对的人员很多,客户,项目经理,开发人员,产品经理等,有时候会全部都接触的到,那么沉默就不一定是金,有良好正确的沟通能力,会帮助测试人。

 


 

2.开发岗位的技术要求有哪些?

 


 

开发岗位要求:

 


1、在软件项目经理的领导下,配合完成程序设计和开发。

 

2、按产品需求进行软件设计和编码实现,确保安全、质量和性能。

 

3、参与内部测试、部署、实施等工作。

 

4、分析并解决软件开发过程中的问题。

 

5、熟悉Java EE 技术,包括Servlet/JSP 、JDBC 、JMS 、Web Service 等,对各种开源的软件如Spring 、Struts 、hibernate/ibatis 、Tomcat 等有深入的了解。;

 

6、熟悉css/xml 等网页技术,熟练Ajax (jquery 、mootools )、Javascript 技术;

 

7、熟悉Oracle 、Mysql 数据库。

 

8、熟悉面向对象编程,具有良好的编程风格、习惯;了解软件开发流程,熟悉MVC 模式;并有在MVC 模式下进行中大型web 开发的经验;

 

9、可以单独对已有的系统进行维护,工作认真细致负责,有良好的自学能力,独立思考能力,能够在短时间内学习并应用新技术;

 

10、积极热情、沟通能力强,有强烈的责任心,具有良好的团队合作精神和敬业精神;

 

11、能够承受工作压力,能在规定的时间内高效完成任务,具有良好的团队合作精神。