当前位置: 首页 > news >正文

软件测试面试怎样介绍自己的测试项目?会问到什么程度?

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

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

1)应聘者的具体经验和技术能力,
2)应聘者的团队的沟通能力、合作能力和问题解决能力。

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

想知己知彼,更深入了解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判定的职业角度去完善;
如果是测试本身的误报,我会加强这方面的管理,确保后续不会出现该问题;
如果最后无法达成共识,我会和测试开发部门相关领导进行交流确认问题,从流程层面进行规划完善。

 

  从软件测试到测试开发全套视频+文档+项目+简历模板+面试宝典

需要的小伙伴可以点击小编主页

,验证消息填写000即可获取喔

 一、Python编程入门到精通

二、接口自动化项目实战

三、Web自动化项目实战

四、App自动化项目实战

五、一线大厂简历

六、测试开发DevOps体系

七、常用自动化测试工具

八、JMeter性能测试

九, 银行业务测试

十,大数据测试和业务分析

 

 十一:项目实战

相关文章:

软件测试面试怎样介绍自己的测试项目?会问到什么程度?

想知道面试时该怎样介绍测试项目?会问到什么程度?那就需要换位思考,思考HR在这个环节想知道什么。 HR在该环节普遍想获得的情报主要是下面这2个方面: 1)应聘者的具体经验和技术能力, 2)应聘者的…...

莫名其妙el-table不显示问题

