测开——基础理论面试题整理

1. 测试流程

  • 需求了解分析
  • 需求评审
  • 制定测试计划【包括测试人员、时间、每人负责的模块、测试的风险项以及预防】
  • 编写自动化测试用例 —— 测试评审【尽量丰富测试点】
  • 编写测试框架和脚本(若是功能测试 可省去这步骤)
  • 执行测试
  • 提交缺陷报告
  • 测试分析与评审
  • 预发布环境验收测试
  • 提交测试总结
  • 准备下一版测试

2.项目流程

  • 项目立项
  • 需求分析
  • 概要设计
  • 详细设计
  • 编码开发
  • 测试
  • 验收

3.测试过程中发现的印象最深的Bug是什么?

 7.测试资源需求有哪些方面?

  • 人力资源
  • 硬件资源【性能、自动化、功能  服务器 分布式+高并发 】
  • 软件资源【JMeter、postman等等】

8.什么时候进行冒烟测试?

冒烟测试就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。

冒烟测试也叫版本验证测试、转测测试等。冒烟测试主要是为了确定开发交付的转测物能否正常运行,检查主功能是否能够正常运行,一般有一个人进行短时间的测试判断转测物是否达到转测标准,是否值得进行大规模的测试,冒烟测试中一般不测试次要功能和各种细微错误

9.什么是验收测试,验收测试的目的是什么?

验收测试:一般供求双方达成。一般由用户进行的,确认是否可以接收一个系统的验证性测试,验收测试是根据用户需求,对业务流程进行正式测试,以确保系统符合验收标准。一般由客户、产品经理、测试、项目经理等介入参加,目的在于对系统建立信心,对系统非功能性的特性赢得客户认可【例如:小图标、界面的设计】。

一般有三种验收测试的主体。

α测试:软件的开发商自己进行的交付前的测试

β测试:软件的需求方自己进行的测试

γ测试:第三方的测试

10.测试计划的内容和目的是什么?

测试计划一般包含了产品概述,测试策略【测试方法:功能 自动化 性能】,测试资源,测试周期【时间】,进度安排,测试方法、风险分析等

目的:指导测试过程,规定测试活动的范围,方法,资源进度。明确测试项目、要测试的内容,以及人员责任范围的划分。确保测试工作能够根据计划正常开展。

11.详细说下用例设计的完整过程

  • 通读需求文档,理解需求和设计思路
  • 想好测试策略,确定好测试环境,评估测试周期,确定影响范围
  • 根据需求文档,输出测试点,XMind 包含整个需求相关的测试点及影响范围内的测试内容
  • 根据XMind输出测试用例,利用等价值、边界分析法、场景法确保每个测试点都被测试用例覆盖
  • 进入用例评审阶段,根据评审建议优化我的测试用例
  • 开始执行测试用例

**12.测试中发现了Bug但开发不认为是Bug怎么办?

  • 首先自我分析,是否是自己测试数据错误或者需求理解错误,先确保不是因为自己的问题导致的
  • 如果确定测试数据、操作都没有问题,会先和开发沟通,阐述我的操作和理解以及复现福州,并以需求文档作为佐证,证明Bug的真实性和修复的价值
  • 如果开发不认可,联系产品经理,同时对Bug进行跟进和判断,确定是否为Bug以及后续处理

 13.TCP和UDP协议的区别?

  • 相同点:都工作在传输层,目标都是在程序之间传输数据【大多数情况下使用TCP连接】
  • 不同点:
    • TCP是基于连接的,三次握手【在不可靠的信道上建立可靠的连接】+传输确认【解决了丢包、乱序问题】+四次挥手【关闭连接】;UDP是无连接的,直接进行数据传输
    • TCP是可靠传输【丢包重传机制】;UDP是不可靠传输
    • UDP是面向报文传输,TCP是面向字节流的
    • UDP适合直播,实时游戏等场景

14.怎么定位一个Bug是前端还是后端?

主要通过接口进行判断,产品开发基本是前后端分离的

抓包获取接口信息

1.判断请求接口URL、传参是否正确,页面展示数据异常,数据精度【100.00—> 100】异常的,交互流程异常都是属于前端的Bug

2.接口传参异常、业务处理异常、接口异常报错等错误,基本属于后端的Bug

3.也有时可能为前后端都能处理,要考虑处理成本和影响范围,使用最优解决方案来处理

15.抓包工具、为什么使用抓包工具?

Fiddler、Charles 主要是抓取http协议的接口信息用于辅助测试

用途:

1.从功能测讨的角度来说,通过抓包工具能够查看到页面上未显示的隐藏字段。而这些隐藏字段通常都有一些特的作用,能帮助查看前后端功能是否有异常。

