2024软件测试面试热点问题

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快    

大厂面试热点问题

1、测试人员需要何时参加需求分析?

如果条件循序 原则上来说 是越早介入需求分析越好 因为测试人员对需求理解越深刻 对测试工作的开展越有利 可以尽早的确定测试思路 减少与开发人员的交互 减少对需求理解上的偏差

2、软件测试与调试的关系

测试条件已知,规程可定义,结果可预知

测试可以计划,过程可控

测试是检验,调试是推理过程

测试表明程序失败,调试表明正确

测试可不了解设计细节

测试由非设计人员完成

测试有理论依据

测试可自动化

3、比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系

黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。 白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。 单元测试:白盒测试的一种,对软件设计中的单元模块进行测试。 集成测试:在单元测试的基础上,对单元模块之间的连接和组装进行测试。 系统测试:在所有都考虑的情况下,对系统进行测试。 验收测试:第三方进行的确认软件满足需求的测试。

4、什么是兼容性测试?兼容性测试侧重哪些方面?

兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。

兼容的类型,如果细分的话,有平台的兼容,网络兼容,数据库兼容,以及数据格式的兼容。

兼容测试的重点是,对兼容环境的分析。通常,是在运行软件的环境不是很确定的情况下,才需要做兼容。根据软件运行的需要,或者根据需求文档,一般都能够得出用户会在什么环境下使用该软件,把这些环境整理成表单,就得出做兼容测试的兼容环境了。

兼容和配置测试的区别在于,做配置测试通常不是Clean OS下做测试,而兼容测试多是在Clean OS的环境下做的。

5、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

从技术上讲,所有的软件缺陷都是能够修复的,但是没有必要修复所有的软件缺陷。测试人员要做的是能够正确判断什么时候不能追求软件的完美。对于整个项目团队,要做的是对每一个软件缺陷进行取舍,根据风险决定那些缺陷要修复。发生这种现象的主要原因如下:

-没有足够的时间资源。在任何一个项目中,通常情况下开发人员和测试人员都是不够用的,而且在项目中没有预算足够的回归测试时间,再加上修改缺陷可能引入新的缺陷,因此在交付期限的强大压力下,必须放弃某些缺陷的修改。

-有些缺陷只是特殊情况下出现,这种缺陷处于商业利益考虑,可以在以后升级中进行修复。

-不是缺陷的缺陷。我们经常会碰到某些功能方面的问题被当成缺陷来处理,这类问题可以以后有时间时考虑再处理。

最后要说的是,缺陷是否修改要由软件测试人员、项目经理、程序员共同讨论来决定是否修复,不同角色的人员从不同的角度来思考,以做出正确的决定。

6、简述一下缺陷的生命周期?

参考答案:提交->确认->分配->修复->验证->关闭

7、如果一个缺陷被提交后,开发人员认为不是问题,怎么处理?

1.首先,将问题提交到缺陷管理库里面进行备案。

2.然后,要获取判断的依据和标准:

(1)根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

(2)如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

(3)根据用户的一般使用习惯,来确认是否是缺陷;

(4)与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

3.合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。

4.等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

8、如果一个缺陷被提交后,开发人员认为不是问题,怎么处理?

1.首先,将问题提交到缺陷管理库里面进行备案。

2.然后,要获取判断的依据和标准:

(1)根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;

(2)如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷;

(3)根据用户的一般使用习惯,来确认是否是缺陷;

(4)与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

3.合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不掺杂个人情绪。

4.等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

9、什么是关系型数据库,主键,外键,索引分别是什么?

关系型数据库是由多张能互相联接的二维行列表格组成的数据库

主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录

外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字

在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构, 它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单

10、nginx,tomcat,apache 都是什么?

Nginx (engine x) 是一个高性能的HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 服务器。

Apache HTTP Server 是一个模块化的服务器,源于 NCSAhttpd 服务器

Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器,属于轻量级应用服务器,是开发和调试JSP 程序的首选。

11、描述 TCP/IP 协议的层次结构,以及每一层中重要协议

12、Jmeter,一个接口的响应结果如下:

请用正则表达式方法分别获取一下 74956 和 713504275825 这两个数值分别赋值给 A1 和A2

13、HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

14、1Python 里 match 与 search 的 区 别 ?

match()函数只检测 RE 是不是在 string 的开始位置匹配, search()会扫描整个 string 查找匹配;也就是说 match()只有在 0 位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,match()就返回 none。

15、Python 里面如何生成随机数?

在 Python 中用于生成随机数的模块是 random,在使用前需要 import.

如下例子可以酌情列举:

random.random():生成一个 0-1 之间的随机浮点数;

