抖音软件测试面试题(含答案)

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 抖音软件测试面试题(含答案)

抖音软件测试面试题(含答案)

题目

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

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

3.webdriver 的协议是什么?

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

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

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

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

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

9.Pytest 和 unittest 区别?

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

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

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

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

14.APP 自动化做过吗?简述一下你是怎么做功能测试、性能测试、安全性测试?

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

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

什么?说出你的优势?和你的劣势?

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

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

  1. 接口发生异常你如何去分析定位问题
  2. 测试流程如何改进?(因为简历写了,所以这个问题你们应该问不到)
  3. 你是专职做自动化吗?自动化和功能测试时并行进行吗?占比多少?

答案

  1. selenium 中 hidden 或者是 display=none 的元素可以定位到,但无法进行交互操作。可以通过 JavaScript 修改样式或者属性来使这些元素显示在页面上,然后再进行操作。
  2. 提高selenium脚本的执行速度需要从以下几个方面入手:
  • 合理使用等待时间:设置合适的等待时间,以及避免使用不必要的硬等待;
  • 减少页面元素定位次数:尽可能地复用已经定位到的元素,避免重复进行定位;
  • 选择快速的定位方式:根据应用场景选择合适的元素查找方法(如 ID、class name 等),避免使用诸如 Xpath 的较慢的定位方式。
  1. webdriver 是一个开放协议,它定义了浏览器控制和自动化测试的 Web API,包括通过 HTTP 请求管理不同的会话、获取指定会话的当前状态和特性,以及通过命令执行 DOM 操作等。
  2. 不一定需要连接数据库做数据校验。在许多情况下,可以基于前后端接口的概念来完成数据验证的工作,无需直接连接数据库。即使要验证数据库中的数据,也可以使用类似 JDBC 或 ORM 等技术将验证操作封装到代码中实现,而不是直接操作数据库。
  3. selenium 可以通过 ExpectedConditions 来等待页面加载完毕或特定的元素加载完成,例如使用 presence_of_element_located 来等待要点击的链接元素存在。此外,也可以使用 time.sleep() 等方式进行手动等待,但这种方式无法区分页面是否真正加载完成,不建议使用。
  4. 自动化测试产出很大程度上取决于自己的测试执行质量和系统复杂度等因素。如果能充分考虑到多种应用场景,针对各种情况不断优化方案,那么它可以大幅减少人为测试成本和时间,并且输出可重复、可持续的高质量测试结果。但是,在没有良好测试计划、测试用例设计和选择合适测试工具价值链的情况下这些因素可能就无效了。
  5. selenium 可以通过 WebDriverWait 类中的 ExpectedConditions 来封装等待条件,例如使用 presence_of_element_located 或 visibility_of_element_located 等方法判断元素是否存在。
  6. HTTP 接口 采用 HTTP 协议通信,而 Web Service 接口 使用 SOAP 协议进行通信,通常需要使用 WSDL 文件描述接口定义。另外,Web Service 接口功能较多、协议开销较大,而 HTTP 接口则更简单,通常用于轻量级业务和数据传输等场景。
  7. Pytest 是一个更加灵活简洁的 Python 测试框架,它支持模块化、参数化、夹具(fixture)注入、插件机制等多项高级特性。unittest 是 Python 标准库中内置的测试框架,支持诸如断言、测试套件等功能。相比之下,Pytest 易于学习和使用,并且具有更加丰富的插件生态。
  8. 要搭建测试环境,需要根据具体需求选择合适的硬件和软件资源并进行配置。一般情况下,可以采用物理机或虚拟机来模拟测试环境,安装必要的操作系统、开发环境和数据库等组件、应用程序本身,并根据测试追溯方案配置所需的备份、恢复、负载均衡和性能监控工具等。
  9. 测试系统通常需要与其他系统进行对接,包括产品管理系统、变更管理系统、缺陷管理系统等。针对对接需求和接口规范,需要开发和维护特定的对接逻辑和接口协议,以实现数据交换和流程协同。
  10. 内连接(INNER JOIN) 是 SQL 中最简单的连接类型,它只返回两个表中键值匹配的行。而 外连接 则可以返回在至少一个表中没有对应值的行,
  11. 性能测试的数据集是由测试人员根据系统业务场景编写的测试脚本,并通过运行这些脚本,在不同的负载场景下采集到的系统性能数据。性能测试需要覆盖各种实际应用场景,生成合理的负载和并发,以反映出系统在不同压力下的性能指标和瓶颈。
  12. 做过 APP 自动化功能测试、性能测试和安全性测试。其中性能测试主要针对 APP 功能模块进行测试,例如登录功能和支付功能等;性能测试主要关注 APP 的响应速度、内存占用率和电量消耗等,并通过工具采集和分析运行指标;而安全性测试则主要关注针对 APP 的攻击,如跨站脚本 (XSS) 和 SQL 注入等,并测试加固程度和漏洞修复是否有效果。
  13. 若开发人员认为 BUG 是由自身代码之外的环节引起的,这时候可以通过以下方法排查说服开发人员:
  • 重新运行脚本,检查是否具有一致性的错误;
  • 检查测试环境的配置和设置,并确保它与生产环境类似;
  • 对影响代码执行过程的所有中间件组件进行排查,尝试去除其中任何一个或调整其配置以确定解决方法;
  • 在同样场景下,使用不同测试框架或使用非自动化测试手段来验证 BUG 是否仅与脚本相关;
  • 仔细分析业务和代码逻辑并与开发团队及产品讨论,以便快速定位 root cause。
  1. 公司业务流程是和行业相关的,而我到贵公司做测试的优势主要在于有一定的经验和技能来应对各种软件测试问题,包括编写测试计划、设计测试用例、执行测试工作,并且熟练掌握了一些常见的测试工具和技术。我比较擅长自动化测试、性能测试和接口测试等领域,同时也努力提升其他技能来满足需要。

