做软件测试员需要学哪些专业知识???

如题所述

有些事情说起来有些滑稽,几年前,我们说,软件测试业在中国刚刚起步。现在,我们还是在说,软件测试业还是刚刚起步。几年的时间,对于其它行业是一个什么概念我不清楚,对于IT行业来讲,不是一个小数。实际上,国内软件业的发展缓慢限制了测试业的发展,没有软件的开发计划,测试的需求不旺啊。然而,反过来想,在软件测试业还没有大红大紫的时候介入进去,应该是个好时候。

那么,从事软件测试业的基本要求是什么?我根据自己的体会,罗列一些,供朋友们参考。

首先,要有宽泛的计算机基础知识。微机原理,数据结构,数据库,操作系统原理,编译原理,逻辑,编程语言,网络,等等,都要系统地学习过。都精通不大可能,因为人的兴趣都不相同,但是,这些功课的基本知识点是应当了解的。我们在谈到职业的类别的时候,我们可以说C程序员,C#程序员,Java程序员,而没有C测试员,C#测试员,Java测试员,程序员可以只擅长某一门编程语言,测试员却不行。为什么呢?测试员是代表用户的,在做测试的时候,他(她)需要考虑到方方面面的事情。例如对于一个用C写的上网拨号程序,测试员需要考虑:

(1) 程序的功能是否正确;(要求计算机知识)

(2) 是否符合用户的使用习惯;(要求界面设计知识和换位思考能力)

(3) 性能是否满足要求,例如长时间使用;稳定性;(要求深入的计算机知识)

(4) 是否能够满足用户可能的不同操作系统的要求;(要求计算机知识)

(5) 如果在全球发布,是否满足不同语言和文化的需求;(要求软件国际化测试知识)

(6) 如何搭建测试环境;(动手能力,硬件知识)

(7) 做代码检查;(比较深入的C语言知识)

(8) …

所以,各方面都了解一点,你在做测试的过程当中你会感觉顺手的多。如果某写方面还差一些,没有关系,计算机行业的特点就是边做边学,只要是个有心人,学习是很快的。

其次,要掌握一门编程语言。有的朋友可能会说,我就是不愿意做编程才来做测试的,怎么测试还有这么一个要求?我要尝试说服你:)。我的理由有两个:

1. 只有知道怎么做一个软件产品,才能真正懂得这个产品。而只有真正懂得了产品,才能做好测试。一行代码不会,你会始终是个门外汉。不要满足于点鼠标,而去尝试着打开我们面前的黑盒子。

2. 自动化测试技术需要编程技术。自动化测试是软件测试的一个发展方向,一方面很多测试工具都需要人工干预,编写代码;另一方面在有的情况下需要自己编写测试工具。

对于测试员来说,编程技术不要求精通,但要会。

再次,学好英语。在现阶段,我们只能承认,在计算机方面,英语国家领先。有很多的资料都是英语的,如果仅仅局限在中文资料方面,会影响你的渊博程度:)。举一个简单的例子,Windows操作系统会捕捉到一些程序或者操作系统内部的异常,你可以根据这个异常到微软网站上去查找错误原因和解决办法,其中有很大一部分资料就是英文的,因为还没有翻译过来或者以后也不会翻译的。

以上所说的几点看法,都是在计算机行业里面打转,下面说几个“虚”的要求吧。

1. 锻炼出一双测试的眼睛。我的一个朋友,她也是做软件测试的,她说,有一次她和她老公去买笔记本电脑,她一眼就看出液晶屏上有几个坏点,而她老公却看不出来。她说,这要归功于她有一双测试的眼睛。测试的眼睛,就是对问题特别敏感,能够发现常人发现不了的问题。测试员就是要找软件中的问题,有了这双眼睛会让你收益非浅。耐心,细心和经验,会有助于我们到达这个要求。

2.平和的心态。从心理学上说,每个人都不喜欢别人对自己挑毛病,程序员也是这样。所以,要以平和的心态去看待发现的软件问题,以平和的心态去和程序员交流。千万不要以为自己发现了几个问题,就可以责怪程序员,或者冲过去骂他们一顿。也不要在背后谈论谁谁谁不行,bug太多。一个项目是大家共同做的,需要举集体之力才能做完。我们测试员发现的问题多,表明项目的风险又少了一点,应该高兴才是。如果你的脾气不好,可能这个恶名会掩盖你的真才实学,很可惜的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-02-21

