疫情期间我面试了13家企业软件测试岗位,一些面试题整理

news2024/11/15 10:57:28

项目的测试流程

  1. 拿到需求文档后,写测试用例

  2. 审核测试用例

  3. 等待开发包

  4. 部署测试环境

  5. 冒烟测试(网页架构图)

  6. 页面初始化测试(查看数据库中的数据内容和页面展示的内容是否一致,并且是否按照某些顺序排列)

  7. 具体执行测试用例(几乎所有的功能测试、流程法、场景法)

  8. 发现缺陷就要再填写缺陷表

  9. 非功能性测试(sql、js注入、页面效率、绕过js验证直接添加数据到数据库)

  10. 书写最终的测试报告

测试用例设计方法

  • 等价类、边界值、正交试验法、状态迁移法、因果图、场景测试法、异常分析法、因果图、错误猜测法、判定表

测试用例的要素

  • Id 主题 测试名称 创建日期 设计者 描述 步骤名 步骤描述 预期结果 执行状态

测试的优先级

  1. 先测试经过变更的部分,然后测试没有变更的部分

  2. 先测试程序的核心功能,然后测试一般功能

  3. 先测试逻辑性的功能,然后测试业务性的功能

  4. 先测试常规情况,然后测试异常情况

  5. 先测试功能,然后测试性能

测试报告包含哪些内容

1.写测试背景

2.测试目标

3.测试范围

4.测试环境

5.测试数据

6.测试标准(重点)

7.测试进度

8.测试结果

9.测试结论

有的公司会采用非标准的测试报告

大致会包含:

  • 测试所用时间
  • 测试环境
  • 测试人员
  • 测试发现bug数量
  • 已修复bug数量、遗留bug、遗留bug原因、测试结果等

BUG的生命周期

提交–开发验证–接受–拒绝–开发解决–测试人员验证–关闭–不通过打开

BUG的状态

  1. NEW:所有提交到开发对接的问题状态为NEW,表示为未处理

  2. OPEN:开发对接人初判为需流转问题,指定测试人员和开发人员,状态为OPEN。

  3. REFUSE:开发对接人判断为不需要流转至下环节的问题,状态为REFUSE,并且填写原因

  4. FIXED:开发人员完成修复,待测试,状态为FIXED

  5. REOPEN:测试人员针对开发人员的修复结果测试部通过,状态为REOPEN

  6. CLOSE:测试人员判断问题为需求或其他问题,需填写原因;

缺陷的要素

缺陷标题 缺陷状态 提交人 负责人 优先级 严重程度 缺陷描述 时间 截图

缺陷的级别

致命问题:核心功能不可用或系统崩溃

严重问题: 业务主要流程无法使用,业务主要流程中的某个功能存在缺陷导致主要流程无法继续使用

一般问题: 一般性问题,非主要流程上的功能缺陷

轻微问题: 界面ui问题 提示不规范等

建议性问题: 根据自己的经验提一些建议性的问题

WEB测试与APP测试的区别

  1. 架构不同。
  • web端是b/s架构的,b/s架构是基于浏览器地址访问的

  • app端是c/s架构的,c/s架构是要有客户端作为载体的

  1. 版本发布的方式和流程不同。
  • web发版本,开发部署新的代码到对应服务器地址,就可统一实现web端的更新

  • app发版本,开发需要打包(apk包和ipa包),打包之后需要发布到对应的渠道

  1. 兼容性
  • web,测试不同浏览器的兼容性(ie、chrome、firefox、360、QQ)

  • app,测试不同的分辨率、屏幕尺寸、手机品牌、系统版本

  1. 性能方面
  • web,测试响应的时间

  • app,测试响应时间、流量、耗电量、CPU、GPU、memory

  1. 安全性
  • web,sql注入。xss攻击等

  • app,https加密、签名、加固、密码加密等

  1. app测试特点
  • 适配性测试

  • 网络测试

在线升级测试

中断测试

耗电量测试

弱网测试

安装卸载测试

流量测试

app测试的主要内容

  1. 功能测试
  • 业务逻辑正确性的测试
  1. 兼容性测试
  • 系统版本

  • 分辨率

  • 如果一个bug,开发认为不是一个bug,怎么处理

  • 常用linux命令

  • 什么情况下定位不到元素

  • GET请求和POST请求的区别

  • 网络情况

  1. 异常测试
  • 热启动

  • 网络切换

  • 电话信息终端恢复

  1. 升级、安装、卸载

  2. 健壮性测试

  • 手机资源消耗

  • 流量消耗

  • 电量测试

  • 崩溃恢复

  • 如果一个bug,开发认为不是一个bug,怎么处理

  1. 将问题提交到缺陷管理库里面进行备案。

  2. 获取判断的依据和标准

  • 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

  • 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