2.通过抓包工具能够详细了解接口信息,方便开展接口或性能测试

3、通过抓包工具能够检查前端传参字段加密是否正确,例如登录的接口 密码是否加密 检查数据加密是否正确,安全行考虑
4、通过抓包也能更对的理解整个系统,通过抓包工具检查接口我能够确定提供接口服务的是哪个后端服务,方便我定位问题及分配bug。
5、基于抓包工具代理的特殊性,我能手动篡改接口请求及返回信息,帮助我提交一些页面上不能构造的数据情况或数据结构,尽可能全面的测试覆盖后端代码逻辑,发现一些隐藏的bug。【不太了解】
6、同时,我也可以通过抓包工具限制网络带宽,构造特殊场景完成一些专项测试,比如说app弱网测试。【例如:APP弱网测试】

17.平时工作中Bug分为哪些等级?

致命、严重、一般、提示

18.如果线上发现了一个较为严重的Bug怎么处理?【当问到这个问题时,面试通过率60%】

首先需要审视Bug的严重程度是否影响大部分用户使用,判断问题的轻重缓急
如果问题非常严重,已经影响了大部分用户的使用,这时候可能需要选择版本回退方案,尽快回复线上环境的正常运行

如果是个别用户收到了影响,就需要开发团队整体上协作,紧急迭代下一个版本上去进行Bug修复,同时对已经产生异常的数据进行修复

Bug解决后,需要进行复盘,分析问题发生的原因,总结经验教训,避免下次错误发生

19.对测试开发的理解以及日常工作


20.为什么选择测开

21.安全方面,了解哪些攻击?



22.http请求过程 session cookie token

域名解析 —> 与服务器建立连接【TCP连接】 —> 发起HTTP请求 —> 服务器响应HTTP请求,浏览器得到html代码 —> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片) —> 浏览器对页面进行渲染呈现给用户



22.1 TCP为什么需要三次握手

通过三次握手可以确定客户端—服务器双方接收数据是否都正常

22.2 TCP协议为什么要四次挥手?

TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。

22.3 HTTP协议

计算机通过网络进行通信的规则,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据。目前任何终端(手机,笔记本电脑。。)之间进行任何一种通信都必须按照Http协议进行,否则无法连接。
请求与响应:客户端发送数据,服务器端响应数据

无状态的:协议对于事务的处理能力没有记忆

23.http是报文还是二进制

HTTP(超文本传输协议)是一种应用层协议,它是基于文本的协议,使用 ASCII 字符串来进行通信。因此,HTTP是报文格式的,而不是二进制格式的。

HTTP报文由纯文本组成,通常包括请求报文和响应报文两种类型。每个报文都由三个部分组成:起始行、头部字段和消息主体。起始行描述了请求或响应的基本信息,头部字段包含了一系列键值对,描述了报文的属性和特征,消息主体包含了实际的数据内容。

由于HTTP是基于文本的协议,因此它的报文可以直接通过文本编辑器查看和编辑,便于理解和调试。但与二进制协议相比,HTTP的文本格式可能会导致传输效率稍低,因为文本数据需要转换成二进制数据进行传输。

24.cookie是附加在http什么地方

Cookie 是附加在 HTTP 报文的请求头部或响应头部的字段中的一种信息。具体来说,对于客户端而言,Cookie 会附加在 HTTP 请求头部中的 Cookie 字段中;而对于服务器而言,Cookie 则会附加在 HTTP 响应头部中的 Set-Cookie 字段中。

客户端发送请求时,会将之前服务器设置的 Cookie 信息包含在请求头部的 Cookie 字段中,以便服务器能够识别客户端的身份或状态。服务器在收到请求后,会根据 Cookie 字段中的信息进行相应的处理。

服务器在响应中可以通过设置 Set-Cookie 字段来向客户端发送 Cookie 信息,客户端收到响应后,会根据 Set-Cookie 字段中的信息将 Cookie 存储在本地,并在后续的请求中自动附加在请求头部的 Cookie 字段中。

24.请求响应与预期响应不符合怎么排查?

1. 验证测试环境

  • 确保测试环境稳定且配置正确,与预期的测试环境一致。

2. 核对请求参数

  • 仔细检查发送的请求参数是否正确,包括请求头、请求体、URL参数等,确保与API文档或接口规格说明一致。

3. 检查网络连接

  • 确认测试机器与服务器之间的网络连接是通畅的,没有防火墙或网络策略阻止了请求。

4. 复现问题

  • 尝试在不同的环境或使用不同的工具(如Postman、Curl)重复发送相同的请求,看是否能复现问题。