完全复制element-ui中table代码,发现表格仍然不显示,看别人都说让降低版本,可我不想降低啊,不然其他组件有可能用不了,后来发现可以通过配置vite.config.js alias: {: path.resolve(__dirname, src),vue: vue/dist/vue…...

ElasticSearch复杂数据类型

ElasticSearch入门到实战教程:点击查看 1. 对象类型(object) 一个字段下需要多种类型的属性字段,属性 attr 有身高、体重,添加映射语句如下: POST indexname/_mapping {"properties": {"…...

JavaScript_Pig Game保存当前分数

上个文章我们基本上完成了摇色子和切换当前玩家的功能。 现在我们开始写用户选择不再摇骰子的话,我们将用户的当前分数存入到持有分数中! ● 首先我们应该利用一个数组去存储两个用户的分数 const scores [0, 0];● 接着我们利用数组来对分数进行累…...

2023/10/30 JAVA学习

JAVA浮点型运算会出现精度问题 如果没break,不会立刻停止,会执行下一个语句,并且不会判断条件,执行完后break 也可以这样写定义动态数组 两个变量地址相同,指向了同一个数组对象,所以更改一个另一个也会进行更改 方法其实就是函数 OUT: 外部标签,一种神奇的方式, print是输出括…...

测试八股文-Selenium

测试八股文-Selenium 总结了一些selenium的常见问题,欢迎评论区补充,如需教学辅导可私信作者 什么是Selenium? Selenium是一个自动化测试框架,用于模拟用户在Web应用程序中的交互行为。它支持多种语言,包括Java、Py…...

数据库第8章作业

ps:本篇只为记录和分享 一. 单选题(共20题) 1. (单选题)E-R图是数据库设计的工具之一,它适用于建立数据库的( )。 A. 概念模型B. 物理模型C. 逻辑模型D. 结构模型 我的答案: A :概念模型; 2. (单选题)数…...

【OpenCV实现平滑图像金字塔,轮廓:入门】

文章目录 概要图像金字塔轮廓:入门 概要 文章内容的概要: 平滑图像金字塔: 图像金字塔是什么? 图像金字塔是指将原始图像按照不同的分辨率进行多次缩小(下采样)得到的一系列图像。这种处理方式常用于图像…...

Java JVM垃圾回收确定垃圾的两种方式,GC Root

文章目录 前言一、如何确定是垃圾?引用计数法根可达路径法 二、GC Root1、以下可作为GC Root对象2、判断可回收:GC Root不可达3、真正宣告对象死亡需经过两次标记过程(重要) 前言 对于Java两种确定对象为可回收的两种方式&#x…...

java集合之List接口实现类常用方法详解

目录 一、List集合概述 二、ArrayList类 三、ArrayList常用方法实例 四、LinkedList类 五、Linkedist常用方法实例 一、List集合概述 java.util.List接口继承自Collection接口,是单列集合的一个分支,通常将实现了List接口的对象称为List集合&#x…...

三分钟带你了解JS、原型、原型链

1.什么是JS? JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象; 它是基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式; 白话一点说就是…...

C# 基于腾讯云人脸核身和百度云证件识别技术相结合的 API 实现

目录 腾讯云人脸核身技术 Craneoffice.net 采用的识别方式 1、活体人脸核身(权威库): 2、活体人脸比对: 3、照片人脸核身(权威库): 调用成本 百度云身份证识别 调用成本 相关结合点 核心代码 实现调用人脸核身API的示例 实现调用身…...

LeetCode每日一题——275. H-Index II

文章目录 一、题目二、题解 一、题目 Given an array of integers citations where citations[i] is the number of citations a researcher received for their ith paper and citations is sorted in ascending order, return the researcher’s h-index. According to the…...

项目添加EZOpenSDK之后就开始报错:could not build module foundation等

最近修改一个老项目,出现了一个报错问题。困扰了很久。现在终于找到解决方法了。分享一下。 正常的项目,使用pod引入EZOpenSDK之后就开始报错了,下面就是错误信息: could not build module foundation错误 could not build modul…...

“智能科技·链接未来”2024中国国际人工智能产品展览会·智博会

2024年中国国际人工智能产品展览会(简称世亚智博会)将于3月份在上海举办,6月份在北京举办。本届展会以“智能科技链接未来”为主题,将集中展示全球前沿的人工智能技术和应用,以及人工智能在各个领域的新成果。 本届展会…...

华为NAT配置实例(含dhcp、ospf配置)

一、网络拓朴如下: 二、要求:PC1 能访问到Server1 三、思路: R2配置DHCP,R2和R1配OSPF,R1出NAT 四、主要配置: R2的DHCP和OSPF: ip pool 1gateway-list 10.1.1.1 network 10.1.1.0 mask 25…...

怎样才能把视频号的视频保存到相册,怎么下载视频号视频两个方法轻松解决

在微信客户端想要下载视频号视频却不知道怎么保存到本地相册?让不少网友犯了难,不用在纠结怎么样才可以将视频号视频下载下来,今天就分享两个小程序将视频号视频提取出来,另外在告诉大家一个下载技巧,一定要看到到结尾…...

软考系统架构师知识点集锦七:计算机系统基础知识

一、考情分析 二、考点精讲 2.1计算机系统概述 2.1.1计算机系统组成 2.1.2 存储系统 时间局部性:指程序中的某条指令一旦执行,不久以后该指令可能再次执行,典型原因是由于程序中存在着大量的循环操作。 空间局部性:指一旦程序访问了某个存储单元,不久…...

k8s节点已有镜像,但Pod一直在拉取镜像时卡着

Pod状态为ContainerCreating,查看日志提示pull镜像,但该镜像在Node节点已经存在,且拉取策略为IfNotPresent 解决:重启kubelet...

用图说话——流程图进阶

目录 一、基本流程图 二、时序流程图 一、基本流程图 经常阅读歪果仁绘制的流程图,感觉比较规范,自己在工作中也尝试用他们思维来绘图,这是一个小栗子: 二、时序流程图 在进行Detail设计过程中,一般的绘图软件显得…...

Appium+python自动化(十六)- ADB命令

简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成:MAC头部frame bodyFCS,其中MAC是固定格式的,frame body是可变长度。 MAC头部有frame control,duration,address1,address2,addre…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色&#xf…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

搭建DNS域名解析服务器(正向解析资源文件)

正向解析资源文件 1)准备工作 服务端及客户端都关闭安全软件 [rootlocalhost ~]# systemctl stop firewalld [rootlocalhost ~]# setenforce 0 2)服务端安装软件:bind 1.配置yum源 [rootlocalhost ~]# cat /etc/yum.repos.d/base.repo [Base…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...