random.uniform(a, b):生成[a,b]之间的浮点数;

random.randint(a, b):生成[a,b]之间的整数;

random.randrange(a, b, step) :在指定的集合 [a,b) 中,以 step 为基数随机取一个数; random.choice(sequence):从特定序列中随机取一个元素,这里的序列可以是字符串,列表,元组等。

16、Python 是如何进行类型转换的?

内建函数封装了各种转换函数,可以使用目标类型关键字强制类型转换,进制之间的转换可以用int(‘str’,base=’n’)将特定进制的字符串转换为十进制,再用相应的进制转换函数将十进制转换为目标进制。

可以使用内置函数直接转换的有:

list---->tuple tuple(list)

tuple---->list list(tuple)

17、常用自动化测试工具机器运行原理,写出一段元素查找的代码?

webdriver 原理:

每个Selenium 命令,这里指的是所谓的基础操作,例如,点击、输入等,都会创建一条 HTTP 请求, 发送给 Browser

WebDriver Browser WebDriver 使用一个HTTPServer 监听和接收HTTP 请求

HTTP Server根据协议规则定义这些 Selenium 命令对应的浏览器具体操作

浏览器执行这些操作

浏览器将执行状态返回给HTTP Server

HTTP Server 再将这些状态信息返回给自动化脚本

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No result found." not in driver page source
driver.close()

18、什么是自动化测试框架?

测试自动化框架是设置特定产品的自动化规则的集成系统。该系统集成了功能库,测试数据源,对象详细信息和各种可重复使用的模块。这些组件用作需要组装以代表业务流程的小型构建块。该框架为测试自动化提供了基础,并简化了自动化工作。

也是为自动化软件测试提供支持的假设框架,概念和工具的主要优点是维护成本低。如果任何测试用例发生变化,那么只需要更新测试用例文件,驱动程序脚本和启动脚本将保持不变。理想情况下,如果应用程序发生更改,则无需更新脚本。

选择正确的框架/脚本技术有助于降低成本。与测试脚本相关的成本是由于开发和维护工作。测试自动化期间使用的脚本的方法对成本有影响。

通常使用各种框架/脚本技术:

线性(程序代码,可能由使用记录和播放的工具生成)

结构化(使用控制结构 - 通常是“if-else”,“switch”,“for”,“while”条件/语句)

数据驱动(数据存储在数据库,电子表格或其他机制中,比如xml)

关键字驱动

行为驱动

混合(使用上述两种或更多种模式)

自动化测试框架主要负责:

定义表达期望的格式

创建一个挂钩或驱动被测应用程序的机制

执行测试

报告结果

19、你对Selenium Grid有什么了解?它提供了什么功能?

Selenium Grid是一款利用现有计算基础架构大幅加速Web应用程序功能测试的工具。允许测试者轻松地在多台机器上并行运行多个测试,并且可以在异构环境中运行。

基于优秀的Selenium Web测试工具,Selenium Grid允许测试者并行运行多个Selenium Remote Control实例。更好的是,它集成显示所有Selenium远程控制,所以不必担心实际的基础设施。Selenium Grid将运行Selenium测试套件所需的时间,缩短到Selenium实例的单个实例运行时间的一小点。

20、Selenium WebDriver中的可用定位器是什么?

ID,

Name,名称

CSS,

XPath,

Class name,

TagName,

LinkText, 链接文本

Partial Link Text.部分链接文本

21、性能测试有哪些分类

1.负载测试

2.压力测试

3.并发测试

4.基准测试

5.稳定性测试

6.可恢复测试

22、简述什么是值传递,什么是地址传递,两者区别是什么?

值传递主调函数传递给被调函数的是值的拷贝,不是原值;地址传递主调函数传递给被调函数的是值的地址。区别是值传递被调函数中的操作不改变主调函数的值,而地址传递则不同。

23、什么函数可以捕捉到web Vuser脚本的动态值?

Web_reg_save_param函数保存动态的数据信息到一个参数中。

24、Loadrunner支持哪些常用协议?

Web(HTTP/HTML)

Sockets

.net 协议

web services

常用数据库协议(ODBC,ORACLE,SQLSERVER 等)

邮件(SMTP、pop3)

其它协议

25、HTTP 和 HTTPS 的区别?

安全性上的区别:HTTPS:HTTP 协议的安全加强版,通过在 HTTP 上建立加密层,对传输数据进行加密。主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。

表现形式:HTTPS 站点会在地址栏上显示一把绿色小锁,表明这是加密过的安全网站,如果采用了全球认证的顶级 EV SSL 证书的话,其地址栏会以绿色高亮显示,方便用户辨认。