5. 查看服务器日志

  • 检查服务器端的应用日志和错误日志,查找处理该请求时是否有异常抛出或错误记录。

6. 分析响应内容

  • 详细分析实际响应的内容,查看是否有错误代码或错误消息,这些信息可能直接指向问题的原因。

7. 代码审查

  • 对涉及处理该请求的后端代码进行审查,检查业务逻辑处理是否有漏洞或错误。

8. 检查数据依赖

  • 验证数据库或依赖的外部服务中的数据是否正确,确保数据问题没有导致响应异常。

9. 使用抓包工具

  • 使用网络抓包工具(如Wireshark、Fiddler)捕获请求和响应的详细信息,以获得更深入的网络层面的洞察。

25.接口有哪些信息?

  1. 请求方法(HTTP 方法): 定义了客户端如何与服务器进行通信的方式,包括常见的 GET、POST、PUT、DELETE 等方法。

  2. URL(统一资源定位符): 指定了客户端请求的资源的位置。URL 包括协议、主机名、端口号、路径以及查询参数等信息。

  3. 请求头部(HTTP 头部): 包含了请求的元数据,例如身份验证信息、内容类型、预期响应类型等。

  4. 请求体(HTTP 请求体): 对于 POST、PUT 等需要传递数据的请求,请求体中包含了客户端发送给服务器的数据。

  5. 响应状态码(HTTP 状态码): 表示服务器对请求的处理结果的状态码,常见的包括 200(成功)、404(未找到)、500(服务器内部错误)等。

  6. 响应头部(HTTP 头部): 包含了响应的元数据,例如响应的内容类型、内容长度、缓存控制等。

  7. 响应体(HTTP 响应体): 包含了服务器返回给客户端的数据,通常是 JSON、XML、HTML 等格式的文本数据。

  8. 认证信息(Authorization): 如果接口需要进行身份验证,客户端可能需要提供相应的认证信息,例如基本认证、Bearer 令牌等。

  9. 参数(Query Parameters / Path Parameters): 用于指定客户端请求的具体要求或条件,可以包括查询参数、路径参数等。

26.对一个登录界面如何使用白盒和黑盒测试

黑盒测试:主要关注输入和输出,不关注代码内部的逻辑

  1. 功能测试

    • 测试正确的用户名和密码能否成功登录。
    • 测试错误的用户名或密码应被拒绝,并给出适当的错误提示。
    • 测试密码输入错误次数过多时的账户锁定功能。
    • 测试“记住我”功能是否按预期工作。
  2. 边界值测试

    • 测试用户名和密码的最小和最大长度限制。
    • 测试特殊字符在用户名和密码中的处理。
  3. 兼容性测试

    • 测试登录界面在不同浏览器和设备上的显示和行为是否一致。
  4. 安全测试

    • 测试SQL注入、XSS攻击等常见的安全漏洞。
    • 测试输入过滤和验证机制是否有效。
  5. 性能测试

    • 测试登录操作的响应时间和系统的承载能力

白盒测试:白盒测试着眼于程序的内部结构,通过了解代码和内部工作机制来设计测试用例

  1. 逻辑测试

    • 根据登录功能的代码逻辑,测试所有可能的执行路径,确保每个条件分支都被执行到。
    • 检查循环和递归逻辑是否存在潜在的问题。
  2. 代码覆盖测试

    • 使用代码覆盖工具确保登录功能的每行代码都至少执行一次,包括所有的条件分支。
  3. 静态代码分析

    • 使用静态代码分析工具检查潜在的编码问题,如未使用的变量、代码规范不一致、潜在的空指针引用等。
  4. 单元测试

    • 为登录功能的每个模块编写单元测试,特别是关键的业务逻辑部分,如用户认证、会话管理等。
  5. 集成测试

    • 测试登录模块与系统中其他模块(如用户数据库、会话管理、安全模块等)的集成是否无缝。

27.用户名长度使用等价类划分 有效 无效

假设用户名长度不能超过20

  • 等价类 1:有效长度范围内的用户名(6 到 20 个字符)
  • 等价类 2:无效长度范围内的用户名(小于 6 个字符)
  • 等价类 3:无效长度范围内的用户名(大于 20 个字符)

28.http有哪些传输方式?get 和post等

http长连接和短连接

http和rpc的区别

29.token怎么存储,过期了怎么办