软件测试属于IT行业中容易入门的岗位,代码量较少。0基础进入IT行业,完全是ok的,IT行业分好几种有开发,测试,UI,自动化,测开,运维等这些岗位。在这些岗位里面测试相对来说还是比较容易上手学会的。

课程内容主要有:

搭建Windows测试环境,JAVA编程,软件测试基础,数据库技术,用户界面技术,高效设计测试用例,阶段项目实训,搭建 Linux 测试环境,白盒测试,WEB技术,高效使用自动测试工具,软件质量保证,流行测试基础,企业级项目实训用例等!

学完可以从事:

功能测试工程师,性能测试工程师,安全测试工程师,白盒测试工程师,自动化测试工程师,接口测试工程师,测试开发工程师等。

互联网行业目前还是最热门的行业之一,学习IT技能之后足够优秀是有机会进入腾讯、阿里、网易等互联网大厂高薪就业的,发展前景非常好,普通人也可以学习。

想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。

祝你学有所成,望采纳。

第2个回答  2020-03-21

软件测试需要学什么?

第3个回答  2019-08-30
很多朋友都会咨询:软件测试要学些什么。有的人说的很简单,有的人说的很多,我认为都对。但是,如果学的很简单,比如只学过手动测试,那么在今后的发展过程中,势必要遇到瓶颈。
而遇到瓶颈,想要突破,就必须得加紧学习了。
突破瓶颈
如何突破现有的瓶颈?当测试人员入职后,测试人员不能仅仅做好本职工作,还需要思考如何将工作做的更快,更好;思考是不是还有其他方式完成工作。下面给大家介绍下突破瓶颈需要的能力,以及学习方向。
代码能力
测试人员不需要学习ssh框架、mvc框架。但是测试人员选择的开发语言要与公司常用开发语言一致。达到能看到开发写的逻辑就可以了,进阶的话,测试人员可以自己利用公司的框架写一点小的项目,这样可以更加理解开发的工作方式,易错点。很多时候,你会发现有些功能点的问题好的测试工程师一眼就发现了,因为他们也错过。
沟通能力
沟通能力是作为测试很关键的一个能力,开发、运维、客户等角色都需要测试人员去沟通。有时候还需要测试人员去协调资源。如果只是闷头测试,那你的眼界只能局限于一小块,整天只能唉声叹气抱怨为啥提交质量这么次,客户老骂人了。
测试知识广度
当测试人员要晋升高级、资深测试的时候,测试人员需要给公司看出他们的价值,测试人员和新员工的区别。此时,测试人员不光要在业务上有自己的见解,在测试技术上也要有所涉及。了解那些技术会对测试效率有提升,为公司省钱。
自动化测试、性能测试、白盒测试、灰盒测试、接口测试、混淆测试等等,不光要理解名字,建议能自己实际操作下。看着很难的东西,上手了就没那么难了。
测试知识深度
当测试人员专注于测试的时候,一定要选个方向。自动化还是性能?不建议选择业务专家或者测试管理,前者太难,后者容易被淘汰。
作为一名性能测试、自动化测试都有涉猎的人来说,比较推荐大家入门自动化方向。需要学习的东西较少,大公司招聘的很多。
作为自动化测试来说,需要学习单元测试、接口测试、UI自动化测试,需要深入学习代码、框架。这些基本就够了。本回答被网友采纳
第4个回答  2018-12-24
一、业务分析能力
1.分析整体业务流程
不了解整个公司的业务,根本就没办法进行测试
2.分析被测业务数据
了解整个业务里面所需的数据有哪些?哪些是需要用户提供的?哪些是自己提供的?有哪些可以是假数据?有哪些必须是真数据?添加数据的时候可以用哪个库?
明白了整个软件的数据库架构,才能知道哪一个数据是从哪一个表里头带出来的,它的逻辑是什么,有没有连带关系。
3.分析被测系统架构
用什么语言开发的?用的是什么服务器?测试它的话需要用什么样的环境进行测试?整体的测试环境是什么样的?
如果缺少了,需要进行环境搭建,架构搭建。一般去一家新公司之后,架构是搭建好的,了解它即可,熟悉之前的这些老员工们使用什么样的架构去做的。
4.分析被测业务模块
整个软件有哪些模块,比如说首页面、注册页面、登录页面、会员页面、商品详情页面、优惠券页面等等
明白有多少个模块需要测试,每个模块之间的连带关系,进而怎样进行人员分工
5.分析测试所需资源
我需要几台计算机,需要几部手机,手机需要什么样的系统,什么样的型号。
比如测一个网站的性能的时候,电脑的配置达不到测试并发5000人的标准,要么升级电脑的硬件配置,要么多机联合,多机联合时需要几台电脑,都需要提前筹划。
6.分析测试完成目标
我的性能目标是什么样的?我的功能目标是什么样的?我要上线达到的上线标准是什么样的?
性能目标,比如我要达到并发5000人的时候,CPU占用率不能高于70%,内存占用率不能高于60%,响应时间不能超过5秒
功能目标,比如整体的业务流程都跑通,所有的分支流程都没有问题,所有的接口都能够互相调用,整体的UI界面没有问题,兼容性没有问题等
把这些问题都弄清楚,测试的思路会非常的清晰
二、缺陷洞察能力
1.一般缺陷的发现能力
至少你要满足一般缺陷的发现能力,这个是最基本的,如果要连最简单的一般的缺陷都发现不了的话,别说优秀测试工程师了,你说你是测试我都不信
2.隐性问题的发现能力
在软件的测试过程当中有一些缺陷藏的比较深,有的是性能方面的问题,有的是功能方面的问题,它需要有一些设定特定的条件的情况下才会出现这样的问题。
比如说买双鞋必须选择的是什么品牌,必须选择是红颜色,必须选择44号,而且必须选择用特定的支付方式才会出现这样的bug的时候,那么这种就属于特别隐性的bug,对于这样的问题的发现能力一定要比别人更强,要找到一些别人可能发现不了的bug
3.发现连带问题的能力
当发现了一个缺陷之后,能够想到通过这个缺陷可能会引发其他哪个地方出现问题,这就叫做连带的问题。而不是说发现这一个bug之后提了这一个就算完了,一定要有一个察觉,可能其他地方也存在这样的问题。
4.发现问题隐患的能力
有些软件里边可能有一些操作模块,或者是代码写的接口,表面上没有什么问题,但是它是有隐患的,比如说这个接口写的不稳定,当他传的数据有一些问题的时候,可能它最后返回的结果就是报错就是报404或者报乱码。
5.尽早发现问题的能力
如果你只能停留在界面级别的话,那你根本就没有办法达到尽早发现问题的这个能力
你必须要等到前端人员把每个界面都做好了之后才能进入测试,而我能比你早一个月进入测试了,然后我比你结束测试时间快一个月,而你又比我晚一个月,那么咱俩的薪资一下就拉开了
6.发现问题根源的能力
需要知道这个缺陷它到底是由什么原因产生的,是属于什么类型的缺陷,是ui前端人员做的问题,还是后台接口人员做的问题?
不仅要找到这个bug,还要知道这个bug产生的原因,这样的测试人员是非常棒的,而且很是受人尊敬,提bug的方式也就不一样了
三、团队协作能力
1.合理进行人员分工
2.协助组员解决问题
3.配合完成测试任务
4.配合开发重现缺陷
5.督促项目整体进度
6.出现问题勇于承担
四、专业技术能力
1.掌握测试基础知识
2.娴熟运用测试工具
熟悉工具和熟练使用工具完全是两个概念,熟悉工具基本上等同于不会,遇到过很多简历上写会使用什么什么工具,都没有实际能力。比如loadrunner只会一个简单的录制,增强一下脚本,觉得会用了,那知识会用了1/5,其他4/5 都不会。
3.了解工具操作原理
它是怎么样给服务器发送请求的,是用什么样的方式去发送请的,是用什么样的方式去监控的,它的操作原理是什么样的,咱们要把这件事情搞清楚,这样的话能有助于更好的去使用这些东西。包括一些请求的协议,每个协议代表什么意思,它是用来干什么的。
4.自主完成测试任务
一定要能够自己完成一个独立的内容,独立的工作,这件事情领导你交给我好了,放心我能给你搞定,要的是这样的人
5.找出问题出现原因
找出缺陷的时候,不仅要看它的表面,还要看它的本质
6.提供问题解决方案
发现问题不是能力,发现问题并提出解决方案才是真的能力
7.提供完整测试报告
测试报告能够说明你表达的清不清楚?领导能不能看懂?还有就是能不能够把你整个测试的过程给它梳理得非常详细,人家能够通过你的报告,能够了解到整个的项目的情况,而不是只了解一个片面的情况
8.了解相关技术领域
触类旁通本回答被网友采纳
相似回答