SEO:在 2015 年之前百度是无法收录 HTTPS 页面的,不过自从 2015 年 5 月份百度搜索全站 HTTPS 加密后,就已经可以收录 HTTPS 了。谷歌则是从 2014 年起便开始收录 HTTPS 页面,并且 HTTPS 页面权重比HTTP 页面更高。从SEO 的角度来说,HTTPS 和HTTP 区别不大,甚至HTTPS 效果更好。

技术层面:如果要说HTTPS 和HTTP 的区别,最关键的还是在技术层面。比如 HTTP 标准端口是 80, 而 HTTPS 标准端口是 443;HTTP 无需证书,HTTPS 需要 CA 机构颁发的 SSL 证书;HTTP 工作于应用层, HTTPS 工作于传输层。

26、TCP 的连接建立过程,以及断开过程?

27、还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?

测试并不能够最大限度的保证软件的质量,软件的高质量是开发和设计出来的,而不是测试出来的,它不仅要通过对软件开发流程的监控,使得软件开发的各个阶段都要按照指定的规程进行,通过对各个阶段产物的评审,QA对流程的监控,对功能及配置的审计来达到开发的最优化。当然测试也是保证软件质量的一个重要方式,是软件质量保证工程的一个重要组成部分。

28、16.2.4你在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?

测试从事过 web 测试,后台测试,客户端软件,进行功能测试,性能测试,编写测试工具,文档的管理等,比较擅长编写测试用例和进行功能测试。

29、测试结果分析如何?如何产生和被记录?

在项目测试之后,我们对缺陷进行了统计分析,并生成了测试报告文档。在此次项目中所有的缺陷都已修复并关闭。所有的缺陷都记录在缺陷管理工具中,并导出了缺陷报告

30、16.2.35在你以往的工作中,一条软件缺陷(或者叫 Bug)记录都包括哪些内容?如何提交高质量的软件缺陷(Bug)记录?

检测时间,系统环境,硬体环境,严重程度,程式版本,确认人,功能模块,问题描述,详细操作步骤,是否会重现。

问题描述和详细操作步骤要尽可能的详细。Bug 应该尽量用书面语,对与严重程度比较高的缺陷要在相同环境下在测试一遍。

在 C/S 模式下,如果条件满足可以使用替换法来确认是 client 端的问题还是 server 端的问题。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows、linux安装jmeter及设置中文显示

系列文章目录 1.windows、linux安装jmeter及设置中文显示 2.jmeter常用配置元件介绍总结之安装插件 3.jmeter常用配置元件介绍总结之取样器 windows、linux安装jmeter及设置中文显示 前言一、jdk安装1.windows安装jdk1.1.复制环境变量快捷跳转 2.linux安装jdk 二、下载安装jmet…

各种数据库介绍

1. 关系型数据库(RDBMS) MySQL • 特点:开源、免费,社区版功能强大且稳定。支持大量的并发连接,常用于Web应用。 • 适用场景:中小型网站、博客、电商等。 PostgreSQL • 特点:功能丰富&#xf…

【linux】查看不同网络命名空间的端口

在部署harbor时,内部用的是数据库postgresql,端口默认是: 5432,一开始以为这个数据库docker容器是在本命名空间中,一直用ss -lnt查询系统的端口,找不到5432端口。但是harbor要能正常使用,所有怀疑harbor的容…

使用ffmpeg和mediamtx模拟多通道rtsp相机

首先下载ffmpeg,在windows系统上直接下载可执行文件,并配置环境变量即可在命令行当中调用执行。 下载地址: https://ffmpeg.org/再在github上下载mediamtx搭建rtsp服务器,使用ffmpeg将码流推流到rtsp服务器。 下载地址&#xff1…

大数据分库分表方案

分库分表介绍 分库分表应用场景 分库分表介绍 大数据分库分表是一种数据库架构技术,旨在应对大数据量场景下的数据库性能瓶颈。以下是对大数据分库分表的详细解释: 一、定义与背景 定义: 分库:将一个大型数据库按照一定的规则…

关于word 页眉页脚的一些小问题

去掉页眉底纹: 对文档的段落边框和底纹进行设置,也是页眉横线怎么删除的一种解决方式,具体操作如下: 选中页眉中的横线文本; 点击【开始】选项卡,在【段落】组中点击【边框】按钮的下拉箭头; …

爬虫-------字体反爬

目录 一、了解什么是字体加密 二. 定位字体位置 三. python处理字体 1. 工具库 2. 字体读取 3. 处理字体 案例1:起点 案例2:字符偏移: 5请求数据 - 发现偏移量 5.4 多套字体替换 套用模板 版本1 版本2 四.项目实战 1. 采集目标 2. 逆向结果 一、了解什么是…