30.怎么防止别人用你的token登录

  1. 保护令牌的安全性:

    • 不要将令牌泄露给他人,特别是不要将令牌明文显示在公共场合。
    • 使用安全的存储方式,例如在客户端使用安全的存储机制(如安全的 Cookie、localStorage、sessionStorage)或在服务器端进行安全存储。
    • 仅在安全的环境下使用令牌,避免在不受信任的设备或网络中使用。
  2. 使用短期令牌:

    • 使用短期令牌,并定期更新令牌,以减少令牌泄露的影响时间。
    • 考虑使用单次令牌,每次登录或会话结束后都生成新的令牌。
  3. 限制令牌的使用范围:

    • 限制令牌的使用范围,例如限制令牌只能在特定的设备、IP 地址或用户代理中使用。
    • 限制令牌的访问权限,确保令牌只能访问特定的资源或执行特定的操作。
  4. 使用额外的身份验证机制:

    • 结合其他身份验证机制,如双因素认证(2FA),以增加登录的安全性。
    • 监控和检测异常登录行为,及时发现并阻止未经授权的登录尝试。
  5. 定期审查和更新安全措施:

    • 定期审查令牌管理策略和安全措施,及时更新以适应新的威胁和攻击。
    • 对于安全漏洞或问题,及时采取修复措施,并向用户提供相关的安全建议和指导。

http1.0和http2.0的区别

http和https区别

URL解析

组成:<协议>://<主机>:<端口>/<路径> 注:端口和路径有时可以省略(HTTP默认端口号是80)

https://localhost:8080/index.html?key1=value1&keys2=value2


 

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

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

相关文章

Coursera上托福专项课程02:TOEFL Speaking and Writing Sections Skills Mastery 学习笔记

TOEFL Speaking and Writing Sections Skills Mastery Course Certificate 本文是学习 https://www.coursera.org/learn/toefl-speaking-writing-sections-skills-mastery 这门课的学习笔记&#xff0c;如有侵权&#xff0c;请联系删除。 文章目录 TOEFL Speaking and Writing…

docker-ce部署

目录 1. 更新软件包列表 2. 安装必要的软件包&#xff0c;以允许 apt 使用 HTTPS 3. 添加 Docker 的官方 GPG 密钥 4. 设置 Docker CE 的稳定存储库 5. 再次更新包索引以及安装 Docker CE 6. 验证 Docker CE 是否正确安装 7. 将当前用户添加到 docker 用户组&#xff0c;…

Linux之shell脚本编辑工具awk

华子目录 概念工作流程工作图流程&#xff08;按行处理&#xff09; awk程序执行方式1.通过命令行执行awk程序实例 2.awk命令调用脚本执行实例 3.直接使用awk脚本文件调用实例 awk命令的基本语法格式BEGIN模式与END模式实例awk的输出 记录和域&#xff08;记录表示数据行&#…

【陈老板赠书活动 - 25期】- 《Effective Java》

陈老老老板&#x1f9d9;‍♂️ &#x1f46e;‍♂️本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f934;本文简述&#xff1a;活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f473;‍♂️上一篇文章&#xff…

行人重识别项目 | 基于Pytorch实现ReID行人重识别算法

项目应用场景 面向行人重识别场景&#xff0c;项目具有轻量化 (训练的时候也只需要 2GB 的显存占用)、性能好 (只使用 softmax 损失就能够达到 Rank188.24%, mAP70.68%)&#xff0c;另外提供友好的上手项目流程教程 项目效果&#xff1a; 项目流程 > 具体参见项目内README.…

利用Flutter混淆工具提高应用的反编译难度

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

第十四届蓝桥杯大赛软件赛省赛

第十四届蓝桥杯大赛软件赛省赛 2.日期统计 小蓝现在有一个长度为 100 的数组&#xff0c;数组中的每个元素的值都在 0 到 9 的范围之内。 数组中的元素从左至右如下所示&#xff1a; 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 …

【Linux】Linux C 编程

在 Windows 下编程首先就是安装对应的 IDE &#xff0c;然后在 IDE 里面进行代码编写和编译&#xff0c;但是在 Linux 下&#xff0c;这两个部分是分开的&#xff0c;比如我们可以使用 vim 编辑器编写代码&#xff0c;然后用 gcc 编译器编译代码。Ubuntu 下有一些可以进行编程的…

03-JAVA设计模式-工厂模式详解

工厂模式 工厂设计模式是一种创建型设计模式&#xff0c;它提供了一种封装对象创建过程的机制&#xff0c;将对象的创建与使用分离。 这种设计模式允许我们在不修改客户端代码的情况下引入新的对象类型。 在Java中&#xff0c;工厂设计模式主要有三种形式&#xff1a;简单工厂…

2023-01-05(星期四)-恶意垃圾邮件导致agenttesla变体感染,可能是originlogger

