常见的项目模块以及项目流程

1.图片轮播功能咋测的

接口,功能,影响面,性能,新旧数据兼容性测试

第一,测试环境查看旧数据功能是否正常,新增图片轮播是否正常,第二,自己写一个数据库数据迁移脚本将老数据迁移到新数据,再来测试图片功能正常,脚本:1.查看旧数据对应表结构字段是否存在,2.将旧表数据复制到新表完成迁移

功能测试 :测试编辑页面,测试移动端,测试预览查看,核心功能图片组件的预览和轮播,功能上场正常不

UI自动化:公司已经搭建好框架,调用登录功能,访问仪表盘链接,进入仪表盘,点击编辑,新增图片,做些对图片的操作在做些断言,功能简单所以没有特殊逻辑。

2.之前研发团队的组成

3.主要工作内容

4.信息来源

a文档:需求文档、设计文档、测试文档,用户手册

b。现有(开发,测试,预生产)环境

c 项目同事

如何快速熟悉一个项目

1.业务特性:项目作用

2.用户和角色:项目对象

3.组织架构图:项目模块

4.技术栈

介绍下项目(是什么,做什么,有什么作用,技术栈)

1.WMS是一个B/S加购的仓库管理模块

2.主要用于管理和优化仓库的操作流程,提高仓库管理的效率和准确性

3.供采购,销售,客服,仓管角色使用,集成仓库管理的效率和准确性

4.项目使用前后端分离技术,前端vue+ElementUI,后端springboot+JWT+redis+mysql

测试流程

1.需求分析+需求评审

2.编写测试计划

3.编写测试用例以及发起用例评审

4.搭建测试环境

5.系统测试,编写测试报告

( a.冒烟测试 b.第一轮–新功能测试 c.第二轮bug回归 d.第三轮bug回归 f.旧功能测试)

6.验收测试,编写测试报告

各阶段人员

1.需求分析+需求评审:

参与人员:产品+ui+开发+测试对 产品了解

ui:界面美化以及交互

开发:功能实现

测试:各功能详细约束

面试题:需求评审提出过那些问题?

1.常见的情况就是没有约束输入的字段长度和类型

2.还有一些数据问题,不能光看原型图,要确认逻辑关系,比如模糊查询,数据唯一性问题,以及具体查表和排序逻辑

3.还有一些异常处理,如越级访问

2.测试计划

面试题:测试计划咋写的

1.文档标题

2.测试负责人

3.测试策略:Ui+功能+易用性+接口

4.预期测试过程:新接口功能测试+冒烟测试+3轮系统测试+接口层旧功能回归+验收测试

5.测试里程碑

6.测试通过标准bug清0

7.风险评估

3.编写测试用例以及发起用例评审

使用企业版的石墨文档进行记录查看编辑

负责项目多少测试用例

1.项目大小

2.vms项目,每次迭代一般新增100-200测试用例

参加过来发评审吗,一般关注过哪些问题?

1.每次迭代都参加

2.一般研发发起评审会议,参与人员:前后端开发+测试

3.比较关注新增内容是新增了几个接口,旧功能涉及修改项是什么,数据库表结构和数据变更

测试用例评审过程中,提出问题

1.黑盒测试,需要多维度

2.弱网考虑

3.登录过期时提交操作情况

接口联调和接口功能测试

依赖登录的接口怎么测试

1.先请求登录接口,获取token 2.再带上token,请求目标接口

有上下有关系的接口怎么测

1.先请求接口1,提取下游接口所需数据

2.在请求接口2,提交数据即可

4.系统测试

公司提测的标准是什么?

1.我们公司开发在冒烟测试自测通过后方可正式提测

2.其中冒烟测试的用例由测试提供

接口回归测试你们怎么做的,回归测试通过的标准是什么?

1.回归测试通过接口接口回归测试的

2.对于高速迭代的项目而言,测试用例数量就能达到2000+,从UI层面进行回归测试,就算只执行一半,会消耗大量人力物力,所以我们选择接口的旧功能回归

