软件测试需要学习些啥技能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试需要学习些啥技能?相关的知识,希望对你有一定的参考价值。

我想了解这方面的知识,却不知道从何学起

软件测试需要学习测试用例、测试用例的方法、缺陷管理工具、掌握数据库、App测试、python语言、Linux系统、前端语言等技能。

1、测试用例

这是每一个工程师必备技能,也是标志你进入测试行业最低的门槛,关于测试用例可以参考我以前写的文章。

2、测试用例的方法

测试用例的方法,只用掌握相关的方法,才能把测试用例写好,覆盖度高。

3、缺陷管理工具

缺陷管理工具,就是提交bug工具,这是评价软件质量考核之一,也是软件工程师的价值所在。

4、掌握数据库

掌握数据库非常重要,这个世界由许许多多数据组成,软件测试,就是满足客户的需求,但必须数据正确,其实软件工程师需要对数据流向的了解,才能更加深入地了解业务,这也是一项基本技能之一。

5、App测试

App测试,从兴起到目前市场的成熟,APP可以说成为市场上的主流产品。若你不会APP的测试,很多公司是是不要的,所以需要我们深入了解。web测试,其实跟App相似。

7、python语言

python语言是现在最流行的语言,这是测试人员技能升级最好的方式之一,测试人员可以利用他做非常多的事情。

8、Linux系统

Linux系统,测试人员利用它最多的是看日志,更好地为开发定位bug,这也是提升技能之一。

9、前端语言

前端语言,可以让自己更好的判断bug是前端还是后端造成的,多学一点技能对于测试人员非常好的。

参考技术A 第一步,测试基础:
测试基础是软件测试最最最重要的部分,只要你是做测试,不管是什么测试,测试的基础、理论知识都是必须学会的。大概就包括:测试计划编写、设计测试用例、编写测试报告、编写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展开发向思维及拓展想像。任何一个测试最先面对的心理压力就是重复性的劳动。在你的测试生涯中,一定会碰见很多心理的考验,自己对于质量心里没有底、或者由于产品发布问题或者达到了测试瓶颈时候的困惑等。每个人都有自己的背景以及性格,往往对于测试来讲,就是考验心理素质的时候,这个时候就需要你自己不断地去克服这些心理
参考技术B

  每个软件在上线之前都离不开重重测试,想要成为一名合格的软件测试工程师,首先需要学习功能测试的技术,计算机基础、软件测试核心理论、Linux、数据库都是需要学习的,学完这些基本可以胜任功能测试工程师的职位。

  紧接着要学习自动化测试的技术,Python、Web自动化测试、App自动化测试,新增移动端测试,包括App兼容性测试,7*24小时稳定性测试,功耗性能测试,UI测试,交互测试等。学完这些基本可以胜任自动化测试工程师的职位。


  然后开始开始学习接口测试的技术,主要包括接口测试核心理论、接口测试工具Jmeter、接口测试工具Postman、抓包工具Fiddler、Jenkins持续集成、Python实现接口测试等,最后要学习性能测试相关技术,学习包括性能测试理论、虚拟脚本生成器操作、场景设计、报告生成和分析等相关的技术。

  以上就是优就业小编整理的软件测试需要学习的技术。

参考技术C 软件测试要求知识面广,但不一定精,编程语言的话,最好是什么都学过,至少几种主流的程序语言要学过,如java、.net、C 。还有会一些脚本语言vba(vb)、sql、 C等。
网络的话:TCP/IP协议,局域网广域网相关知识等
数据库:当前主流的mysql、ms-sql、oracle
常用测试工具:HP的三剑客首当其冲了:QTP(自动化功能测试工具)、LoadRunner(自动化性能测试工具)、QC(TD前身,测试管理追踪工具)。当然这些都是收费产品。网上有破解版的可供学习。(一套)
开源免费的测试工具:QTP(自动化功能测试工具,破解版的可以满足绝大部分测试需求)、jmeter(自动化性能测试工具)、bugzilla(测试管理追踪工具)。H13660006544您好!希望能有所帮助!有空到软件测试基地,365testing看看。
参考技术D

学软件测试,慧乐课堂,前面是134中间是3660后面是0801

~~~就业率百分之百

初级级测试工程师