Fortran安装(vscode+gcc+Python)

编写时间: 2024年11月7日 环境配置: gcc VScode Python 条件: Windows 10 x64 VMware虚拟机 前言 这是我出的第2个关于Fortran安装的教程,由于上一个方法(你可以在本专栏里找到)对储存空间的要求比较…

外包干了2年,快要废了。。。

先说一下自己的情况,普通本科毕业,在外包干了2年多的功能测试,这几年因为大环境不好,我整个人心惊胆战的,怕自己卷铺盖走人了,我感觉自己不能够在这样蹉跎下去了,长时间呆在一个舒适的环境真的会…

丹摩征文活动|详解 DAMODEL(丹摩智算)平台:为 AI 开发者量身打造的智算云服务

本文 什么是 DAMODEL(丹摩智算)?DAMODEL 的平台特性快速上手 DAMODEL 平台GPU 实例概览创建 GPU 云实例 储存选项技术支持与社区服务结语 在人工智能领域的飞速发展中,计算资源与平台的选择变得尤为重要。为了帮助 AI 开发者解决高…

canal1.1.7使用canal-adapter进行mysql同步数据

重要的事情说前面,canal1.1.8需要jdk11以上,大家自行选择,我这由于项目原因只能使用1.1.7兼容版的 文章参考地址: canal 使用详解_canal使用-CSDN博客 使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步_mysql更…

Docker安装XXL-JOB分布式调度任务

一、持久化 1、下载 xxl-job 源码,找到持久化脚本 2、创建 xxl-job 数据库,将上述文件中的脚本在本库执行即可 create database xxl_job charset utf8mb4 collate utf8mb4_general_ci; 二、安装 1、下载 xxl-job 镜像 docker pull xuxueli/xxl-job-admin:2.4.1 2、创建挂…

线性表之链表详解

欢迎来到我的:世界 希望作者的文章对你有所帮助,有不足的地方还请指正,大家一起学习交流 ! 目录 前言线性表的概述链表的概述 内容链表的结构链表节点的定义 链表的基本功能单向链表的初始化链表的插入操作头插操作尾插操作 链表的删除操作头…

高校数字化校园中数据交换和共享平台的设计与实现(源码+定制+开发)校园数据整合平台、高校信息交换系统、校园数据整合平台、数字校园信息交换平台、校园数据集成管理

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

【Linux驱动开发】timer库下的jiffies时间戳和延时驱动编写

【Linux驱动开发】timer库下的jiffies时间戳和延时驱动编写 gitee地址: https://gitee.com/Mike_Zhou_Admin/Linux_Driver_Timestamp_Driver/更新以gitee为准 文章目录 timer库时间戳函数延时函数驱动代码应用测试附录:嵌入式Linux驱动开发基本步骤开发…

python安装了numpy却用不了且报错的解决方案和numpy的简单应用于图像处理

1.报错情况如下:Error importing numpy: 解决方法:降低python和numpy的版本,我一开始下载安装的都是最新版的python和numpy,后来降低了版本后就不报错且可正常使用了,这里给出我使用的版本作为参考(记得卸…

Java链表及源码解析

文章目录 创建一个ILindkedList接口创建方法(模拟实现链表方法)创建MyLinkedList来实现接口的方法创建链表节点addFirst方法(新增头部属性)addLast方法(新增到末尾一个属性)remove方法(删除指定属性)addInd…

潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验

潮玩宇宙方块兽系统开发正在推动潮玩与游戏的融合,通过个性化的UI设计和多游戏内嵌模式,为用户带来了独一无二的体验。本文将从可定制UI、多游戏内嵌功能以及系统实现等方面入手,探讨如何构建一个极具吸引力的潮玩宇宙方块兽系统。 一、可定制…

C#属性 Property

属性Property不是变量。 它们是由名为访问器方法来实现的一种方法。 实例属性表示的是实例的某个数据,通过这个数据反映实例当前的状态 静态属性表示的是类型的某个数据,通过这个数据反映类型当前的状态 意义: 防止恶意赋值(通过属性间接访问…

第八篇: 通过使用Google BigQuery进行数据批量和自动化处理

使用Python进行Google BigQuery数据批量和自动化处理 在大数据分析的日常工作中,定期更新、查询和处理数据是一项必不可少的任务。Google BigQuery结合Python脚本,可大幅简化这一过程。本文将介绍如何通过Python自动查询和更新BigQuery中的降水量数据&a…