3.回归测试脚本测试执行成功,无bug,视为回归测试通过

公司接口测试流程

1.接口只是一个测试层级,具体流程和应用方向有关

2.例如有个接口测试应用方向,1.联调阶段接口功能测试,2.旧功能的接口回归测试

3.对于1来说从swagger得到api文档,然后使用jmeter,针对每个新接口,需要对字段长度、类型、必填项、加密项进行效验,同时还要验证接口对数据库中数据影响是否符合要求,包括数据逻辑唯一性等问题

4.对于2,流程上需要先用jmeter执行上一个迭代形成的接口回归测试用例,如果没有问题,再把本次迭代新增的重要接口写入回归测试脚本,以便下次使用

5.验收测试

测试人员提供测试用例,由产品经理、客户完成验收测试

介绍下你们公司测试流程

1.每个迭代都会受到产品经理发来的prd文档,我们需要对文档分析,而后在需求评审上提出疑问

2.prd定稿后,测试组长写个测试计划

3.然后我们会使用xmind写测试点,测试用例,并发起评审

4.同期我们会参加开发的评审会议,并在开发期间协助进行接口联协,也会做接口测试

5.提测前测试会准备好冒烟测试的用例,由开发搭建环境并执行用例,其中多轮进行bug回归

6.接下来系统测试,一般最少3轮,第一轮完整执行用例,其中多轮进行bug测试

7.最后会通过接口层面做一轮就功能测试的回归测试

8.然后提交验收测试用例交给产品经理,有其中完成验收,我们会给出完成整的测试报告

9.最后上线,我们也会持续跟进

抖音软件测试三面,21个面试题复盘

1…selenium 中 hidden 或者是 display = none 的元素是否可以定位到?

2…如何提高 selenium 脚本的执行速度?

1.优化定位策略:避免使用过于精确的定位方式,而是选择相对稳定且简洁的定位方法,使用ID、类名或CSS选择器而不是XPath

2.隐式等待和显式等待的合理使用在脚本中合理设置等待时间,以确保页面加载完全或元素出现。

3.减少不必要的操作

4.使用并行测试

5.优化浏览器操作: 针对不同的浏览器,优化操作可以提高执行速度。例如,对于Chrome浏览器,可以通过Chrome Driver的一些高级配置来提高执行速度,如禁用图片加载、启用无头模式等

6.数据驱动测试:将测试数据从测试脚本中分离出来,可以提高脚本的灵活性和维护性。这样可以通过单一的测试脚本来执行多组测试数据,从而减少代码量和执行时间。

7.定期清理浏览器缓存

3.webdriver 的协议是什么?

WebDriver协议是一种用于自动化Web浏览器的远程控制协议,它定义了一组API和命令,允许开发人员通过网络发送指令来控制Web浏览器的行为。WebDriver协议的主要目的是为了实现自动化测试,使得开发人员可以编写测试脚本来模拟用户在浏览器中的交互行为,例如导航到特定URL、查找元素、执行点击、输入文本等操作。
WebDriver协议的实现通常是通过WebDriver服务器来完成的,WebDriver服务器负责接收来自客户端(如测试框架或测试脚本)的命令,并将这些命令转发给实际的浏览器实例,然后将执行结果返回给客户端。

通过WebDriver协议,开发人员可以轻松地编写自动化测试脚本,并在不同的浏览器和平台上执行这些脚本,从而实现跨浏览器的自动化测试。

4.自动化测试的时候是不是需要连接数据库做数据校验?

