软件测试学习什么内容
如果是自学软件测试的话,可以参考以下介绍中关于软件测试需要学习哪些技能:
首先,了解软件测试的本质。这是最基础的理论知识,但鲜有人能真正地关注,检验自己是否能完全站在用户的角度,思考问题是否能严谨、全面、有条理、逻辑性强。其一,参加面试时一些面试官会由此回答来推断应聘者对软件测试的理解程度和经验指数。
熟悉常见的测试方法和种类,对于常见的测试类型如白盒测试、黑盒测试要清楚其定义与测试原理,白盒测试不需要一定自己接触过,但相关的基础概念要有所了解,以及其他测试种类在不同项目环境下的应用场景,如可接受性测试、α测试、β测试、接口测试、文档测试、安装测试、本地化、国际化测试等等,有些不常用的清楚其原理就好,但不免有些公司的笔试题中会出现。
理解软件生命周期与软件测试流程等概念,比如面试中最常问的一个问题是:说说你经历的测试流程是怎样的?或者你们处理Bug的流程是怎样的,从需求到交付用户测试人员在不同阶段都扮演了哪些角色?具体的流程可以参考一些基础的专业书籍中介绍,但不要被观念固化,要多接触不同类型的项目,以了解测试流程的灵活应用。
熟悉操作系统的原理,对于计算机专业毕业的同学,应该对操作系统原理印象比较深,但转行或其他跨专业的测试人员,需要在业余时间将操作系统原理的书籍翻看下,因为操作系统是平台的基础,很多公司的产品都支持一些主流的平台,如UNIX、MAC、Windows等,学习操作系统知识如果纯看书的话容易枯燥,且与实际应用结合的效果也不明显。可以在一些网络平台上查找相关的视频学习。
测试环境搭建
这是自学测试人员最容易忽略的一点,但如果是作为实习测试前期也不会要求必须能搭建环境,但在自学的过程中可以掌握一些常见的技术,一方面面试时可以加分,其次,当真的需要学习去搭建环境时,自己储备的理论知识也可以及时起到作用。
关于测试环境搭建需要掌握如下技术,这里只列出部分。
理解专业术语,构建测试,跨平台,测试环境镜像、虚拟技术、Linux基础操作、中间件等,以上术语不一一解释,但每一项都对自身测试技能的提升有着关键作用,比如,学习中间件可以通过应用Server管理和监控目标应用程序, 对于发现问题、分析问题都有着紧密的关系。
掌握1-2种常见的开发模式,开发模式可以参考之前推文中的瀑布模式与敏捷模式。重要的了解对应的测试模式,如敏捷测试模式就是相对于敏捷开发而言的。一般情况下游戏公司更多采用敏捷开发模式,了解其迭代开发与增量开发。
了解适当的开发技术,与测试环境搭建类似,前期了解即可,后期在提升自己的职业技能时,开发技术也是必备的,测试人员检查开发"生产"出的产品,如果完全不了解该产品是如何做出来的,则一定不能做到全面的质量管理,也即测试覆盖率与测试深度的问题。
最后,就是测试人员的基本功了,如何设计测试用例与提交缺陷报告 。
掌握设计测试用例的基本方法,如等价类、边界值、判定表、因果图、错误推测法、场景法、流程分析法等等。安装并试用1-2种缺陷管理工具,熟悉基本的操作。一般面试时会问到:以前使用过哪些项目管理工具,缺陷管理工具等。
最后,就是用例书写与缺陷报告的书写格式了,一开始就要给自己形成一个好的习惯。遵照公司内部的书写格式规范,不要允许一丝懒惰,自身就是从事测试的,更要注意一些细节,养成良好的习惯会终生受益。
#软件测试#
你好!很高兴回答你的问题,软件测试专业是当下热门专业,就业前景非常广阔。该专业所需要的技术知识学习难度较大,知识丰富度较高。从你的问题中,看出来你对该专业充满兴趣,以下是我对你所提问题的归纳总结,希望对你有所帮助和更加坚定学习好这门专业。
软件测试专业主要分为测试理论基础、测试项目实战、测试工具、自动测试实战四个课程阶段学习。
一、测试理论基础
1、软件前景分析。课程详情:(1)为什么学测试?(2)互联网行业发展前景分析?(3)测试行业发展及人员需要具备的能力。(4)什么是测试?为什么企业越来越重视测试?
2、测试生命周期。课程详情:(1)测试定义,分类,原则,策略,方法,模型,流程,测试生命周期。(2)模拟测试计划需求澄清过程。(3)掌握测试计划编写的要素。
3、测试用例设计与管理。课程详情:(1)测试用例编写原则,标准,内容。(2)用例管理与维护。(3)测试用例设计:等价类划分,边界图,场景法,因果图,错误推测。
4、BUG的编写及管理流程。课程详情:(1)BUG的起源、定义与分类。(2)BUG严重程度,优先级,状态标准设定。(3)BUG生命周期状态流程管理。
二、测试项目实战
1、Web项目实战。课程详情:(1)模拟项目启动,组建研发团队。(2)项目测试计划设计。(3)测试执行、BUG执行。(4)项目报告总结编写
2、APP端测试。课程详情:(1)企业级APP测试重点功能分析,测试点提取。(2)企业级兼容性测试。(3)APP测试资源准备。
3、APP端项目实战。4、敏捷测试。5、探索式测试。
三、测试工具
1、数据库基础-MySql。课程详情:(1)数据库管理工具。(2)数据库命令使用。(3)数据库高级查询使用。
2、Linux实战。
四、自动化测试实战
1、Selenium Web自动化测试。
2、接口测试。
3、接口自动化测试。
4、性能测试。
以上是较为详细的软件测试不同阶段学习的内容,知识内容非常之多,我个人感觉,对于初学者这些课程几乎接收不全,即使学会,很难理解,无异于给自己压力, 我建议你先明确自己的阶段,入门一般可以找一本基础书籍看看定义概念,理解岗位,对于现在主流的工具有一些浅显的认识,一般就可以达到入门的标准。
[从大的方向来看,需要学习以下内容:
1.计算机网络,例如了解什么是IP、TCP协议、UDP协议、http协议等。
2.软件工程,了解软件开发的流程,软件的开发模式。
3.操作系统,例如linux和windows平台的运维。
4.测试工具的学习。
5.软件测试理论,例如需求用例设计,用例评审,bug管理等
6.开发语言的学习,例如python或者java等,数字sql等数据库语言。
做为从事测试工作十几年的一个老测试,看了好几天这个问题,但却一直没点进来回答这个问题!原因很复杂,但今天最终还是想给希望踏入这个领域的有心人分享一些个人经验!
一、测试是一个入门相对容易的职业。可以这么说,只要对电脑操作有一定了解的人,原则上都可以去做软件测试,只是刚开始能做的测试任务比较简单罢了!
二、测试又是一个精通比较困难的职业。很多非常牛的计算机系学校开设有专门的软件测试硕士专业,用来专门培养高水平的测试人员。
从以上两个极端的测试从业者水平之间的知识差距可以分析软件测试大概需要学习的内容。
- 如果只希望做基本的UI测试或简单重复测试,只需要了解电脑基本操作、被测程序的基本业务操作、知道碰到问题报告一下就够了。这时候可能自学基本软件测试和电脑入门的书就可以完成测试操作了。
- 如果更进一步水平的测试业者,就需要了解问题的为什么发生?验证问题是否解决?下次测试该怎么发现类似问题?这时候需要的知识可能就需要专业的培训机构经过1、2个月的培训才能达到这种境界。但一般培训机构除了测试的专业知识课程和一些典型项目测试实际操练外,同时会讲一些计算机相关的一些知识,比如:软件工程、操作系统、数据库、网络等,但这些都是皮毛。
- 更进一步软件测试工程师是一些计算机系科班出身的从业者,本身除了在学校深入地学习过计算机系列课程外,开始在测试的细分方向上下功夫,比如:自动化测试、性能测试、安全测试。这时候测试的功力和专业度就非常高了,除了有学校的课程基础知识外,还需要在实际工作中熟悉不同类别的专业软件工具:商业的、开源的、自研的等等。
- 最牛级别的测试就是那些专家级和领域翘楚级测试业者。他们引领着业界测试的方向:最新的测试技术、最新的测试理念、最新的测试方法等等。
基于以上,可以说软件测试是一个需要活到老学到老的职业,你愿意学的内容根据你希望达到的职业目标紧密联系在一起的!
希望以上对您有一定参考和借鉴!
一枚IT兵哥
庚子年春于北京
第一步,测试基础:
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。
大概就包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等。
第二步:学习脚本语言
如:python语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。都说C语言最难,但是用得确实也多。
第三步:学习软件测试工具
学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。
第四步:计算机硬件知识
做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
第五步:数据库测试
MySQL数据库
MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。
Redis数据库
Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。
第六步:项目实战
最好参与真实项目的测试工作,积累真实项目的测试经验。
成为优秀软件测试员之提升条件,如果你想成为一个更优秀的软件测试员的话,除了上面那些,你也最好能够具备开发语言即代码编写能力,虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程 师的一部分工作就是在写测试工具。
虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你 现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是Java或者是VB什么的)所以在开发语言中测试需要更广的学习。
成为软件测试员之必备条件,就是你一定要有良好的心态。心要静、细心耐心、责任心。心静不下来无法对bug展开发向思维及拓展想像。
任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。
每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理
软件测试的学习门槛其实是很低的,不需要有计算机基础,也不需要你有相关的背景,只要认真学习,耐心细心,都能够学会。因为软件测试课程会从计算机基础开始讲解,再一步步深入到具体的软件测试方法和项目实战。
软件测试是分为手工测试和自动化测试的,自动化测试可能需要编写脚本来控制测试工具进行自动化测试,但是手工测试则不需要,只用手动点击进行测试就可以了。
如果你觉得自动化测试有点难度的话,只掌握手工测试也能够做软件测试工程师,找到不错的工作。
当然,如果想要升职加薪的话,在后续掌握自动化测试也是很有必要的。不过那也是职业生涯后几年的事情,作为零基础的IT小白,现阶段努力学好手工测试就可以了。
手工测试分为功能测试、接口测试、性能测试三大类,并不需要学好所有方向,只需熟练掌握其中一个方向就可以从事相应方向的测试工作了。
其中功能测试相对来说比较基础,是初级软件测试工程师大多会从事的方向。接口测试和性能测试就属于进阶一些的方向了,但也不是很难,前期可以先了解一下,后期想从事相关工作的时候再掌握就可以了。
需要学习掌握的技能有不少,比如尚脑的学习课程有:SQL Server数据库技术、Oracle数据库技术、JAVA编程、Windows操作系统和网络基础、软件测试基础理论、Linux操作系统及网络环境、质量管理工具禅道和缺陷管理工具JIRA、Jmeter、性能测试工具LR、Selenium、基于Python语言的Web接口开发与自动化测试、手机APP功能测试、手机APP性能测试、手机自动化测试工具、手机APP黑白盒测试、黑客技术于黑客事件渗透测试指南、信息收集与社会工程学等,还是要认真学习实践的。
第一步,测试基础:
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等。
第二步:学习脚本语言
如:python语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。都说C语言最难,但是用得确实也多。
第三步:学习软件测试工具
学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。
第四步:计算机硬件知识
做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
第五步:数据库测试
MySQL数据库
MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。
Redis数据库
Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。
第六步:项目实战
最好参与真实项目的测试工作,积累真实项目的测试经验。
成为优秀软件测试员之提升条件,如果你想成为一个更优秀的软件测试员的话,除了上面那些,你也最好能够具备开发语言即代码编写能力,虽然不会写代码也能做测试、但是如果你想做到高级测试工程师以上、那么代码编写能力就是必选项、如果不会写代码、那么你不可能成为高级测试。高级测试工程 师的一部分工作就是在写测试工具。虽然测试也需要写代码但不需要和开发一样那么精通某一门语言、可是测试却需要了解很多门开发语言(举一个简单的例子:你 现在所在的项目从C++语言、2年后你换工作了、新公司的开发语言是Java或者是VB什么的)所以在开发语言中测试需要更广的学习。
成为软件测试员之必备条件,就是你一定要有良好的心态。心要静、细心耐心、责任心。心静不下来无法对bug展开发向思维及拓展想像。任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理。
这个问题得看您原来从事什么工作,如果您原来是搞软件开发,那可以负责任的和你讲很容易。如果您原来不是从事IT相关的工作,或者说没有一点的编程相关的知识。那就不是很容易。
但是不容易不代表不可能。如果想从事IT测试的话,简单的测试。举个例子,比如你要测试一个网页,例如一个登录页面。你可能要测试一下各种输入是否合法,最长可以输入多长等等。总之就是你能想到的各种方法去折腾它。但是,这只是最简单的测试,如果只会这样。并不能成为一个合格的测试。
更进一步,你需要了解一下测试的各种理论,框架等等。比如,回归测试,冒烟测试,等等。有很多这方面的书籍可以参考。此外还有很多的测试理论如TDD,BDD等等,了解这些也是必须的。
再者,测试工作不可能一直是人工手动进行的。自动化测试,那是必须的。那怎么才能自动化呢?学习一门脚本语言,那也是必须的。就测试而言,Python是很不错的。值得学习。
总得来说,做测试大概有一下几个步骤:
1.了解你需要测试的系统
2.编写测试用例
3.手动测试
4.编写自动化测试脚本
5.生成测试报告
6.针对每一个发布自动化跑测试脚本
当然具体测试不同的系统,比如你要测试一个网络交换机,那了解各种网络协议,那就更复杂了。
说了这么多,其实只要有人带着,然后自己在努力点。也不会太困难。但是如果只是自己一人埋头苦学,缺乏相应的实践。那就不太容易。
希望回答对您有帮助。加油。
1/6 分步阅读
会一门编程语言,会到什么程度,能写自动化脚本;但是能不能做好测试不仅仅是会编程而已。
2/6
会SQL,除非那种报表类型的测试,会普通增删改查,知道4种join的区别就可以了(如果你想成为DBA,那么建议你还是深入研究更为妥当)。
3/6
测试用例、测试方案要会写,常用的测试设计方法要知道。
4/6
会通信协议,HTTP是必须的,看行业脑补,做电信的SMPP/MM7/MDSP,做即时通信的SIP/XMPP,会到什么程度,有个RFC在手边能够读懂报文。
5/6
会性能,这个比较宽泛,要学的太多,前端调优,中间件调优,函数调优,数据库调优。
6/6
Windows、Linux系统命令要会敲,安全性和易用性要了解。