当前位置: 首页 > 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…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型&#xff08;算法、数据分析、机器学习等&#xff09;不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...