1.数据驱动测试: 在数据驱动测试中,测试用例的输入和预期结果通常存储在数据库中。在执行测试用例时,自动化测试脚本可能需要连接数据库来获取测试数据,并将实际结果与数据库中的预期结果进行比较。
2.数据一致性检查: 在一些测试场景中,需要检查系统中的数据是否与数据库中的数据保持一致。例如,在进行订单处理系统的测试时,可能需要验证订单信息是否正确地存储在数据库中。
3.数据转换和处理: 在一些测试场景中,需要将数据库中的原始数据进行转换和处理,以便进行测试。例如,对于电子商务网站的测试,可能需要连接数据库来获取产品信息,并在测试中使用这些信息进行验证和操作。
4.数据库操作测试: 在一些测试场景中,需要验证系统对数据库的操作是否正确。例如,测试数据库插入、更新、删除等操作的正确性。

并非所有的自动化测试都需要连接数据库进行数据校验。有些测试可能仅需要通过UI进行验证,而不直接涉及数据库。因此,在制定自动化测试策略时,需要根据具体的测试场景和需求来决定是否需要连接数据库进行数据校验。

5.点击链接以后,selenium 是否会自动等待该页面加载完毕?

是的,Selenium在点击链接后会自动等待页面加载完毕。这种等待称为隐式等待(Implicit Wait)。隐式等待是指在查找元素时,如果没有立即找到该元素,Selenium会等待一定的时间再次尝试查找,直到超过设置的最大等待时间为止。

6.自动化测试产出比你觉得怎么样?

1.提高测试效率: 自动化测试可以大大提高测试效率,因为它可以在短时间内执行大量的测试用例,并且不需要手动干预。这使得测试团队可以更快地发现和修复软件中的问题。
2.增强测试覆盖范围: 自动化测试可以覆盖广泛的测试场景,包括功能测试、回归测试、性能测试等。通过自动化测试,可以更全面地覆盖软件的不同方面,从而提高软件质量。
3.提高测试准确性: 自动化测试可以消除人为错误和主观判断,从而提高测试的准确性和一致性。测试脚本的执行是可重复的,可以确保每次执行的结果都是一致的。
4.持续集成和持续交付: 自动化测试是持续集成和持续交付的重要组成部分。它可以帮助团队快速地验证新功能的稳定性,并及时发现和解决集成问题。
5.节省成本: 虽然自动化测试的实施成本较高,但它可以在长期内节省大量的测试成本。通过自动化测试,可以减少人力资源的投入,并且可以更早地发现和修复问题,从而降低了软件开发和维护的成本。

然而,自动化测试也有一些潜在的缺点和挑战,包括测试脚本的维护成本、自动化测试覆盖的局限性、测试环境的复杂性等。因此,在实施自动化测试时,需要仔细评估其成本与收益,并根据具体情况制定适合团队和项目的自动化测试策略。

7.selenium 中如何判断元素一定存在?

1.使用find_element方法: find_element方法尝试查找满足条件的第一个元素,如果找到则返回该元素,如果未找到则抛出NoSuchElementException异常。

2.使用显式等待: 可以使用Selenium的显式等待来等待元素的出现。通过指定等待条件和最长等待时间,可以等待元素的出现

8.http 接口和 webservice 接口的区别?

9.Pytest ?

  1. 简洁的语法: Pytest提供了简洁、灵活的语法,使得编写测试用例更加简单和直观。
  2. 自动发现测试用例: Pytest能够自动发现项目中的测试用例,无需显式地继承特定的测试类或命名规则。
  3. 丰富的插件生态系统: Pytest拥有丰富的插件生态系统,可以通过插件扩展其功能,例如参数化、覆盖率测试等。
  4. 易于集成: Pytest易于与其他工具和框架集成,例如Selenium、Django、Flask等。
  5. Fixture支持: Pytest提供了强大的Fixture功能,用于准备测试环境、共享测试数据等。

