当前位置: 首页 > news >正文

今日头条面试真题及答案,软件测试工程师面试秘籍

试题1.在浏览器地址栏里输入一个网址,接下来会发生什么?

答案:发生的操作如下。

  (1)浏览器查找该网址的IP地址。

  (2)浏览器根据解析得到的IP地址向Web服务器发送一个HTTP请求。

  (3)服务器收到请求并进行处理。

  (4)服务器返回一个响应。

  (5)浏览器对该响应进行解码,并渲染显示页面。

  (6)页面显示完成后,浏览器发送异步请求。

试题2.说明Java里内存泄漏和溢出的区别。

答案:内存溢出(out of memory)是指程序在申请内存时,没有足够的内存空间可供使用。

内存泄漏(memory leak)是指程序在申请内存后,无法释放已申请的内存空间。一次内存泄漏的危害可以忽略,但内存泄漏堆积的后果很严重,无论计算机有多少内存,迟早会被用完。

内存泄漏最终会导致内存溢出。

试题3.写一个Java的单例模式。

试题4.假设有两个容积分别为5L和6L的桶,最后如何只装3L水?

答案:具体方法如下。

(1)取6L水,倒进5L桶里,即得到6L桶里余下的1L水。

(2)把5L桶清空,把取到的1L水放进5L桶里并保留不动,取6L水,倒进5L桶里,6L桶得到的是2L水,把5L桶清空,存放这2L水。

(3)5L桶中有2L水,再取6L水,倒进5L桶里,倒进的水为6L?3L=3L,5L桶就装满了,6L桶里余下的刚好是3L水。

试题5.指出Web测试和App测试的不同点。

答案:在兼容性方面,Web考虑浏览器,App除了考虑不同的手机机型外,还要考虑App的版本。

在网络方面,App要考虑使用的是3G、4G还是Wi-Fi网络等。

美团面试真题及答案

试题1.说明抽象类和接口的区别。

答案:抽象类用于捕捉子类的通用特性。它不能实例化,只能用作子类的超类。抽象类用于创建继承层级里子类的模板。

接口是抽象方法的集合。如果一个类实现了某个接口,它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,就必须确保使用这些方法。接口只是一种形式,接口自身不能做任何事情。

试题2.假如测试人员说程序有bug,而开发人员偏偏说没有,该怎么处理?

答案:用数据说话,找需求分析师验收。

试题3.Android系统的四大组件是什么?

答案:四大组件为Activity、Service、BroadCastReceiver、ContentProvider,它们是Android系统的基础。

试题4.Java的异常处理是怎样实现的?

答案:Java的异常处理通过try、catch、finally、throw、throws关键字来实现。

试题5.多态是怎么体现的?

答案:多态,就是指重载和重写。重载发生在一个类中;重写发生在子类中,即子类重写父类相同名称的方法。

试题6.设计一个测试计划,包括测试进度和所需要人员。

答案:测试计划如下。

  (1)测试人员前期参与需求评审。

  (2)测试、开发人员参与系统分析评审。

  (3)测试人员设计用例,并与开发、产品人员一起评审。

  (4)开发提测后,执行测试、反馈、验证。

  (5)测试和产品人员一起做预发验收。

  (6)发布。

年美团面试真题及答案

试题1.有10个瓶子,每个瓶子中有1000片药,每瓶中的每片药可能重1g,也可能重0.9g,但不确定几瓶中的每片药是0.9g的。有一台电子秤,精度为0.1g,问称一次怎么确定哪些瓶子中的每片药是0.9g的?

分析:对该题目分解,由于不确定是几瓶,情况比较复杂,我们先从简单的地方开始考虑问题,将问题分解为热身题和进阶题。

(1)热身题:有10个瓶子,每个瓶子有1000片药,每瓶中的每片药可能重1g,也可能重0.9g,一瓶中的每片药重0.9g的。有一杆秤,精度为0.1g,称一次怎么确定哪个瓶子中的每片药是0.9g的?

