• 0
  • 1
分享
  • 2023年最新推荐全栈软件测试工程师学习和进阶路线——软件测试圈
  • 曼倩诙谐 2023-05-17 15:35:15 字数 2996 阅读 1335 收藏 1

  随着国内软件行业的蓬勃发展,各种各样的软件应用层出不穷,人们的生活也越来越依赖软件,因此软件的质量就越来越受重视,而软件测试作为软件研发过程的两大核心之一,在企业和研发团队的地位也越来越重要,岗位需求也越来越大。本文就告诉各位想要进入IT行业成为测试工程师的小伙伴和已经在测试行业并且想要有更大发展的小伙伴一条进阶和发展之路。本文内容较长,望各位小伙伴能够耐心读完,相信一定会令你茅塞顿开,获益匪浅!

  一、掌握通用软件测试基础技术

  抛开所有其他的计算机技术不谈,就只是软件测试基础技术那也是比较复杂的,远不像网络上或者你身边的朋友说的那样,对软件点点点就够。因为如果只是对软件点点点,软件测试有一种测试方法叫做“猴子测试”,完全可以找个小动物随便进行,找人干啥?因此就要有各种创新性的作法。

  比如看到软件界面上有个出生日期的字样,首先就要联想到后面跟着的是一个日历的选择,并且只需要年月日就够了,更要保证这个选择过程不能选择当前日期未来的日期,毕竟未来一切尚不可知。当然了,这只是软件测试的一个方面。

  再比如,我们购买的手机,有个性能参数是工作温度,在适合的工作温度区间,测试人员要关注在不同的温度时,APP运行期间的耗电量,理应平稳的好点会不会在较低温度时出现耗电量猛增的现象。

  所以,软件测试工程师可以在不懂其他技术的时候,只需要按照其他的软件运行要求和标准,也就是我们所说的需求,进行测试和判断就好。下面就说一下这部分应该掌握的技术:

14-1.jpg

  二、软件测试环境配置技术

  在管理科学和严谨的软件研发团队中,测试人员所使用的测试环境和开发团队所使用的开发环境是不同的。这就要求测试团队的成员能够自行配置和管理测试环境。

  我们都知道,现在绝大多数的软件和系统都是B/S(Browser/Server:用浏览器通过网页的形式使用应用)结构或者C/S(Client/Server:通过专门的客户端软件享受服务)结构的应用。

  所以,作为测试工程师需要会安装和配置,能让被测试软件提供正常应用服务所需的各种软件和参数配置。

  比如,使用什么类型的操作系统,使用哪一种开发语言环境,使用哪一种数据库管理系统,使用哪一种应用服务软件。

  所以,作为软件测试工程师,需要会使用包含Windows系统在内的其他操作系统,并且按照特定的软件搭配技术进行安装和配置应用服务环境。

14-2.jpg

  三、软件测试数据库技术

  软件测试工程师进行的过程中,除了要懂得具体的软件测试技术和会安装和配置测试环境之外,还要对软件运行中的数据的来源和流转过程进行分析和测试。

  比如,在电商购物的时候对于购物筛选条件:

14-3.jpg

  按照条件查询的时候,结果显示的内容是不是真的正确?这就不仅仅需要了解商品信息显示的内容,更需要了解商品信息的添加,并且判断商品信息在这两个位置是一致的。这就要求测试工程师能够掌握数据库方面的知识:

14-4.jpg

  四、软件测试之Web开发和测试技术

  通过前三个方面的测试技术,基本算是掌握了一定技术的测试工程师,如果经验多一点,拿到8K左右的工资还是比较可以的,但是那也只是测试技术的基础阶段。测试工作非常重要的目标就是找软件的bug,如何能找到软件的缺陷,我们就需要了解软件是怎么开发出来的。

  比如,最常见的各种Web网站。网页上每一个页面的元素都是测试对象。文本框能够输入的数据类型怎么限制,数据长度怎么限制,单选按钮是不是真的能够选择并且只能选择一个,复选框是不是真的能够勾选和取消勾选,提交出去的数据为什么有些就会显示在浏览器的地址栏,有些就不显示,网页上的弹出框是怎么实现的……而以上内容就真的需要Web开发的知识。

14-5.jpg

  Web开发知识能让我们进行Web测试的时候更加得心应手,能更好的发现Web应用的缺陷。Web测试可从以下几个方面进行:

14-6.jpg

  五、软件测试之后端开发技术

  Web属于前端的知识,通过学习这部分的内容,我们可以清楚的了解界面部分的运行原理和内容,但是软件系统的逻辑处理过程是怎样的呢,这就有赖于学习后端开发语言了,这里可以学习Java、也可以学习Python,甚至是C语言或者C++语言,但是推荐学习Python。

  其中主要是因为Python简单,学习起来相对容易一些。而且在测试方面,Python相对更流行一些。另外一个原因就是,虽然学习开发语言,但是主要的目标依然还是测试。

  也就是说,不会像开发一样需要掌握那么深入的内容。所以最起码需要掌握以下的内容:

14-7.jpg

  那也可以阅读书籍实现Python基本知识的学习,推荐图书《Python程序设计基础》。

  六、软件测试之Web自动化测试

  软件测试之所以被认为没有什么技术含量,那是因为很多软件不足以支持大规模的自动化测试,他们的测试处于比较低级的阶段。如果满足自动化测试的要求,那软件测试工作也是一项充满了挑战与激情的工作。

  首先说一下自动化测试中的Web自动化测试,就是自动化测试中比较入门的,偏向于界面(UI)自动化测试。既然是自动化测试,那就势不可挡的需要开发语言,所以在有了开发语言的技能之后,Web自动化测试也将不再是难事。下面说一下Web自动化测试需要掌握的技能:

14-8.jpg

  七、软件测试之移动端应用及自动化测试

  智能手机的广泛应用让基于移动端的APP十分的繁多,并且测试的方向和测试点也变得更多更复杂,除了通用的软件测试技术和技能之外,还要更加注重和结合移动端APP的特点实施测试。

  毕竟把APP的手工测试做的再怎么好,也还是技术含量较低,自动化测试也是必然的趋势。因此,APP的移动端测试也需要掌握。

14-9.jpg

  八、软件测试之前后端接口测试

  接口测试是一种目前较为流行的测试方向,名字看起来特别的高大上,但是技术实现非常简单。通常市面上的主流的测试工具都可以实现企业要求的接口测试的目标。

  为什么是测试工具呢?因为接口测试和基本的功能测试不一样,接口测试没有界面的辅助,全靠数据分析和判断。所以对工具要求较多。例如,下面的这些工具应用都要会:

14-10.jpg

  接口测试对及时要求并不是特别高,但是技术广度却比较高。比如要能够读懂接口文档(API文档)虽然不难,但是全面的接口测试文档内容却非常的繁琐。

  除此之外,接口请求方式,请求协议,响应状态码,响应的数据分析,这些都很重要。

  九、软件测试之性能测试

  性能测试可以说是与手工、功能、UI自动化、接口测试完全不在同一个层面的东西。它的技术要求更高,知识要求更深,经验要求更多。

  因为影响一个软件运行的性能的因素太多了:

14-11.jpg

  所以,市场上性能测试工程师的经验普遍要求在5年以上,并且对操作系统、数据库、网络、开发语言、工具应用、系统架构和设计都有比较高的要求。例如要明确负载测试、压力测试、稳定性测试、可靠性测试、失效恢复测试、大数据量测试等内容的区别,更是要能够读懂测试中系统的各项数据:

14-12.jpg

  除此之外,性能测试中的各种常用术语也要十分熟练:

14-13.jpg

  并且需要能够很清楚的说出这些数据之间的联系,以及他们之间变化的关系。

  另外性能测试绝对不会使用手工测试进行,都是工具进行的。

  这个内容的学习可能不能直接成为优秀的性能测试工程师,但是也能增加对软件测试的深入了解。

  以上九大内容,从基础到进阶,最后到高级,如果能够坚持下来,成为合格的软件功能测试工程师或者自动化测试工程师也是指日可待的!


  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、 安装、卸载测试应用程序应能正确安装到设备驱动程序上;能够在安装设备驱动程序上找到应用程序的相应图标;安装路径应能指定;软件安装向导的UI测试;应用是否可以在android不同系统版本上安装(有的系统版本过低,应用不能适配);没有用户的允许, 应用程序不能预先设定自动启动;对于需要通过网络验证之类的安装,在断网情况下尝试一下;安装时空间不足的情况下是否会导致系统崩溃;软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理;安装过程被中断(比如来电、短信等)后是否能够继续安装或者导致系统卡顿、崩溃;软件安装过程中意外情况的处理是否符合需求(如死机,重启,断电);卸载是否安全,...
            12 12 2287
            分享
          •   摘 要  喂,你那个刚测好的页面怎么又出现了bug?这里怎么交互几次页面重绘就出了问题?你到底对前端测试用例的覆盖率有几分把握,真的没有测试遗漏嘛?对于这些疑问,正在看文章的你如果能够轻松应对,那么请关掉屏幕,本文与你关系不大,出去运动一下吧。但如果你也有类似的困惑,并且正在寻找衡量js代码测试完整度的方法,那么请继续阅读,文中介绍的js覆盖率工具会让你在完善前端测试用例的征途上,走的轻松一些。  正 文  众所周知,前端测试需求多、改动大,业务逻辑复杂又紧密,往往首轮设计的测试用例并不能完全覆盖所有的功能点和diff代码。这时,就需要代码覆盖率工具帮助我们发现测试未能覆盖到的代码分支和逻...
            1 0 1981
            分享
          • 软件测试其实就是对程序进行一些操作,来发现程序所存在的缺陷,衡量软件的质量,并对其是否能满足设计要求进行评估的过程。软件测试方法分类基于直觉和经验的方法Ad-hoc测试方法:强调测试人员根据自己的经验,不受测试用例的约束,放开思想,灵活地进行测试。ALAC测试方法:Act like a customer,像客户那样做,对常用的功能进行测试;错误推测法:有经验的测试人员根据自己的工作经验和直觉测出程序可能存在的错误,从而有针对性地进行测试。基于输入域的测试方法等价类划分法边界值分析法基于组合及其优化的方法判定表法因果图法pair-wise方法正交试验法基于逻辑覆盖的方法语句覆盖判定覆盖条件覆盖判...
            0 0 1146
            分享
          • 读者提问:工作中大家用的比较多的测试用例管理工具有哪些呢 ?阿常回答:1、Excel 2、WPS3、Xmind4、GitMind5、MindMaster6、iMindMap7、MindNode8、MindLine9、zhimap10、Mindjet Maps11、思维简图12、3A 思维导图13、ProcessOn14、用例管理工具:PingCode、TestLink阿常碎碎念:阿常在平时工作中 1、13、14 使用得更多一些。1 用于本地写测试用例;13 用于在线写测试大纲;14 用于做测试用例管理。看完今天的分享对你是不是有所启发呢,有任何想法都欢迎大家后台私信阿常,一...
            0 0 1257
            分享
          • 什么是接口呢?接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app、网址这些它在进行数据处理的时候都是通过接口来进行调用的。程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。一、常见接口:webSe...
            0 0 1424
            分享
      • 51testing软件测试圈微信