10.简历上写熟悉 linux 命令的必问,如何搭建测试环境?!!!!!!!!!!!

  1. 选择硬件: 根据测试需求选择合适的硬件。这可能涉及到选择虚拟机或物理机,以及确定需要的处理器、内存和存储容量等。
  2. 安装操作系统: 选择适合测试需求的Linux发行版,并在选择的硬件上安装操作系统。常见的Linux发行版包括Ubuntu、CentOS、Debian等,选择其中一种并按照官方文档进行安装。
  3. 配置网络: 根据测试需求配置网络。这可能包括设置静态IP地址、配置DNS服务器、设置网络代理等。确保测试环境能够访问所需的网络资源。
  4. 安装必要的软件和工具:
  5. 配置环境:
  6. 备份和恢复:
  7. 测试环境验证: 在完成测试环境搭建之后,进行测试环境验证,确保所有配置和安装都正确无误。这可能包括运行一些基本的测试用例或验证一些基本的功能。
  8. 持续维护和更新: 定期维护和更新测试环境,确保系统安全性和稳定性。定期更新操作系统和安装的软件,及时修补安全漏洞,以确保测试环境的可靠性和安全性。

11.你的测试系统有和其他系统对接吗?你 web 自动化输出的 allure 测试报告,有没有将

使用Selenium进行web自动化测试,并且希望生成漂亮的测试报告,他们可以结合使用Selenium和Allure测试报告框架。Allure是一个开源的测试报告框架,可以生成美观、交互式的测试报告,显示测试结果、测试用例的执行情况、失败的原因等信息。

12.简述一下内连接和外连接?

内连接查询的是两张表的并集,也就是A表和B表都必须有数据才能查询出来;根据ON后给出的两表的条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出ON后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。

13.性能测试的数据是谁准备的?

性能测试的数据通常由测试团队准备,这可能包括模拟真实生产环境的数据、用户行为数据,如果没有现成的数据可用,测试团队可能需要生成测试数据。这可以通过使用数据生成工具或脚本来模拟用户行为、生成随机数据或复制生产数据。将准备好的数据加载到测试环境中的数据库或应用程序中,以进行性能测试

15.Web 自动化测试发现了一个 BUG,开发认为不是代码的问题,是你脚本的问题,怎么去排查说服他?(这个问题被不同的面试官问了三次)

思路:1.bug是一时bug还是一直存在2.看看是不是自动化脚本问题3.系统环境4.记录详细错误5.团队沟通,共同分析6.持续改进

  1. 复现 Bug: 首先,确保能够准确复现该 Bug。在测试环境中重新运行自动化测试脚本,确保步骤、环境配置和数据都与发现 Bug 时一致。
  2. 检查自动化脚本: 仔细审查自动化测试脚本,确保脚本的逻辑和操作步骤是正确的。检查脚本是否正确定位元素、执行操作,并验证期望的结果。
  3. 排除环境因素: 确保测试环境的稳定性和一致性。检查自动化测试运行的环境配置,包括浏览器版本、操作系统、网络连接等。确保测试环境与开发环境一致,排除环境因素导致的 Bug。
  4. 记录 Bug 详情: 详细记录 Bug 的现象、复现步骤、预期结果和实际结果。包括截图、日志或其他相关信息,以便后续分析和讨论。
  5. 与开发团队沟通: 向开发团队提供详细的 Bug 报告,包括 Bug 的描述、复现步骤、环境信息等。与开发团队进行沟通,说明自动化测试发现的 Bug 并提供相关证据。
  6. 共同分析问题: 与开发团队一起分析 Bug 的原因,探讨可能的根源。根据 Bug 的现象和日志信息,共同定位可能的问题来源,包括前端代码、后端代码、数据库操作等。
  7. 合作解决问题: 与开发团队合作解决 Bug,共同制定解决方案并实施修复。根据分析结果和定位的问题,进行相应的代码修改、配置调整或环境优化。
  8. 持续改进自动化测试: 在解决 Bug 后,反思自动化测试脚本和流程,寻找可能的改进点。包括优化测试用例、提高稳定性、增加容错处理等,以减少类似问题的再次发生。

16.你们公司的业务流程是怎么样的?你觉得你到我们公司做测试有什么优势?你比较擅长什么?说出你的优势?和你的劣势?

17.如果你来到我们公司,你会怎么开展测试工作?

