• 1
  • 1
分享
  • 软件测试面试怎样介绍自己的测试项目?会问到什么程度?——软件测试圈
  • 饼干 2024-07-16 16:32:46 字数 3696 阅读 383 收藏 1

  想知道面试时该怎样介绍测试项目?会问到什么程度?那就需要换位思考,思考HR在这个环节想知道什么。

  HR在该环节普遍想获得的情报主要是下面这2个方面:

  1)应聘者的具体经验和技术能力,

  2)应聘者的团队的沟通能力、合作能力和问题解决能力。

  了解到HR目的后,我们就能预判出项目面试题的广度和深度啦,做到有的放矢即可。

  一类问题:体现应聘者的具体经验和技术能力的问题

  问题1:介绍一个你最熟悉的项目

  解答思路:

  ·项目是干什么的?以及项目的基础架构(B/S或者C/S)

  · 项目是给谁用的?

  · 项目的核心模块有哪些?简单罗列一些

  · 项目的核心业务有哪些?至少罗列一个以上的业务线

  · 本人在这个项目中负责的模块有哪些?(罗列模块必须包含至少一个以上的核心模块)

  · 本人在这个项目中做了哪些测试(分类)?

  举例如下:

  我最近的一个项目就是xxx商城,一个基于B/S架构的综合性网上购物平台,销售家电、数码通讯、电脑、家居百货、服装服饰、母婴、图书、食品等各种品牌优质商品,该系统主要针对普通用户和商家用户使用。其中主要有登录注册、热门商品展示、商品分类、购物车,品牌分类,热门搜索等模块,该项目核心的业务线有下单业务、发货业务以及售后业务。 ? 在这个项目中我主要负责:购物车模块、商品分类、品牌分类模块、商品管理模块、权限管理模块,项目前期做功能测试及接口测试,后期我主要编写一些自动化的代码,进行UI自动化测试、移动端自动化、性能自动化等测试。

  问题2 :能举例说明,你是如何做功能测试?接口测试?性能测试的吗?

  回答思路:

  · 举例:商品功能模块怎么测试?

  · 先概要介绍一下测试流程

  · 然后根据模块展开介绍测试点(注意是测试点不是用例哦)

  · 举例:商品模块非功能点测试?

    -界面显示

    - 兼容性

    - 易用性等

  举例如下:

  下面我先介绍一下如何做功能测试的:
  首先,(新项目)我们拿到需求先进行需求评审,确保开发测试产品对需求理解一致;
  其次,根据确认后的需求开始设计编写测试计划与方案,方便后续有效的开展测试工作;
  第三,就是根据需求设计测试点编写测试用例,并完成用例评审,以便测试执行过程中出现遗漏或者不全面的问题;
  第四,执行过程中如果执行失败,需要立即提交bug,并且后续需要跟踪验证,直到bug关闭;
  最后,经过多轮次/迭代的执行,最终完成所有测试工作,编写测试报告,对于项目进行总结。
  接下来,我以商品管理模块为中心,主要给您介绍一下如何设计测试点的:
  首先,熟悉并分析需求,根据需求从正向、反向两个方面进行测试点的整理。
  正向设计(考虑):
  后台商品的增、删、改、查,库管员能够对商品进行基本的操作,包含商品的:名称、数量、价格、库存、列表信息显示等,确保商品数据的正确性和完整性。
  前台商品显示的信息和后台保持正确一致。主要包含:显示名称、价格、库存等信息。用户能够通过客户端进行商品的基本操作(搜索、加购物车、下单等)。
  反向设计(考虑):
  后台管理人员对商品操作不满足必填项能否操作(比如没有名称能否添加成功,库存为0能否添加),
  有商品下单后,后台库管能否对商品进行修改操作。
  搞活动的商品库存和同规格商品的库存之间的关系(能否超过库存?)
  取消订单的商品库存是否恢复(能恢复)
  活动商品的价格和没有活动时的价格是否一致(商品活动价是否高于无活动价格)
  其次,从非功能层面进行分析整理。
  兼容性:
  浏览器:能否兼容主流浏览器,同一浏览器的不同版本。
  操作系统:兼容不同操作系统及不同版本。
  分辨率:兼容主流设备分辨率(移动端)。
  易用性:
  容易使用、容易学习。
  可靠性:
  反复多次使用不会出现异常,能长时间无故障运行。
  性能:
  并发、负载、压力
  安全:
  ...
  除了做系统功能层面测试,还要涉及接口测试.
  在后续项目迭代中主要引入接口自动化,将原有需要手工执行的业务用例通过自动化方式实现,使得整体回归测试的时间由半天缩减为1个小时左右。
  下面我介绍一下我是如何实现自动化的:
  接口测试的核心流程和功能测试基本一致,主要不同点在于接口用例的编写和接口脚本编写,下面重点给你说下这块:
  1.搭建项目框架,使用框架python+requests+pytest
  2.按照分层的思想来设计,好处是将代码和脚本分开管理方便后续维护,接下来介绍重点:API 和scripts,api层主要封装接口方法实现接口请求发送和结果返回;scripts层,主要实现被封装接口的调用接结果断言参数化等。
  3.除了这些之外,还有生成测试报告,封装公共函数,构造测数据等操作
  4.测试过程中会遇到一些难点,比如接口依赖如何处理,比如参数化构造数据如何构造,构造后如何获取等,在上述项目中接口依赖通过设置全局变量形式处理,同时构造数据以JSON为主,封装读取json函数得到列表元组类型数据。
  5.后续再不同迭代中更新维护代码,并通过Jenkins实现持续集成。
  以上就是做接口自动化的核心思路。

  问题3:能否总结整个项目持续的时间周期,开发测试人员数量,用例的大约数量、发现的bug大约数量,自身的总结体会?

  回答思路:

  ·项目周期

    - web项目周期

       * 新项目一般在6个月左右(可以分多个迭代完成), 发布一个可用版本

       * 进行中的项目一般两周左右一个迭代 , 即也会发布新的可用版本

    - app项目周期:一般在4个月左右

    - 小程序项目周期:一般2个月左右

  · 测试开发比例:1:5左右

  · 项目用例数量

    - web项目:一般整个系统用例约4000条左右(个人负责模块的1100条左右)

    - app项目:常规app用例约600条左右(个人负责约220左右)

    - 小程序项目:常规小程序级别约200条左右(一般一个人负责)

  · bug数量

    -用例和bug的数量大约是:6:1左右

  举例如下:

  问题:你所在项目最后设计了多少用例发现了多少bug?
  回答:通过该项目历时9个月,总共编写用例4500条左右发现了838个bug,主要覆盖在购物车、商品和下单等模块,该模块的业务逻辑相对于复杂。非功能方面的bug相对较少,大约80个左右。
  问题:通过这个项目得到的收获有哪些?
  设计测试用例方面更加全面了,项目上线后半年内"零"故障率,没有发生一次客户投诉的案例。
  对于技术层面的应用更加纯熟,尤其是`功能测试的设计和接口测试实现`上,通过接口测试让回归效率提升30%以上。
  在团队提升方面,每月进行2次的技能培训,每次1小时,让团队成员能够实现无缝备份。

  二、体现应聘者的团队的沟通能力、合作能力和问题解决能力的问题

  问题1:在测试过程中有无影响深刻的bug,如何处理的?

  回答思路:

  ·此问题考察解决问题能力,建议找前后台关联稍微复杂一点的bug

  · 体现自己能够分析定位问题的能力

  举例如下:

  测试过程中对我影响深刻的bug有一个:
  当时问题:后台某商品添加秒杀活动,前台用户秒杀成功后支付了,此时秒杀活动的库存已经减少,但是当该用户取消秒杀活动的订单成功后,秒杀活动的库存没有恢复。
  分析定位:通过页面看到该错误问题后,通过如下方法定位:
  通过fiddler抓包,先确认取消订单发送的请求和响应结果,发现请求没有问题,响应结果只返回了取消成功的结果,并没有看到有关库存的信息;
  紧接着,查询数据库,生成订单时,该商品库存减少没有问题,通过数据库查看该取消的订单没有问题,但是取消成功后,商品列表中的该商品的库存数还是下单后的,最后通过查看后台订单日志,发现开发并没有处理取消订单后对于数据库库存恢复的操作,导致该功能出错。

  问题2:测试过程中有无碰到协作方面的问题?如何处理的?

  回答思路:

  考察团队沟通能力,合作能力

  举例如下:

  有碰到过。如上述项目中,测试内部小伙伴的用例评审不通过。此时我会主动找相关产品负责人,一起沟通确认将核心业务逻辑梳理清楚,并通过讨论将推演各种用户可能出现的场景,增加用例的全面性,同时也和对应开发人员确认达成一致理解。
  如上述项目在执行用例过程中,提交bug后,有开发人员对于bug不认可,我会先主动和开发人员进行沟通,看能否达成共识,
  如果是产品设计层面的会和产品一起讨论;
  如果是对于bug描述层面的,我会加强bug描述的准确性,站在软测bug判定的职业角度去完善;
  如果是测试本身的误报,我会加强这方面的管理,确保后续不会出现该问题;
  如果最后无法达成共识,我会和测试开发部门相关领导进行交流确认问题,从流程层面进行规划完善。


