• 0
  • 0
分享

  对于有能力的人,除了金三银四、金九银十换工作的季节外,任何时刻都可能出现机会,准备了大半年终于到了换工作的时机。在此给大家分享下个人面试前后的一些准备工作以及面试过程中的一些常见问题分析。


  测试思维

  面试中很经常看到一个问题就是“给你一个登录页面/给你一根笔,你怎么测试?”,实际上面试官主要考察的是你的测试思维,这个时候你要从以下几个方面去回答:UI测试、功能测试、用户体验、安全性、性能等等几个方面去考虑。然后每个方面进行扩展,简单讲述几个用例即可。

  1.熟练背好测试思维的几个方向

  背好测试思维的几个方向的目的,是希望在面对面试官问题的时候,你能有条不紊的阐述你的测试思路,除了减少自己内心的紧张感外,同时能给面试官展示你自信的一面。

  2.将测试大纲结合到你的实际工作经验中

  面试官除了会问你某个东西怎么测试外,还会关注你的简历内的经验,从简历内挑选一个来进行深度考察。

  例如简历中如果写了财务模块的测试,那相对应的在面试前你就要对该模块进行简单的总结。以下是我的简单总结,仅供参考:

  UI测试:通过对比UI效果图进行支付按钮、支付详情页等ui测试

  字段规则校验:检测页面字段的必填、非必填、合法、不合法规则

  业务逻辑校验:主要分为正向逻辑、逆向逻辑、前后端交互数据同步等方向

  暴力测试:同一条数据重复提交检验、请求超时校验、请求中断校验等

  安全测试:支付金额与收款金额不一致测试、重复支付测试

  性能测试:关于性能模块,目前个人还没去深入了解。

  问题定位能力

  面试中经常会遇到以下两种问题:页面崩溃了如何定位?如何定位前后端问题?

  web页面问题定位

  第一步:web前端与服务端判断

  先判断是前端还是后端的问题,如果是接口请求响应数据是正常的,则进一步定位前端问题。

  前端问题可以通过F12打开调试模式,切换到source 页面进行查看是否是js文件内的语法错误,或者是资源文件位置未找到等问题

  第二部:服务端具体原因分析

  后端接口请求异常,则可通过http的请求状态码进行判断

  400--请求语法错误,也就是前后端语法定义不一致

  401--未授权

  403--服务端拒绝访问

  404--资源不存在

  500--服务器内部错误

  如果遇到磁盘满了,就需要看应用程序是否活着,如果活着则返回500(服务器处理异常),若是应用程序已经死了,则返回400资源不存在了

  App程序问题定位:

  1.安卓和ios对比同时存在的错误,大概率为服务端错误

  2.抓包工具/app端调试模式日志/后台日志系统,通过日志内容分析是否服务端错误,常见的服务端错误有如下:

  2.1接口请求异常错误:直接提示系统异常等

  2.2接口请求成功返回状态码200,但是响应数据内容错误

  2.3接口响应返回数据正常,但是前端字段取值错误

  专业技术能力

  任何一个产品都离不开功能测试,所以作为一个资深测试人员,至少必须具备上述的“测试思维”、“定位分析能力”。除了必备能力外,作为测试人员如果能具备以下能力,无疑再测试过程中能大大加深面试官对你的好评。

  1.自动化

  自动化类型可以大致划分为接口自动化、UI自动化(appinum、selenium等)、性能等,在写简历时着重写自己熟悉的类型,面试前着重刷该类型的面试题,在遇到不会的问题时,可以通过该问题牵引出其他你会的东西,并表示你不会的时候,是否有其他的解决方案。

  场景:

  面试官问:你会压力测试么?

  应聘人员:关于压力测试我这边没有深入研究,但是我有研究过使用jmeter进行接口自动化,在研究时有简单的通过jmeter 的同步定时器、调度定时器对部分接口进行简单的压测,至于压测的结果和分析以及后续的调优需要开发协助,毕竟性能测试的水比较深,不是个人简单学就能迅速掌握的。

  2.Linux/环境部署

  将比较常用的linux命令背起来,面试的时候灵活的说出自己常用的命令是哪些,然后不常用的一般在使用时百度一下即可。

  3.数据库

  如果经常使用数据库那就没问题,如果日常使用比较少,那就要提前背增删改查,然后面试时结合日常测试场景进行描述。

  场景:

  数据库在日常测试过程中,主要使用增删改查,例如说测试到支付场景,由于支付金额较大,我们需要提前根据订单号查询到对应的收款任务,再将收款任务的相关金额字段修改成0.01进行支付测试。

  4.开发语言能力

  如果想要凌驾于普通功能测试岗位的薪资,就肯定需要掌握一门开发语言,会java更好,不会的话学习python是一种不错的选择。因为现阶段行业内流行自动化,但是实际上前期很多测试人员都是没有开发语言能力的,后期学习的一般都会选择python比较易懂、快速上手。

  所以没有别的选择的情况下,选择python语言进行学习无疑机会会更大(当然这么是针对目前厦门的情况,各个城市有不同的情况,仅供参考)。

  至于语言能力的掌握程度至少要能支撑你的自动化框架,对框架内的一些方法进行封装使用。

  具体在面试时可以简单告诉面试官,你用python语言写了自动化里面的哪些内容,加深面试官对你的答案的可信度。

  总结

  以上时个人近期面试的一些经验总结,也明白了作为一个测试人员真的是需要面面俱到的难呀~人员维度方面从上要到产品,下到开发两个方面去提高产品质量;能力方面要具备开发的基本能力,也得具备运维的基础能力,所以无疑这也是测试人员需要游走在整个项目团队的核心人员,相信未来测试的地位也会越来越重要~


