软件测试找工作都需要什么技能呢?刚毕业好找工作吗?

软件测试找工作都需要什么技能呢?刚毕业好找工作吗?,第1张

对于很多刚毕业的大学生来说,找工作会很迷茫,不知道行情和找工作时需要哪些技能,蜗牛学院这里根据企业需求和行业变化整理了一份软件测试学习路线,题主可以根据这份大纲进行了解一下。

第一阶段:专业基础课程

阶段目标:

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,视频处理算法与框架等。

01 软件测试理论

作为一个软件测试人员,总不能不知道软件测试本身的东西吧。

你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,还不关心会不会做。

再比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?

02 软件测试流程

如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。

模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧

除了这些,还需要知道在测试流程每个阶段都要相应地做些什么事吧。

03 测试文档

软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。

软件测试人员必备技能之一就是写文档,会总结。

软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。

04 计算机基础

软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。

不然让你关个服务,你迷茫……

让你配置个环境变量,你再迷茫……

让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……

让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫

………………

计算机基础是软件测试人员必备的技能之一。

05 软件、工具

作为一个IT人员,你好意思说自己不会几个软件么?

那我们就一起盘点盘点,软件测试人员必须要会的软件:

office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。

需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。

配置管理工具,不管是以前的SVN还是现在流行的git总要会一个。

远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去操作吧,如果你跑到机房去操作,那一定记得带台显示器去。

碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?

06 数据库

不管是MySQL,还是Oracle,还是SQLServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是SQL语言总要会吧,谁让它们都认识SQL语言呢。

SQL语言又会为DDL、DML、DQL、DCL。

数据定义语言(DDL):

用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。

数据操作语言(DML):

用于操作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。

数据查询语言(DQL):

用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。

数据控制语言(DCL):

用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。

就算你说INSERT、UPDATE、DELETE语句都很简单,照着格式直接使用就行,那SELECT呢。

SELECT语句不仅有简单查询,还有复杂查询。

复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询。

这些语句软件测试人员都要掌握吧。

07 LINUX

Linux做为做为服务器的操作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。

如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。

那你就大错特错了。

如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是BUG,如果是BUG,总还需要定位一下吧。

如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。

那这些命令软件测试人员总都要会吧。

如果你说这些还都可以依靠开发和运维,那你就当我没说。

08 编程语言

既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。

目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。

一般情况下都是选公司系统目前所用的语言。

但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。

如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。

09 行业

软件测试有一条原则是:测试活动依赖于测试内容。

那这个测试内容就是公司业务,在成为业务之前,俗称需求。

经常在JD中看到有支付行业经验优先,有金融行业经验优先,有电信行业经验优先,有电商行业经验优化……

为什么会这样呢?

那是因为测试人员一定需要了解业务,熟悉业务。

从事电信行业的测试人员需要掌握各类协议,比如HTTP协议、TCP/IP协议,还有可能需要熟悉交换机和路由器的原理。

从事金融行业的测试人员需要熟悉各种会计知识。

如果是测试嵌入系统的测试人员还需要了解硬件知识。

软件测试人员需要非常熟悉所测软件的业务,比谁都要熟悉。

1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、操作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。未来软件测试将从繁复的手工操作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工操作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/602283.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-11
下一篇2023-07-11

发表评论

登录后才能评论

评论列表(0条)

    保存