-根据用户的一般使用习惯,来确认是否是缺陷;

  • 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
  1. 合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。

  2. 等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。

常用linux命令

  1. ifconfig 查看IP地址

  2. cat 用于显示指定文件的全部内容

  3. more 用分页的形式显示指定文件的内容

  4. mkdir 创建目录

  5. touch 创建新的文件

  6. grep 查找文件里符合条件的字符串

  7. find 查找指定的文件

  8. tail -f 用于自动刷新显示文件后N行数据内容

  9. kill -9 强制结束

  10. netstat -anp | grep 端口号 查看端口

  11. chmod -R 777 赋予777权限

什么情况下定位不到元素

  1. 代码写错

  2. 元素未出现(需要元素等待)

  3. 元素在iframe中

  4. 多窗口

  5. 出现弹窗(系统弹窗、JS弹窗)

  6. 元素属性值是动态加载的

  7. 元素无法确定唯一性

  8. 只读属性(元素不可操作)

GET请求和POST请求的区别

  1. GET使用URL或Cookies传参,POST将数据放在BODY中

  2. GET的URL会有长度上的限制,POST的数据则可以非常大

  3. POST比GET安全,因为在地址栏不可见

  4. 一般GET用来获取数据,POST用来发送数据

为什么要做接口测试

  1. 越底层发现BUG,修复成本越低

  2. 前端发生变化时,后端接口可以不用变

  3. 检查系统的安全性、稳定性,前端传参不可信

接口测试是怎么做的

  • 由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI等。

  • 也可以用 接口自动化来实现,就是用代码实现,框架和UI自动化差不多,发送请求用断言来判断。

接口测试的重点

  1. 检查接口返回的数据是否与预期的结果一致

  2. 检查接口的容错性,加入传递的类型错误时是否可以处理

  3. 接口测试的边界值

  4. 接口的性能

  5. 接口的安全性

http状态码

  1. 1xx:请求正常,但是无响应,只有在实验状态下使用

  2. 2xx:2开头的表示发送成功

  3. 3xx:3开头的代表重定向,常见302

  4. 4xx:400代表客户端发送的语法有错误,401代表访问的页面没有授权,403 无权限访问该网页,404代表没有这个页面,415 格式错误

  5. 5xx:5开头的代表服务器异常,500代表服务器内部异常,504代表服务器超时

cookies和session的区别

  1. cookies数据存放在客户的浏览器上,session数据放在服务器上

  2. cookies不是很安全,别人可以分析存放在本地的cookies并进行cookies欺骗考虑到安全应当使用session

  3. session会在一定时间内保存在服务器上,当访问增多,会比较占用,你服务器的性能考虑到减轻服务器性能方面,应当使用cookies

常用的adb命令

  1. adb start-server 启动adb服务

  2. adb kill-server 关闭adb服务

  3. adb devices 查看设备号

  4. adb push 电脑 手机

  5. adb pull 手机 电脑

  6. adb logcat | grep 包名(unix)

  7. adb logcat | findstr 报名 (win)

  8. adb shell 进入shell命令行

  9. adb install 安装app到手机上

  10. adb uninstall 卸载app到手机上

  11. adb logcat > 文件名 输出log到文件

  12. adb shell top 测试app的资源消耗命令

产品的业务流程

解析

问你简历上写的某个项目整体的业务流程

比如电商项目中的注册功能,从开始注册到注册成功的整个过程

版本符合上线的标准是什么

验收标准

(1) 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。

(2) 在验收测试中发现的错误已经得到修改,各级缺陷修复率达到标准

(3) 所有测试项没有残余紧急、严重级别错误。

(4) 需求分析文档、设计文档和编码实现一致。

(5) 验收测试工件齐全(测试计划、测试用例、测试日志、测试通知单、测试分析报告,待验收的软件安装程

序。)

缺陷修复率标准

(1) 紧急、严重级别错误修复率应达到100%;

(2) 普通级别错误修复率应达到95%以上;

(3) 优化级别错误修复率应达到60%以上;

注:项目紧急时,普通级别错误修复率达60% 以上;优化级别错误修复率达20% 即可。

服务器运行状态响应指标

(1) cpu% 并发期间最大使用率应不超过70-80%,如有集合点并发可允许短暂接近或到达100& 但大部分不

应查过95%;

(2) memery 测试期间保证内存充足可用内存不少于20%;

(3) disk 监控硬盘是否有读写不超过40%;

(4) cpu load average 不应超过cpu 核心数*2 或者不超过cpu 核心数。

测试用例评审过程及相关参与人员

1:评审的过程

A:开始前做好如下准备

  • 1、确定需要评审的原因

-2、确定进行评审的时机

  • 3、确定参与评审人员

  • 4、明确评审的内容