我的优势是高度责任感和学习能力,善于与各种人员合作。我的劣势则是缺乏项目管理经验,在承担一些复杂项目时可能需要更多的训练和支持。

  1. 在新公司开展测试工作时,首先需要了解公司的软件开发流程、项目规划和测试标准等方面的信息,并与开发、产品团队和其他相关人员建立联系和沟通。在此基础上,可以启动测试计划,编写测试用例和脚本,并进行测试环境的调试和搭建。针对不同项目的需要,可以采取自动化测试、手动测试或混合测试方式来进行测试工作,并及时跟踪缺陷汇报并参与相关会议。
  2. 当封装 requests 请求库后,发送请求后可以通过 requests.Response 对象的 text 属性获取响应报文字符串。也可以通过 content、json() 等属性或方法来获取对相应报文进行处理和解析后的数据。
  3. 当接口发生异常,可以根据实际情况采取以下分析方式:
  • 分析异常信息,如 HTTP 状态码、错误提示信息等;
  • 根据网络环境和测试场景选择适当的测试工具;
  • 在测试代码中加入详细 log 来记录关键步骤和触发操作;
  • 可以调用其他 API 或监控程序进行全链路方面的追踪和分析。
  1. 为改进测试流程,可以从以下几个角度入手:
  • 审查并更新测试计划和测试用例,并尝试使用自动化软件和测试框架,提高测试效率;
  • 设定特定的质量指标,包括代码覆盖率、缺陷密度等,并通过持续集成和持续交付来确保最终产品具有想要的质量要求;
  • 与开发人员合作,并通常参与到开发过程中,以便在早期阶段捕获问题;
  • 使用敏捷开发方式,以便能够快速响应变更需求和快速进行反馈和修复。
  1. 目前我做的是全职自动化测试,不过我会根据项目和团队的实际情况选择测试类型、进行测试用例设计和执行工作。同时,我深信自动化测试和手动测试并行进行,并且具有各自的优势。在我的测试工作中,自动化占比很大且效果显著,但是它不能完全替代人工测试,例如对 GUI 和边角用例的测试等场景依然需要人员的参与和检查。