(2)进阶题:有10个瓶子,每个瓶子有1000片药,每瓶中的每片药可能重1g,也可能重0.9g,两瓶中的每片药重0.9g的。有一杆秤,精度为0.1g,称一次怎么确定哪两个瓶子中的每片药重0.9g?

答案:对于问题(1),若只有一个瓶子中每片药为0.9g,应该如何解决这个问题?因为只能称一次,所以思路是如何在一次称重中通过得到的结果显示出标记的瓶子的序号。若只能称一次,如何做?

其实我们知道两种药片重量差0.1g,从第1个瓶子中取1片,从第2个瓶子中取2片,第1个瓶子中的一片药比1g少0.1g,那么第1个瓶子中的每片药重0.9g。如果第2个瓶子中的两片药比2g少0.2g,那么第2个瓶子中的每片药重0.9g,所以问题(1)很容易解决,分别取1片、2片,……,10片即可。

对于问题(2),重点在于需要对前面的问题两两组合,使得接下来的药片数目区别于前面两种瓶子可能组合的结果。

问题(2),分别取1片、2片、4片、7片、10片、13片、16片……

  对于最终的问题,读者应该有思路了,即需要区别于前面所有的组合。

  因此,分别取1片、2片、4片、8片、16片、32片……

  这些片数正好是2的n次方,对于第10瓶,取29片,即512片,这也是为什么这个题中是1000片,10瓶。

试题2.给你两个玻璃球,有一栋100层高的大楼,玻璃球摔碎的条件是什么?

答案:每次肯定由低的楼层往高的楼层尝试,直到在楼层f(k),第一个球已经碎掉了,记录上一个尝试的楼层为f(k?1),在此楼层,玻璃球不会碎,所以接下来要尝试f(k?1)+1, f(k?1)+2, f(k?3)+3,……直到有一个楼层碎了,最坏的是到达了f(k) ?1层。

接下来的解决方案就很容易想出了。既然在第一步(确定临界段)投掷玻璃球的次数不断增加,我们就让第二步(确定临界层)的楼层数随着第一步的次数增加而减少。第一步的投掷数是一次一次增加的,那就让第二步的投掷数一次一次减少。

假设第一次投掷的层数是f,转换成数学模型,f+(f?1)+…+2+1就表示从f开始猜,每次的增量都比前一次的增量减?1?的情况下,最后猜的那个数(即f+(f?1)+…+2+1),按照题义要求f+(f?1)+…+ 2+1≥99,即f?(f+1)/2≥99(第一次测试点选择100层是无意义的,必然会碎,并且无任何测试价值,所以第一次测试点k是1~99的一个数),求出f?>13.5。丢下第一个玻璃球的楼层数就分别是14、27、39、50、60、69、77、84、90、95、99。

前面为什么是f+(f?1)+…+2+1≥99?首先,为了分段确定临界段,我们就要保证不管玻璃球在哪一个临界段碎掉,进行判断的次数是一样的,所以就需要从下到上每一个段比上一个段的长度少1,同时所有段的长度总和是99(不需要是100,因为如果前面都没碎,那么100也不需要再判断了)。

不等式右侧为什么是99呢?其实,不管使用99还是100,最后结果是一样的,只不过99更容易理解,因为如果你都已经到了99层了,可玻璃球还是没有碎,那么答案就肯定是100了,所以100就不用猜了。如果面试的时候说一下99和100的关系,就说明你够聪明,至于到底用100还是99,不同的人理解不一样。

首次,如果选择14楼,那么最高可以判断到呢?按照数列{14,27,39,50,60,69,77,84,90,95,99,102,104,105},一共猜14次,最后是105层。按照上面99和100的关系,虽然猜了14次,但是最后一次猜到了105层,可知如果在105层玻璃球还不碎,那么肯定在第106层玻璃球摔碎。14次最大可以判断到第106层,于是15次就要从15开始猜,并且如果有107层,那么需要15次。

如果在第27层玻璃球碎了,则要从15层开始一层一层地尝试,而如果在第26层玻璃球碎了,那么猜的序列就是{14,27,15,16,17,18,19,20,21,22,23,24,25,26},一共猜了14次。

