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

想知道面试时该怎样介绍测试项目?会问到什么程度?那就需要换位思考,思考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判定的职业角度去完善;
如果是测试本身的误报,我会加强这方面的管理,确保后续不会出现该问题;
如果最后无法达成共识,我会和测试开发部门相关领导进行交流确认问题,从流程层面进行规划完善。

三、更多测试面试系列资料分享


临近面试,同学们除了介绍项目,还需要准备简历,技术面试题。

若面试时,发现自己测试某些领域薄弱,请不用担心没有软件测试学习资料。我手头上有大量软件测试学习资源,包括软件学习路线图,16个突击实战项目(满足你对测试经验的需求),80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2023软件测试面试宝典,还有软件测试求职的各类精选简历,希望对各位同学有所帮助…..

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60098.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vector 动态数组(迭代器)

C数据结构与算法 目录 本文前驱课程 1 C自学精简教程 目录(必读) 2 Vector<T> 动态数组&#xff08;模板语法&#xff09; 本文目标 1 熟悉迭代器设计模式&#xff1b; 2 实现数组的迭代器&#xff1b; 3 基于迭代器的容器遍历&#xff1b; 迭代器语法介绍 对迭…

新版HBuilderX在uni_modules创建搜索search组件

1、创建自定义组件 my-search 新版HBuilder没有了 component 文件夹&#xff0c;但是有 uni_modules 文件夹&#xff0c;用来创建组件&#xff1a; 右键 uni_modules 文件夹&#xff0c;点击 新建uni_modules创建在弹出框&#xff0c;填写组件名字&#xff0c;例如&#xff1a…

netmap安装使用

文章目录 1、安装编译netmap2、使用netmap3、运行编写自己的代码 1、安装编译netmap github地址 git clone https://github.com/luigirizzo/netmap 1、进入目录 cd netmap-master/LINUX 2、安装编译环境 apt-get install build-essential 3、初始化配置环境 ./configure 出现这…

【记录】手机QQ和电脑QQ里的emoji种类有什么差异?

版本 手机 QQ&#xff1a;V 8.9.76.12115 电脑 QQ&#xff1a;QQ9.7.15&#xff08;29157&#xff09; 偶然发现&#xff0c;有一种emoji手机上怎么找都找不到&#xff0c;一开始以为自己失忆了&#xff0c;后来发现这种emoji只在电脑上有。 接下来简单说一下找emoji差异的方式…

第 3 章 栈和队列(顺序栈,算法 3.3)

1. 背景说明&#xff1a; 若迷宫 maze 中存在从入口 start 到出口 end 的通道&#xff0c;则求得一条存放在栈中(从栈底到栈顶)&#xff0c;并返回 TRUE&#xff1b;否则返回 FALSE&#xff0c;注意&#xff0c;该解并非最优解&#xff0c; 最优解需要求得最短路径且可能并非…

C#将text文本中的单双行分开单独保存

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 文本的分割1.设定text文件的名称为02.文本导出 文本的分割 1.设定text文件的名称为0 代码如下&#xff1a; using System; using System.Collections.Generic; us…

读SQL学习指南(第3版)笔记06_连接和集合

1. 连接 1.1. 笛卡儿积 1.1.1. 交叉连接&#xff08;cross join&#xff09; 1.1.2. 查询并没有指定两个数据表应该如何连接&#xff0c;数据库服务器就生成了笛卡儿积 1.1.2.1. 两个数据表的所有排列组合 1.1.3. 很少会用到&#xff08;至少不会特意用到&#xff09; 1.…

layui框架学习(43:文件上传模块-下)

上一篇文章介绍文件上传模块使用示例时介绍了done和error事件&#xff0c;这两个事件是在文件上传成功&#xff08;原文&#xff1a;在上传接口请求完毕后触发&#xff0c;但文件不一定是上传成功的&#xff09;及上传失败&#xff08;原文&#xff1a;请求上传出现异常&#x…

深入浅出AXI协议(3)——握手过程

一、前言 在之前的文章中我们快速地浏览了一下AXI4协议中的接口信号&#xff0c;对此我们建议先有一个简单的认知&#xff0c;接下来在使用到的时候我们还会对各种信号进行一个详细的讲解&#xff0c;在这篇文章中我们将讲述AXI协议的握手协议。 二、握手协议概述 在前面的文章…

【运维】hadoop3.0.3集群安装(一)多节点安装

文章目录 一.Purpose二. Prerequisites三. Installation1. 节点规划2. Configuring Hadoop in Non-Secure Mode3. 准备工作4. 配置core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers 4. 分发配置、创建文件夹5. 格式化6. 操作进程6.1. hdfs启动停止 6.2. yarn启动…

PyQt6 GUI界面设计和Nuitka包生成exe程序(全笔记)

PyQt6 GUI界面设计和Nuitka包,生成exe程序全笔记 目录一、PyQt6包安装1.1 进行环境配置和安装1.2 检查包是否安装成功。1.3 运行desinger.exe二、GUI界面设计,写程序,并能运行成功。三、Nuitka打包生成exe程序3.1 做Nuitka安装准备工作(1)安装C编译器,设置环境变量3.2 安…

新功能上线!Salesforce Field Service人工智能创新

Salesforce Field Service是Service Cloud的扩展&#xff0c;可提供员工管理的全面视图。Field Service专为进行现场服务的员工而设计&#xff0c;例如服务技术人员、服务座席、调度员等。随着Salesforce平台上线越来越多的生成式AI新增功能&#xff08;包括Sales Cloud、Marke…

浅谈红队资产信息收集经验

文章目录 子公司资产收集备案号|官网收集子域名|ip收集fofa灯塔ARLX情报社区 资产确认目录扫描Google Hacking绕过CDNnmap端口扫描参数技巧其他常用工具 子公司资产收集 红蓝对抗中往往只会给你目标企业的名称&#xff0c;以及对应的靶标系统地址&#xff0c;而很少有直接从靶标…

MySQL基础入门

推荐查看 数据库相关概念 MySQL百度百科 MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Databa…

KylinOS配置完静态IP地址后,保存按钮是灰色

问题: 配置完静态IP地址后,保存按钮置灰,并且提示“无效设置IPv4设置:ipv4.gateway:网关与”never-default”不兼容”。 原因: 这是由于禁止添加默认路由导致的。 解决方案: 1、使用nmcli命令: nmcli con modify "有线连接 1" ipv4.never-default no 执…

常见的数据结构之队列

一、介绍 队列(Queue)是一种常见的数据结构,用于存储和管理一系列数据元素,其中元素按照 先进先出(First-In-First-Out,简称FIFO)的原则进行插入和删除。 队列可以类比为现实生活中排队等候的场景,例如在超市收银台排队购物的顾客队列。 二、队列的基本操作 2.1 出…

Java代码审计15之Apache log4j2漏洞

文章目录 1、log4j简介2、复现2.1、高版本测试2.2、测试代码2.3、补充之dns探测2.3.1、rmi、ldap也可以dnslog探测 2.3.2、dnslog外带信息 3、漏洞原理3.1、漏洞的危害大的背景3.2、具体的代码调试 4、靶场测试4.1、dns探测4.2、工具下载与使用4.3、测试 5、bypass 1、log4j简介…

13、监测数据采集物联网应用开发步骤(9.2)

监测数据采集物联网应用开发步骤(9.1) TCP/IP Server开发 新建TCP/IP Server线程类com.zxy.tcp.ServerThread.py #! python3 # -*- coding: utf-8 -Created on 2017年05月10日 author: zxyong 13738196011 import socket,threading,time from com.zxy.tcp.TcpServer import …