相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
1月前
|
NoSQL 测试技术 Redis
第一次面试总结 - 迈瑞医疗 - 软件测试
本文是作者对迈瑞医疗软件测试岗位的第一次面试总结,面试结果非常好,但面试过程中没有提问太多技术性问题,主要围绕个人介绍、互相了解、个人规划和项目亮点进行,因此作者认为这次面经的学习意义不大。作者还提到了实习岗位的待遇和工作内容,以及对不同阶段求职者的建议。
37 2
|
2月前
|
运维 测试技术
拆分软件测试流程,一张图秒杀所有面试
本文主要介绍了软件测试流程的核心内容,包括需求分析、测试用例编写、测试执行、缺陷提交及回归测试等关键步骤。以迭代测试为例,详细说明了每个环节的具体操作和注意事项,并提供了一张测试流程图以便理解。测试流程确保了软件质量,是面试中常见的考察点。
62 7
拆分软件测试流程,一张图秒杀所有面试
|
3月前
|
SQL 安全 测试技术
[go 面试] 接口测试的方法与技巧
[go 面试] 接口测试的方法与技巧
|
3月前
|
自然语言处理 网络协议 JavaScript
23.2月 可能七牛云实习测试面试(技术面一面)面经整理
关于2月进行的七牛云实习测试面试(技术面一面)的面经整理,涵盖了多个技术问题,包括马尔可夫链的用处、软件测试工具、TCP/IP协议的三次握手过程、TCP与UDP的区别、网络诊断方法、DNS的作用、ifconfig命令的用途、Spring Boot的优势以及Java中Map的了解,还包括了一个编程题目:在n个书中找出k个最小的数。
|
4月前
|
IDE Java 测试技术
Java面试题:什么是Java中的单元测试以及如何编写单元测试?
Java面试题:什么是Java中的单元测试以及如何编写单元测试?
175 1
|
5月前
|
jenkins 测试技术 持续交付
30个接口自动化测试面试题,赶紧收藏
接口自动化测试是使用工具验证接口功能、性能和安全性的自动化过程。它能提升测试效率,减少人工工作量,及时发现问题。常见工具包括Postman、SoapUI和JMeter。测试涉及需求分析、测试计划、用例设计、脚本编写、执行、报告生成及问题跟踪。测试用例涵盖输入数据、预期结果等,脚本包含请求和响应细节。断言验证接口正确性,数据驱动测试使用多数据验证,性能测试检查响应时间等,安全测试关注认证和加密,Mock测试模拟数据,集成测试验证接口交互,回归测试确保修改未破坏原有功能,异常处理确保测试稳定性,并发和压力测试检查系统负载,持续集成通过工具如Jenkins保证软件质量。
209 3
|
4月前
|
IDE Java 测试技术
Java面试题:描述在Java中使用JUnit进行单元测试的过程
Java面试题:描述在Java中使用JUnit进行单元测试的过程
51 0
|
5月前
|
安全 网络安全 网络协议
精选30道“渗透测试工程师”面试题
渗透测试 信息收集 网络安全 web安全
237 3
|
5月前
|
测试技术 Linux 开发工具
软件测试之【面试题综合训练题】
软件测试之【面试题综合训练题】
65 0
|
6月前
|
XML 安全 网络安全
渗透测试初级面试题
答:.先爆破用户名,再利用被爆破出来的用户名爆破密码;其实有些站点,在登 陆处也会这样提示;所有和数据库有交互的地方都有可能有注入。 如果你看到了这里,那就点个关注+评论呗! 如需资料可私信,回复不及时,请见谅! 网安面经,试题,题库,需要哪个评论区私信