该题为什么不能用二分法?用二分法是否最多7次就可以搞定了?该题要求你最多只能用两个玻璃球来判断玻璃球碎掉时临界的楼层。如果用二分法,第一步在第50层一扔就碎掉了,那么你只能从第1层开始扔了,要进行50次判断(如果你接着在第25层扔,最后一个玻璃球碎掉,你就没有球可以用了),所以在这里并不适合用二分法。因此,我们只能像上面一样想用第一个玻璃球去确定一个区间,然后在区间内从区间底部往上进行判断。

试题3.HTTP的请求有哪几种?各有什么用?

答案:共有如下8种。

OPTIONS:返回服务器针对特定资源所支持的HTML请求方法,或Web服务器发送的测试服务器功能(允许客户端查看服务器性能)。

GET:向特定资源发出请求(请求指定页面信息,并返回实体主体)。

POST:向指定资源提交数据以处理请求(提交表单、上传文件),可能导致新的资源的建立或原有资源的修改。

PUT:向指定资源位置上传最新内容(用从客户端向服务器传送的数据取代指定文件的内容)。

HEAD:与GET请求类似,返回的响应中没有具体内容,用于获取报头。

DELETE:请求服务器删除request-URL所标识的资源(请求服务器删除页面)。

TRACE:回显服务器收到的请求,用于测试和诊断。

CONNECT:HTTP/1.1协议中能够将连接改为pipe方式的代理服务器。

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

相关文章:

今日头条面试真题及答案,软件测试工程师面试秘籍

试题1.在浏览器地址栏里输入一个网址,接下来会发生什么? 答案:发生的操作如下。 (1)浏览器查找该网址的IP地址。 (2)浏览器根据解析得到的IP地址向Web服务器发送一个HTTP请求。 &am…...

JavaScript Windows 浏览器对象模型

Window 对象 BOM 的核心就是 window 对象所有浏览器都支持 window 对象。它表示浏览器窗口。所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。全局变量是 window 对象的属性。全局函数是 window 对象的方法。HTML DOM 的 document 也是 window 对象的属…...

【uniapp 获取缓存及清除缓存】

小程序及H5 获取缓存: 使用uniapp中的wx.getStorageInfoSync()方法可以获取当前小程序或H5应用的本地缓存信息,如下所示: let storageInfo uni.getStorageInfoSync() console.log(storageInfo)其中,storageInfo是一个对象&…...

【vim 学习系列文章 2 - vim 常用插件配置】

文章目录 1.1 vim 常用插件1.1.1 vim 插件 Pathogen 管理1.1.2 vim 常用插件推荐1.1.3 vim Leaderf1.1.4 vim ripgrep 工具1.1.5 vim Leaderf 配合 rg1.1.6 vim autocmd 配置 1.2 其它类型文件 vimrc 配置1.2.1 System Verilog vimrc 配置 上篇文章:vim 学习系列文章…...

【外卖系统】修改菜品

需求分析 在菜品管理列表页面点击修改按钮,跳转到修改页面,在修改页面回显菜品相关信息并进行修改,在最后点击确定按钮完成修改操作 代码设计 页面发送ajax请求,请求服务端获取分类数据,用于菜品分类下拉框中数据显…...

【暑期每日一练】 day11

目录 选择题 (1) 解析: (2) 解析: (3) 解析: (4) 解析: (5) 解析: 编程题 题一 描…...

神经概率语言模型

本文主要参考《A Neural Probabilistic Language Model》这是一篇很重要的语言模型论文,发表于2003年。主要贡献如下: 提出了一种基于神经网络的语言模型,是较早将神经网络应用于语言模型领域的工作之一,具有里程碑意义。采用神经网络模型预测下一个单词…...

什么是shadow DOM?

Shadow DOM(影子DOM)是一种用于在Web组件中封装HTML、CSS和JavaScript的技术。它是Web组件的一个重要特性,旨在将组件的结构、样式和行为封装在一个独立的、隔离的DOM树中,从而与主文档的DOM树相互隔离。 传统的Web开发中&#x…...