前言 参考1 参考2 OriginLogger是一个开源的日志记录器&#xff0c;用于在应用程序中记录和管理日志信息。它提供了一种简单而灵活的方式来记录各种级别的日志&#xff0c;包括调试信息、警告和错误消息等。 AgentTesla病毒主要通过钓鱼邮件进行传播&#xff0c;钓鱼邮件内容多…

C语言解决汉诺塔问题

背景 首先带大家了解一下汉诺塔问题 汉诺塔是一个典型的函数递归问题&#xff0c;汉诺塔描述了这样的场景&#xff0c;有三个柱子&#xff0c;A,B,C&#xff0c;A柱为起始柱&#xff0c;在A柱上面有若干大小不同的盘子&#xff0c;最下面的最大&#xff0c;最上面的最小&#x…

Spring Cloud介绍

一、SpringCloud总体概述 Cloud Foundry Service Broker&#xff1a;通用service集成进入Cloud Foundry Cluster&#xff1a;服务集群 Consul&#xff1a;注册中心 Security&#xff1a;安全认证 Stream&#xff1a;消息队列 Stream App Starters&#xff1a;Spring Cloud Stre…

【WEEK6】 【DAY1】DQL查询数据-第一部分【中文版】

2024.4.1 Monday 目录 4.DQL查询数据&#xff08;重点&#xff01;&#xff09;4.1.Data Query Language查询数据语言4.2.SELECT4.2.1.语法4.2.2.实践4.2.2.1.查询字段 SELECT 字段/* FROM 表查询全部的某某查询指定字段 4.2.2.2.给查询结果或者查询的这个表起别名&#xff08…

开源代码分享(17)-基于足球队训练算法(Football Team Training Algorithm,FTTA)的组合风速预测

参考文献&#xff1a; [1]Tian Z, Gai M. Football team training algorithm: A novel sport-inspired meta-heuristic optimization algorithm for global optimization[J]. Expert Systems with Applications, 2024, 245: 123088. 1.算法基本原理 足球队训练算法&#xff0…

【Redis】Redis 生产问题。如何确保缓存和数据库数据的一致性? 常见的缓存更新策略?

目录 缓存穿透 缓存穿透解决办法 缓存击穿 击穿解决办法&#xff1f; 缓存穿透和缓存击穿的区别&#xff1f; 缓存雪崩 雪崩解决办法&#xff1f; 如何确保缓存和数据库数据的一致性&#xff1f; 常见的缓存更新策略&#xff1f; 缓存穿透 定义&#xff1a;缓存穿透说…

Android APP加固利器:深入了解混淆算法与混淆配置

Android APP 加固是优化 APK 安全性的一种方法&#xff0c;常见的加固方式有混淆代码、加壳、数据加密、动态加载等。下面介绍一下 Android APP 加固的具体实现方式。 混淆代码 使用 ipaguard工具可以对代码进行混淆&#xff0c;使得反编译出来的代码很难阅读和理解&#xff…

阿里巴巴蔡崇信:中国AI追赶神速,制造业霸主地位无可撼动!

快科技4月5日讯&#xff0c;阿里巴巴集团创始人兼董事长蔡崇信近日就AI技术领域及全球制造业形势发表看法。他认为&#xff0c;尽管中国在AI技术方面与美国有一定差距&#xff0c;但中国的追赶速度非常快。 AI-321 | 专注于AI工具分享的网站 AI工具集 | 人工智能工具箱 | 全球…

金三银四面试题(十五):Java基础问题(6)

这部分面试题多用于面试的热身运动&#xff0c;对很多找实习和准备毕业找工作的小伙伴至关重要。 HashMap与ConcurrentHashMap 都是key-value 形式的存储数据&#xff1b; HashMap 是线程不安全的&#xff0c;ConcurrentHashMap 是JUC 下的线程安全的&#xff1b; HashMap 底层…

【单片机】PMS5003,PM2.5传感器数据读取处理

文章目录 传感器介绍数据处理解析pm2.5的代码帮助、问询 传感器介绍 PMS5003是一款基于激光散射原理的数字式通用颗粒物浓度传感器,可连续采集 并计算单位体积内空气中不同粒径的悬浮颗粒物个数,即颗粒物浓度分布,进而 换算成为质量浓度,并以通用数字接口形式输出。本传感器可…

综测仪MT8862A控制方法

实现自动化控制&#xff0c;本次为大家讲解综测仪MT8862A的控制逻辑。 新建底层控制逻辑 在文件basis_contorl.py中写入仪器控制底层代码&#xff0c;代码如下&#xff1a; import tkinter.messagebox import pyvisaclass InstrumentControl(object):inst Nonedef __init__(…