很多人理解软件测试就是在计算机按来按去去寻找软件缺陷,诚然,初级软件测试工程师一般只做黑盒测试,也就是说,按部就班的执行测试用例,当预期结果与实际结果不符时,就认为可能寻找到一个软件缺陷。

初级测试工程师:从零基础入门到能够找到工作,月薪6-10k

可能你是刚毕业的学生,也可能你是打算转行进入软件测试这个行业,那么首先以下基本的理论你是必须要掌握的:

软件测试的定义、生命周期、工作流程、需求分析;

测试用例的设计、编写、评审;

bug的基本知识以及禅道的使用;

测试计划、测试报告的编写;

SVN、Git版本控制工具的使用;

搞定上上面的这些基本必备内容,就已经知道可以做具体的实战内容,假如一个项目拿到手之后,按照下面的一套流程跑一遍:

发布项目进行立项,建立项目组进行分工;

需求评审,学会如何看需求文档,进行需求分析,罗列测试点;

整理测试点,编写测试用例,然后进行用例评审;

执行测试,比如功能、界面、前后台、兼容性、数据库,对于发现的bug提交到禅道;

分析、总结、编写测试报告;

这个流程完整的跑一遍之后,只能说对于整体的测试流程算是掌握了,但是仍然不足以找到一份合适的工作,想要学会做功能测试,以下的内容也是必须掌握的:

Linux相关技能

操作环境、命令、安装数据库、部署测试环境等

数据库相关技能

各种命令用法、字段、增删改查

接口测试相关技能

接口测试基本理论、http协议、测试方法;

接口测试需求分析、用例编写、评审;

几种工具的掌握,jmeter、postman、soupUI;

APP测试相关技能

安装/卸载、离线、UI、登录等测试内容;

兼容性测试、monkey、fiddler抓包;

OK,搞定了这些,恭喜你已经可以投出你的简历去寻找一份测试的工作了!

中级测试工程师

中级测试工程师可能不如开发工程师在某个领域深入,但是知识面要宽一些。中级测试工程师通常具有一定的开发经验,而且对质量管理,网络,多种操作系统,多种脚本语言,数据库等领域都具有相当程序的知识。另外中级测试工程师往往较普通开发人员对项目架构接口等细节有更深的了解,他们需要纵观全局并且注重细节才能设计出有效精彩的测试用例,经常需要见人所未见,还会对需求提出改进意见。

中级测试工程师:测试在职搞定性能测试和自动化测试,月薪15-25k

想要到中级测试工程师只有搞定性能、自动化测试,才能独当一面!

性能测试学习路线:

性能测试的概念和流程

常见问题剖析、流行工具、方案设计

性能测试工具

jmeter工具的使用、实战;

jmeter多协议、拓展与定制;

分布式压测与任务调度;

性能监控

性能监控体系与监控数据采集

性能实施

分布式服务压测,场景设计、场景执行

测试结果关联分析,TPS、响应时间、线程关联分析,压力和资源使用率关联分析

性能分析与报告

jvm调试与系统调试

性能瓶颈分析

自动化测试学习路线:

搞定Python或者Java语言,建议先从Python入手

基本的语言知识,语法、函数、模块、输入与输出、面向对象编程

脚本编写、标准库、多线程、第三方库,外部数据处理

unittest、pytest测试框架、参数化、数据驱动

web端的自动化测试

selenium安装、录制、处理

web控件、javascript脚本、PO模式

移动端APP自动化测试

appium使用、录制、元素定位方法

APP控件定位、交互,参数化用例

appium问题定位分析、源码分析、二次封装

服务端接口自动化测试

接口自动化测试框架request

接口请求构造、断言

json/xml请求、响应断言

headcookie处理、认证体系

以上是中级测试工程师所具备的技能,你技能达到性能测试,月薪可达到15k,技能达到自动化测试,月薪25k!

高级测试工程师

高级测试工程师需要具有丰富的开发知识和经验,既懂开发又懂测试,是复合型的通才,因为高级的白盒测试,性能测试,测试开发及安全测试等都需要强大的编程能力,高级的安全测试甚至还需要出色的反汇编功底。这些高级测试工程师在国内数量非常少,年薪也比较高,通常只有大公司才请得起这样的高薪人才。

高级测试工程师:测试专家,懂开发,会测试,年薪30k+

完善测试技术体系

Linux、docker、shell、SQL、Python/java

打牢自动化测试技术基础