-5、确定评审结束标准

  • 6、提前至少一天将需要评审的内容以邮件的形式发送给评审会议相关人员。并注明详审时间、地点及偿参与人员等。

  • 7、 在邮件中提醒评审会议相关人员至少简读一遍评审内容,并记录相关的疑问,以便在评审会议上提出。

-8、 会议主持者(一般为用例编写人员)应在会议前整理相关疑问,以便在会议上提出。

B:开始评审

  • 1、 召开评审会议。与会者在设计人员讲解之后给出意见和建议,同时进行详细的评审记录。

  • 2、 通用邮件与相关人员沟通

  • 3、 通用IM工具直接与相关人员交流

  • 4、根据评审内容进行评审

2:评审内容

1、 用例设计的结构安排是否清晰、合理,是否利于高效对需求进行覆盖。

2、 优先级安排是否合理。

3、 是否覆盖测试需求上的所有功能点。

4、 用例是否具有很好可执行性。例如用例的前提条件、执行步骤、输入数据和期待结果是否清晰、正确;期待结果是否有明显的验证方法。

5、 是否已经删除了冗余的用例。

6、 是否包含充分的负面测试用例。充分的定义,如果在这里使用2&8法则,那就是4倍于正面用例的数量,毕竟一个健壮的软件,其中80%的代码都是在“保护”20%的功能实现。

7、 是否从用户层面来设计用户使用场景和使用流程的测试用例。

8、 是否简洁,复用性强。例如,可将重复度高的步骤或过程抽取出来定义为一些可复用标准步骤。

3:参与评审人员(这里会分为多个级别进行评审)

1、 部门评审,测试部门全体成员参与的评审。

2、公司评审,这里包括了项目经理、需求分析人员、架构设计人员、开发人员和测试人员。

3、 客户评审,包括了客户方的开发人员和测试人员。这种情况在外包公司比较常见

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

JavaScript_9_练习:随机点名

效果图 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>练习&#xff1a;随机点名</title&g…

C语言中的预处理详解

1. 预定义符号 C语⾔设置了⼀些预定义符号&#xff0c;可以直接使⽤&#xff0c;预定义符号也是在预处理期间处理的。 举个例⼦&#xff1a; printf("file:%s line:%d\n", __FILE__, __LINE__); 2. #define 定义常量 基本语法&#xff1a; #define name stuff 举个例…

桥接模式详解

桥接模式 概念: 将抽象部分和实现部分分离, 使他们都可以独立的变化 概念很抽象, 难以理解, 我们举个例子 例子 设想三种不同品牌的汽车 大车 中车 小车 三种不同类型的引擎 纯电引擎 混动引擎 燃油引擎 如果我们把他们两两组合, 都继承同一个类的话,就会有9个类, 并且如果后…

vue的i18n国际化

一、介绍 i18n 是国际化和本地化&#xff08;Internationalization and Localization&#xff09;的缩写&#xff0c;其中 “i” 和 “n” 分别代表单词的首尾字母&#xff0c;而 “18” 代表中间的字母数。这个术语用于描述软件应用程序支持多种语言和地区设置的过程。 1、国…

调和级数详解

调和级数的来历 早在14世纪,尼克尔奥里斯姆已经证明调和级数发散,但知道的人不多。17世纪时,皮耶特罗曼戈里、约翰伯努利和雅各布伯努利完成了全部证明工作。 调和序列历来很受建筑师重视;这一点在巴洛克时期尤其明显。当时建筑师在建造教堂和宫殿时,运用调和序列为楼面…

怎样把经典CAD工具栏调出来

阅读更多cad如何显示工具栏&#xff1f;教你三个方法快速调出

ELFK基础搭建流程及在SpringBoot项目中进行日志采集的简单实践

目录 一、前言 二、ELK简介 三、ELK常见的几种架构 四、Docker安装ELFK的详细流程 4.1环境说明。 4.2ElasticSearch搭建 配置ElasticSearch 启动ElasticSearch 4.3Kibana搭建 配置kibana 启动kibana 4.4LogStash搭建 配置LogStash 启动LogStash 4.5Filebeat搭建 …

Elasticsearch之RestClient的简单操作(附java代码案例)

目录 前言 1. 案例Demo前期准备 1.1 sql数据 1.2 项目结构 1.3 mapping映射分析 1.4 初始化RestClient 2.索引库操作 2.1 创建索引库 2.1.1 代码解读 2.1.2 完整代码示例 2.2 判断索引库是否存在 2.3 删除索引库操作 2.4 索引库操作总结 3.RestClient操作文档 3.…

什么是逃逸分析