我的 365 天创作纪念日

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...

spark-sql : “java.lang.NoSuchFieldError: out“ 异常解决

异常现象 at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)at org.apache.spark.deploy.SparkSubmit.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:847)at org.apac…...

Node.js入门笔记(包含源代码)以及详细解析

Node.js 入门笔记源码 01、如何在终端中执行js 文件 目标&#xff1a;将下面的代码语句在中断中执行 代码演示&#xff1a; console.log(Hello World)for (let i 0;i < 3;i) {console.log(6)}方法&#xff1a;在文件上右击打开在终端中执行&#xff0c;然后输入node空格 输…...

windows自动化点击大麦app抢购、捡漏,仅支持windows11操作系统

文章目录 必要条件程序运行必要条件 确保windows11版本操作系统,如果不是可以通过镜像升级为windows11如果已经是windows11操作系统,确保更新到最新版本 修改系统所在时区,将国家或地区改为美国 开启虚拟化 勾选Hyper-V,如果没有则不需要勾选 勾选虚拟机平台 勾选完毕,点…...

vue 拦截 v-html 中 a 标签 href 跳转

记录 template 中 给需要 拦截的 代码片段加上click 方法 click“targetNodeNameClick” <p class"message-content message-content-text" v-html"replaceURLWithHTMLLinks(getText(message))" click"targetNodeNameClick"></p>然…...

分布式id、系统id、业务id以及主键之间的关系

推荐 连分布式ID都理解不了&#xff0c;你是刚培训出来冒充面试官的吧 1 分布式id、系统id、业务id以及主键之间的关系 分布式ID、系统ID、业务ID和主键的关系&#xff1a; 分布式ID&#xff1a;在分布式系统中&#xff0c;由于存在多个独立的节点&#xff0c;为了保证每个节…...

设计模式七:适配器模式(Adapter Pattern)

适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;用于将一个类的接口转换成客户端所期望的另一个接口。它允许不兼容的接口能够协同工作。 适配器模式涉及角色&#xff1a; 目标接口&#xff08;Target Interface&#xff09;&#xff1a…...

数据结构---队列

(一)队列之基础补充 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。 —— 百科 「队列 Queue」是一种…...

chatGPT在软件测试中应用方式有哪些?

ChatGPT可以在软件测试中以以下方式应用&#xff1a; 1. 自动化对话测试&#xff1a;ChatGPT可以用于自动化对话测试&#xff0c;模拟用户与软件系统进行实时对话。它可以扮演用户的角色&#xff0c;向系统发送各种类型的指令和请求&#xff0c;并验证系统的响应是否符合预期。…...

chatgpt 接口使用(一)

使用api实现功能 参考链接&#xff1a;https://platform.openai.com/examples 安装库&#xff1a; pip3 install openai 例如&#xff1a; import os import openaiopenai.api_key os.getenv("OPENAI_API_KEY") response openai.ChatCompletion.create(model&q…...

【个人笔记】Linux 服务管理两种方式service和systemctl

service命令与systemctl 命令 service 命令与传统的 SysVinit 和 Upstart 初始化系统相关。较早期的 Linux 发行版&#xff08;如早期的 Ubuntu、Red Hat 等&#xff09;使用了这些初始化系统。service 命令用于启动、停止、重启和查询系统服务的状态。虽然许多现代 Linux 发行…...

HCIP中期考试实验

考试需求 1、该拓扑为公司网络&#xff0c;其中包括公司总部、公司分部以及公司骨干网&#xff0c;不包含运营商公网部分。 2、设备名称均使用拓扑上名称改名&#xff0c;并且区分大小写。 3、整张拓扑均使用私网地址进行配置。 4、整张网络中&#xff0c;运行OSPF协议或者BGP…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

云计算——弹性云计算器(ECS)

弹性云服务器&#xff1a;ECS 概述 云计算重构了ICT系统&#xff0c;云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台&#xff0c;包含如下主要概念。 ECS&#xff08;Elastic Cloud Server&#xff09;&#xff1a;即弹性云服务器&#xff0c;是云计算…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...