作者:绿豆芽呀  

来源:http://www.51testing.com/html/39/n-4480039.html


2021 问卷礼物图.png

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   一、MockK简介  MockK是一款功能强大、易于使用的Kotlin mocking框架。在编写单元测试时,MockK能够帮助我们简化代码、提高测试覆盖率,并改善测试的可维护性。除了基本用法外,MockK还提供了许多额外的功能和灵活的用法,让我们能够更好地模拟对象行为、验证函数调用,并在测试中处理更复杂的场景。本文将深入探索MockK框架,介绍其基本用法以及一些额外的高级特性,助力开发者更优雅地编写Kotlin单元测试。  二、基本用法  在开始使用 MockK 之前,我们需要将其库添加到项目的依赖中。然后,我们可以使用 mockk 函数创建模拟对象,使用 every 函数来定义模拟对象...
            0 0 419
            分享
          •   Linux终端常见用法总结  一、前言  熟悉Linux终端的基础用法和常见技巧可以极大提高运维及开发人员的工作效率,笔者结合自身学习实践,总结以下终端用法供同行交流学习。  二、常见用法  1.快捷键  1.1.Alt + .  在光标位置插入上一次执行命令的最后一个参数。  1.2.Ctrl + R  模糊搜索历史执行命令。下载安装fzf可以提升该命令的交互性。  1.3.Ctrl + Z  将正在执行的命令送入后台,以继续使用终端。执行bg命令可以查看后台正在执行的命令列表,执行fg命令可以调回后台正在执行的命令。  1.4.Ctrl + A  移动光标到首位字符。例如,在已输入命令...
            0 0 953
            分享
          •   在JMeter中有两种类型的处理器,即“前置处理器”和“后置处理器”,主要用来对其覆盖范围内采样器请求和响应的内容进行修改或截获。  【前置处理器】  “前置处理器”,又称预处理器,可以在我们发出“请求”之前执行一些相关操作。例如,假设我们需要通过JMeter爬取被测站点的所有链接并随意点击任意链接,检查其有效性,这就可以通过JMeter前置处理器中的“HTML Link Parser”来实现,该前置处理器会对指定主机/域名上所有链接进行解析和验证。  【前置处理器DEMO】  在针对服务端做压测时,我们往往需要有这样的工作场景,多个虚拟用户并发访问服务端,但每个用户请求的URL各不相同,...
            5 7 1467
            分享
          • 为什么需要MockK在MockK之前,已经有一大批测试库可以用于Mocking,其中有名的也有很多,比如Mockito, PowerMock,Jmockit等等,但是他们都有各自的缺陷,这些缺陷也和Kotlin的特性有关。关键字在 Kotlin 里面 when是关键字,Mockito 的when ,必须加上反引号才能使用:`when`(xxxx).thenReturn(xxx)如果看起来不舒服,也可以舍弃 Mockito 改用 mockito-kotlin。在 mockito-kotlin中使用了whenever代替when,也有更简洁的写法,但是归根到底还是在使用Mockito的Api,所以...
            0 0 5062
            分享
          • 一、元素操作方法方法:1、.send_keys()  # 输入方法 2、.click()  # 点击方法 3、.clear()  # 清空方法注意:在输入方法之前一定要清空操作!!# 导包 from time import sleep from selenium import webdriver # 实例化浏览器 driver = webdriver.Chrome() # 打开网址 driver....
            1 2 2476
            分享
      • 51testing软件测试圈微信