作者:cainiao080605    

来源:http://www.51testing.com/html/21/n-7797621.html

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 敏捷质量实践中提倡测试左移,测试人员要尽早介入需求阶段,越早越好。测试人员需要关注需求的有效性,以及在需求产生和传递的过程中,交付价值是否被准确的描述、理解和对齐。在这个过程中很容易遇到一个常见问题:验收标准是验收测试要测的吗?验收标准到底是不是测试用例?这两者之间有什么区别和联系?本文主要想解决的就是这个具体的困惑。验收标准是确保需求实现的最小集合验收标准是什么回顾一下需求由厚厚的《软件需求规格说明书》演化为一张用户故事卡片的过程,在这个过程中我们舍弃了大量的细节描述,突出了需求需要交付的客户/用户价值。在需求交付的过程中,我们会一直关注价值,在保证价值的前提下,实现方式和技术细节都是可以讨...
            0 0 1114
            分享
          •       沐沐在性能测试过程中,主要使用的是JMeter,但是不管性能测试采用什么工具,都需要在性能测试执行过程中监控服务器资源情况,去分析性能瓶颈。本文将主要介绍一下top和htop命令。top:为linux自带的命令,能够实时监控系统给的运行状态,top命令执行后如下截图:load average:系统的运行队列的平均利用率,也可以认为是可运行进程的平均数。三个值分别表示在最后1分钟、5分钟、15分钟的平均负载值。例如在单核CPU的load average的值为1时表示满负荷状态。同理在多核CPU中满负载的load average的值是1*cpu核数。%Cp...
            2 0 3771
            分享
          •   前言  在做web自动化的过程中,相信用到最多的浏览器就是chrome浏览器,那么在chrome中有许多关于selenium的配置内容,这个你知道吗?  单个浏览器调试  在编写自动化用例的过程中,经常会进行调式代码,正常情况下,当我们在写完用例,执行代码就会给我们重新打开一个浏览器,然后在进行一系列的操作。如果我们的需要调式的地方比较容易做到,这个方法就很容易,那如果我们需要调试的位置需要做很多前置操作,那么就浪费我们的时间。这个时候我们就可以通过打开浏览器调试功能,然后让浏览器直接在当前的页面进行debug。  打开浏览器调试需要进行以下操作:  1.将chrome浏览器安装地址配置到...
            14 14 2337
            分享
          •   当前,系统测试主要集中在功能测试、性能测试以及安全测试三大方面,对于容量测试的关注比较欠缺,特别是磁盘容量空间。从系统测试业务连续性上考虑,容量测试是其中不可或缺的步骤,做好容量测试可以进一步优化信息系统服务能力,从而提供持续、合理的系统服务。  对于容量测试,首先需要明确几个概念。容量管理,是指根据当前和未来的业务需求,在恰当的时间、以恰当的成本提供所需的IT资源。管理对象是对环境中的业务应用系统、主机平台设备、开放平台设备、网络、机房环境设施等进行容量规划。容量评估,是指对系统是否能够达到要求的生产能力,并且有一定超负荷运行能力以满足未来市场的高峰要求的评估。  本文从测试阶段出发,针...
            0 0 1379
            分享
          • 1.1 功能测试流程功能测试大致按照以下流程进行:(1)需求分析与评审(2)测试计划与测试(3)测试用例设计(4)测试用例评审(5)执行用例(6)缺陷跟踪及报告产出1.2 功能测试流程详解(1)需求分析与评审功能测试应从需求出发,功能测试就是尽量覆盖用户需求,是软件能够最大程度满足用户的需求,在开始功能测试之前,技术人员应一起进行需求评审,明确需求,避免需求出现问题,导致后面开发,测试在错误的基础上进行测试人员在需求评审过程中要:确认自己对需求理解清晰,不存在疑惑确认需求文档完整,准确,能够为后期测试工作所使用对需求中不合理的地方提出自己的修改建议(2)测试计划与测试方案测...
            0 0 1155
            分享
      • 51testing软件测试圈微信