如何快速判断是否逃逸就看方法内new的对象实体是否能够被外部方法进行调用 什么是逃逸分析 在java虚拟机中&#xff0c;对象是在java堆中分配内存的&#xff0c;这是一个普遍的常识。但是&#xff0c;有一种特殊情况&#xff0c;那就是如果经过逃逸分析&#xff08;escape an…

nvidia系列教程-AGX-Orin can接口调试

目录 前言 一、AGX-Orin can介绍 二、原理图连接 三、系统配置 四、can数据收发 总结​​​​​​​ 前言 NVIDIA Jetson AGX Orin 是一款高性能的嵌入式平台,专为自动驾驶、机器人、物联网和其他需要大量计算能力和人工智能处理的应用设计。Jetson AGX Orin 集成了多个 …

【原创】java+swing+mysql客户信息管理系统设计与实现

个人主页&#xff1a;程序员杨工 个人简介&#xff1a;从事软件开发多年&#xff0c;前后端均有涉猎&#xff0c;具有丰富的开发经验 博客内容&#xff1a;全栈开发&#xff0c;分享Java、Python、Php、小程序、前后端、数据库经验和实战 文末有本人名片&#xff0c;希望和大家…

【xilinx】Versal Adaptive SoC DDRMC - NoC QoS 选项卡未出现

在 2024.1 之前的 Vivado 版本中&#xff0c;用户在使用 NoC 验证块设计时可以访问 NoC 对象窗口和 QoS 选项卡。 Vivado 2024.1 中存在一个已知问题&#xff0c;即 NoC 对象窗口和 QoS 选项卡不出现。 要显示 NoC 对象窗口和 QoS 选项卡&#xff0c;请保存块设计&#xff0c;…

【pwnable.kr】0x02-collision Writeup

题目描述 解法 拉取文件 scp -P2222 colpwnable.kr:col . scp -P2222 colpwnable.kr:col.c .分析源码 #include <stdio.h> #include <string.h>// hashcode值 unsigned long hashcode 0x21DD09EC;// 返回res&#xff0c;对main函数中传参进行“加密”变换操作 …

【特殊文件---properties】

properties 1. 注释 在properties中注释是采用#号开头的方式来进行注释的 2. 编写properties文件 在properties中&#xff0c;一行就是一个键值对&#xff08;keyvalue&#xff09;&#xff0c;简单的理解就是一行可以保存一个变量&#xff0c;键和值之间用号隔开 记住&…

使用Maple Flow进行工程计算与代码生成的图文教程

在工程和科学计算领域&#xff0c;Maple Flow以其强大的数学引擎和代码生成功能&#xff0c;成为工程师和研究人员的得力助手。本文将通过一系列步骤&#xff0c;引导您如何使用Maple Flow从概念验证到生成可在其他环境中运行的代码&#xff0c;完成一个完整的工作流程。 第一…

LLM大模型技术实战:一文讲透专补大模型短板的RAG

大型语言模型&#xff08;LLMs&#xff09;已经成为我们生活和工作的一部分&#xff0c;它们以惊人的多功能性和智能化改变了我们与信息的互动方式。但是当我们将大模型应用于实际业务场景时会发现&#xff0c;通用的基础大模型基本无法满足我们的实际业务需求&#xff0c;主要…

大模型时代,云南白药如何成为一家AI医药企业?|产业AI案例

作者|斗斗 编辑|皮爷 出品|产业家 中医药大模型发布&#xff1b;英伟达成立AI制药部门&#xff0c;发力生物制药领域&#xff1b;赛诺菲与百图生科达成战略合作&#xff0c;共同开发用于生物治疗药物发现的领先模型&#xff1b;京东发布医疗大模型&#xff1b;百度“产业级”…

机器学习--特征工程常用API

1. DictVectorizer - 字典特征提取 DictVectorizer 是一个用于将字典&#xff08;如Python中的字典对象&#xff09;转换为稀疏矩阵的工具&#xff0c;常用于处理类别型特征。 DictVectorizer(sparseTrue, sortTrue, dtype<class numpy.float64>)参数&#xff1a; spar…

ggplot阶截断坐标轴-gggap

目录 gggap包安装 功能查询 简单版使用代码 复杂版使用代码 gggap包安装 CRAN: Package gggap (-project.org) 手动下载安装 功能查询 > ?gggap > ?gggapDefine Segments in y-Axis for ggplot2 Description Easy-to-define segments in y-axis for ggplot2. …

使用Clion开发STM32串口调试遇到问题之重定向printf不显示(已解决问题)

为什么要使用重定向printf C语言中经常使用printf来输出调试信息&#xff0c;打印到屏幕。由于在单片机中没有屏幕&#xff0c;但是我们可以重定向printf&#xff0c;把数据打印到串口&#xff0c;从而在电脑端接收调试信息。这是除了debug外&#xff0c;另外一个非常有效的调…