web自动化测试

selenium测试框架

PageObject设计模式、原则、演练

APP自动化测试

android自动化测试框架

appium高级应用于原理剖析

APP自动化测试实战

测试框架封装改造

ios自动化测试

移动专项测试

健壮性测试、弱网测试、崩溃检测、耗电量分析等

移动端性能测试

移动端安全测试

接口自动化测试

接口协议与抓包、代理技术与mock

接口自动化测试框架、HTTPrunner测试框架

dubbo接口自动化测试

接口管理工具swagger、接口安全测试

docker容器技术

docker容器、docker镜像

持续集成/持续交付/devops

jenkins持续集成

Jenkins持续交付

软件测试工程师初学者都需要学习了解些啥?

  第一步,测试基础

       测试基础是软件测试最重要的部分,相信不用我多说大家都知道,只要你是做测试,不管是什么测试,测试的基础理论知识都是必须熟料掌握的。测试的基础理论知识包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等。学习这一段的时候可能比较枯燥,但是只有坚实的理论基础才能开展后面的学习。

       第二步:学习脚本语言

       如:python语言和java语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。大家都说C语言最难,但是C语言毕竟是基础中的基础,掌握了它后期深入学习也会轻松一些,而且C语言用得确实也多。

       第三步:学习软件测试工具

       学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。

       第四步:计算机硬件知识

       做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。

       第五步:数据库测试

       MySQL数据库

       MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。

       Redis数据库

       Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。

       第六步:项目实战

       把学会的理论与实践相结合起来,最好参与真实项目的测试工作,积累真实项目的测试经验。

参考技术A 建议从以下路径去学习,效果更佳!
第一步,必然是打好基础,这一点跟学习其他技能是大同小异的,打好基础至关重要。
测试工程师的工作流程一般是这样的:测试计划的构思、测试用例的编写(等价类、边界值分析、流程图、因果图、正交试验等)、接着编写测试报告、报告BUG和跟踪BUG修复情况以及学习掌握各种常见的测试手段如功能测试、接口测试、APP测试、自动化测试等等。
第二步,学习一些常用的测试工具,如loadrunner(性能测试),selenium、Appium(自动化测试),Postman、Jmeter(接口测试)等。这些工具很实用的,也可以帮我们大大提高工作效率,另外bug管理工具也需要学习一下,比如禅道就很好用。
最后,建议学习一些辅助技能,比如学习Linux系统的常见命令以及数据库,如mysql、Oracle等等主流数据库。
除此之外,编程能力对于软件测试工程师们也是一个不可或缺的技能,面试经验丰富的小伙伴们可能比较清楚,很多公司都会对软件测试岗位候选人的编程能力有相应的考核。
虽然对刚入行的初级测试工程师们来说,编程能力不是必须项,但是掌握一门编程语言能够帮助测试工程师们应对一些测试工具无法应对的情况,比如某些情况下需要编写一些更为复杂的测试脚本,这时编程语言便能派上用场。同时,熟练掌握编程语言也是进阶为高级软件测试工程师的必备项,能够有助于提升自己的竞争力,对我们的职业发展也有好处。
参考技术B

初学者一般都从基础开始学习,小蜗这里按阶段整理了一份完整的基于Python的软件测试学习路线,初学者先从第一阶段开始学习,然后循序渐进,掌握更多知识。

第一阶段:专业基础课程

 

阶段目标:

1. 熟练掌握IT核心技术:编程,数据库,操作系统,版本控制

2. 能够熟练运用所学技术搭建各类服务器环境

3. 深入理解软件研发过程各种疑难杂症及处理手段

4. 掌握Python编程技术并熟练运用Python进行程序设计

 

知识点:

1、Web页面元素,布局,CSS样式,盒模型,JavaScript程序设计,函数,基础算法,正则表达式。

2、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为软件测试和测试开发打下基础。

3、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Shell编程Linux作为一个主流的服务器操作系统,是每一个测试开发工程师必须掌握的重点技术,并且能够熟练运用。

4、Python编程基础,语法规则,函数,数据类型,PDBC,培养扎实的Python编程基本功,同时对Python核心对象编程有熟练的运用。

5、Python面向对象,异常处理,文件IO,多线程,网络编程,PyQT界面开发,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。

 

第二阶段:专业核心课程

 

阶段目标:

1. 熟练应用所学知识完成一个标准的软件测试项目

2. 熟练运用Python完成GUI测试,接口测试和性能测试开发

3. 对测试开发技术体系和实现原理有深入的理解

4. 灵活运用测试开发技术解决项目中的各种问题

 

知识点:

1、软件工程,软件质量,系统测试流程,方法,专业术语,测试用例设计,禅道管理工具,测试报告,缺陷管理理解软件工程的各类实际问题,理解系统测试的理论、方法与过程,熟练运用测试用例设计方法高效设计测试用例。

2、测试需求分析,测试方案设计,测试用例设计,测试项目实施,缺陷报告与测试报告,深入理解系统测试各个过程和关键环节,熟练完成系统测试项目。

3、SikuliX框架,UIAutomation框架,Selenium WebDriver框架,基础框架,Android应用,Monkey测试,Appium移动端测试框架,UIAutomator2移动端测试框架综合运用各类应用操作平台,完成各种自动化测试框架的学习和应用,深入理解GUI自动化测试技术及相应框架的测试开发。

4、Python单元测试框架,网络通信协议,HTTP与HTTPS协议,WebService与WebSocket协议,Python的接口测试库,PostMan与SoapUI接口测试工具通过对代码级接口测试和协议级接口测试的测试开发实战,灵活运用Python开发接口测试脚本,熟练运用各类接口测试工具。

5、性能测试原理,指标体系,场景设计,实施过程,JMeter工具应用,BeanShell脚本开发,Python+Locust性能测试框架深入理解性能测试技术体系和方法论,熟练运用JMeter性能测试工具和Locust性能测试框架实施对任意系统的性能测试。

 

第三阶段:综合实战项目

 

阶段目标:

1. 将软件测试和测试开发技术灵活运用于项目中

2. 具备较强的测试开发能力,独立完成测试开发项目

3. 综合运用软件测试技术,满足企业中高级人才需求

4. 对所学技术有深入的理解并具备独立解决问题的能力

 

知识点:

1、测试需求分析,同行评审,测试计划,测试方案,测试用例,配置管理,持续集成。通过对大型企业级应用系统的测试项目实战,强化理解系统测试项目的实施过程与技术细节。

2、接口测试设计与实施,回归测试,冒烟测试,安全性测试,RobotFramework框架应用,UI自动化实战将各类自动化测试技术结合项目实战演练,强化对自动化测试技术的运用,同时掌握更多的测试框架。

3、性能测试项目实战,LoadRunner性能测试工具,总结通过综合项目实战,将全套测试技术融入到项目中,强化学习效果和项目经验。

4、Python原生测试框架开发,包括Monkey,UI,图像识别,云测试平台,HTML测试报告,持续集成,KDT关键字驱动框架开发等原生技术实现通过大量的Python原生代码开发,深入理解自动化测试开发技术的底层实现原理,完全抛弃对工具的依赖,做到真正的测试开发技术。

5、基于测试框架的设计思路和实现手段,自主实现一套测试框架能够独立完成一套自动化测试框架,并能够直接用于实际项目中。

6、持续集成与Jenkins,安全性测试原理与工具,Python爬虫开发与Scrapy框架,提升软件测试其它类技术,增强知识面,提升竞争力,助力职业发展。

 

 

补充知识

 

1、 算法进阶,图像处理,视频处理,加密解密,压缩算法。

2、 UML统一建模语言、五种图、类图、类图详解、用例图、时序图。

3、Dubbo分布式开发框架,Oracle关系型数据库管理系统,MongoDB非关系型数据库管理系统。

4、 大数据开发框架Hadoop/MapReduce/Spark。

5、 Android与iOS的原生应用开发与WebApp开发。

6、OpenCV图像处理框架、TensorFlow深度学习框架,Lucene全文搜索引擎与中文分词框架Ik-Analyzer,视频处理算法与框架等。

蜗牛学院Python软件测试思维导图

以上是关于软件测试需要学习些啥技能?的主要内容,如果未能解决你的问题,请参考以下文章

软件测试工程师初学者都需要学习了解些啥?

想要成为一名合格的软件测试工程师,你得会些啥?

程序员需要学些啥?

想制作openwrt固件,先要学习些啥?

软件测试需要学习些什么技能

想从手工测试转岗自动化测试,需要学习哪些技能?