18.你封装了 requests 请求库,发送请求后如何获取相应报文?

send_request 函数封装了发送请求的过程,它接受请求的 URL、HTTP 方法、请求头、请求参数和请求体作为参数。然后,根据指定的方法发送请求,并返回响应对象。调用者可以通过返回的响应对象来获取响应状态码、响应头和响应体等信息。

\19. 接口发生异常你如何去分析定位问题

\20. 测试流程如何改进?(因为简历写了,所以这个问题你们应该问不到)

\21. 你是专职做自动化吗?自动化和功能测试时并行进行吗?占比多少?

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

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

相关文章

gstreamer+mpp调用硬解码播放视频

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、cpu解码二、gstreamermpp1.默认已安装2.没安装必要软件 总结 前言 以前一直在MPP上开发硬解码推理,最近想弄一个盒子支持调用mpp硬解码播放视频…

跑图像生成模型GAN时,遇到OSError: cannot open resource 报错解决办法

报错信息如下&#xff1a; Traceback (most recent call last): File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py", line 276, in <module> count train(dataloader, image_encoder, text_encoder, File "/root/autodl-tmp/ssa-gan/pretrain_DAMSM.py…

QT Creator与QT的下载安装

0.起因/小结&#xff1a; 因为运行项目需要更高版本的QT。 下载了QT 6.2.0&#xff0c;但是里面的gcc&#xff0c;g&#xff0c;gdb是64bit的&#xff0c;而我的QT Creator是32bit的&#xff0c;所以又下载了QT 13.0.0的64bit版本。 遇到问题&#xff1a;msvcp140_1.dll找不到…

软件管理及部分命令

sed命令 格式&#xff1a; sed [选项] 操作 目标文件 选项&#xff1a; -i&#xff1a;修改原始文件【如果不加-i&#xff0c;那就是仅仅修改内存中的文件副本】 案例&#xff1a;将1.txt中的tom修改成jerry。 sed -i "s/tom/jerry/g" 1.txt 将1…

基于FPGA的任意点滑动平均(滑动窗长度和数据位宽参数化,例化时参数可设置)

目录 1.前言2.原理3.举例说明4.Matlab实现5.FPGA实现滑动平均 微信公众号获取更多FPGA相关源码&#xff1a; 1.前言 对于一维信号&#xff0c;我们可以使用类似移动平均滤波&#xff08;Moving Average Filtering&#xff09;实现denoising。Moving Average Filtering 是一种…

vue-router 源码分析——3. 动态路由匹配

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行&#xff1a; 按官网的使用文档顺序&#xff0c;围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码&#xff0c;更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升&#xff0c;甚至面试时…

Jmeter性能分析及调优详解(入门)

一、系统性能理解 如果说需求、开发、DB、运维、测试是单一一门学科&#xff0c;那么性能就是综合学科&#xff0c;它包含了需求分析、DB、开发、测试、运维的所有学科。其实一般来说在实际性能分析和调优中&#xff0c;测试担任的角色就是写压测脚本并执行脚本查看结果&#…

TPM 是什么?如何查看电脑的 TPM?

TPM 是什么&#xff1f; 首先我们来了解一下 TPM 是什么&#xff0c;TPM 由可信计算组织&#xff08;Trusted Computing Group&#xff0c;TCG&#xff09;开发&#xff0c;为了在提高计算机系统的安全性。随着网络安全威胁的不断增加&#xff0c;TPM 技术逐渐成为确保系统安全…

PDF文件处理不再复杂:9个Python库让一切变得简单

大家好&#xff0c;这里是程序员晚枫&#xff0c;2年前发布了一个开源项目&#xff1a;python-office&#xff0c;目前在GitHub上有800⭐&#xff0c;最近在开发新功能时感觉Python知识有点不够用了。 所以打算从2方面补充自己的知识&#xff1a;研究优秀的第三方库和学习Pyth…

力扣算法题:多数元素 --多语言实现

无意间看到&#xff0c;力扣存算法代码居然还得升级vip。。。好吧&#xff0c;我自己存吧 golang&#xff1a; func majorityElement(nums []int) int {count : 0condidate : 0for _,val : range nums {if count 0 {condidate valcount 1} else if val condidate {count} …

Qt实现程序单实例运行(只能运行1个进程)及QSharedMemory用法

1. 问题提出 在开发时&#xff0c;经常遇到这样的需求或场景&#xff1a;程序只能被启动一次&#xff0c;不能启动多次&#xff0c;启动多次会导致混乱&#xff0c;如&#xff1a;可执行程序用到文件指针、串口句柄等。试想如果存在多个同一个文件的句柄或同一个串口的句柄&…

开源网关Apache APISIX启用JWT身份验证

说明&#xff1a; 本文APISIX的配置参考我之前写的《Ubuntu部署Apache APISIX》 创建最小API 首先&#xff0c;确保你已经安装了.NET 6 SDK。创建文件夹“MinimalApiDemo”&#xff0c;VS Code打开文件夹&#xff0c;打开终端 dotnet new web -o MinimalApiDemo cd Minimal…

python字典包连接mysql

连接mysql, 使用清华大学或其他国内 PyPI 镜像源 如果你在中国&#xff0c;由于网络问题&#xff0c;连接到 Oracle 的官方仓库可能会很慢或失败。在这种情况下&#xff0c;你可以使用国内的 PyPI 镜像源。例如&#xff0c;使用清华大学的镜像源&#xff1a; bash复制代码 pi…

鸿蒙开发接口数据管理:【@ohos.data.distributedData (分布式数据管理)】

分布式数据管理 分布式数据管理为应用程序提供不同设备间数据库的分布式协同能力。通过调用分布式数据各个接口&#xff0c;应用程序可将数据保存到分布式数据库中&#xff0c;并可对分布式数据库中的数据进行增加、删除、修改、查询、同步等操作。 该模块提供以下分布式数据…

Spring的bean的生命周期

想象一下&#xff0c;Spring中的Bean就像是你家后院种植的一株植物&#xff0c;从播种到开花结果&#xff0c;再到最后枯萎&#xff0c;整个过程就像是Bean的生命周期。现在&#xff0c;让我们以这个比喻来了解一下Spring Bean的生命周期吧&#xff1a; 1. 播种&#xff08;…

49.线程池的关闭方法

shutdown方法 1.线程池状态变为shutdown 2.不会接收新任务 3.已提交的任务会执行完 4.此方法不会阻塞调用线程执行 ExecutorService executorService = Executors.newFixedThreadPool(2);executorService.submit(() -> {log.debug("task1 running");try {TimeUnit…

ArrayList——简单洗牌算法

特殊语法介绍&#xff1a; List<List<E>> 该语法情况比较特殊&#xff0c;相当于一个“二维数组”存着一个个线性表的结构&#xff0c;如图&#xff1a; 该语法的灵活性强&#xff0c;可适用于多种类型和多种情况。接下来就使用该语法来实现一个简单的洗牌操作。…

Laravel常用数据库操作指令(模型/DB)

1、使用模型操作数据库&#xff0c;需要先引入相应的模型 如:use App\Models\Test; 2、使用DB操作数据库需要先引入DB库 如:use Illuminate\Support\Facades\DB; 一、数据库查询操作 get方法&#xff1a; 写法一:Test::select(id,name)->where(id,,1)->get();//sel…

vite+ts设置别名

准备工作 安装 types/node 避免代码爆红 npm install types/node一、根目录下 vite.config.ts 文件中配置 import { resolve } from path;resolve: {// 设置文件./src路径为 alias: [{find: ,replacement: resolve(__dirname, ./src)}] }二、根目录下 tsconfig.json 文件中配…

【漏洞复现】用友NC downCourseWare 任意文件读取漏洞

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具&#xff0c;用友NC提供了一系列业务管理模块&#xff0c;包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等&#xff0c;帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC …