软件测试高频面试题【附答案解析】,2024年最新软件测试事件分发面试

select s.student_name,
datediff(curdate(),student_birthday)/365
from course c join grade g
on c.grade_id =g.id
join class cl on cl.grade_id =g.id
join student s on s.class_id =cl.id
where c. course_name = “体育”

4. 主键、外键作用,索引的优点与不足

主键

  • 表中的唯一标示键
  • 作用:保证实体的完整性,加快数据库的操作速度。

外键:

  • 主键的从属,表示两个表之间的联系
  • 作用:作用外键可以建立数据之间的关联,避免冗余

索引:

优点

  • 通过创建唯一性的索引,保证表中数据唯一性
  • 加速数据的检索速度
  • 加快表与表之间的连接
  • 使用优化隐藏器,提供系统性能

缺点:

  • 创建索引需要时间,
  • 索引需要占用物理空间
  • 当对表中数据进行修改时,索引也要动态维护,减低数据的维护速度。
5. 表的创建语法

create table 表名(
属性名1 数据类型 [约束条件],
属性名2 数据类型 [约束条件],
属性名3 数据类型 [约束条件]
);

6. 删除表

drop table 表名;

7. 删除多个表

drop table 表名 1,表名 2 …

8. 修改表结构

8.1. 添加列(属性)

alter table 表名 add 属性名 数据类型;

8.2. 删除表(属性)

alter table 表名 drop 属性名;

8.3. 修改属性:数据类型

alter table 表名 modify 属性名 数据类型;

8.4. 修改字段名

alter table 表名 change 旧字段名 新字段名 数据类型;

3.3数据库增删改查

create alter drop desc主要针对表结构来说的
insert delete update select 主要针对表中的数据来进行操作的

9. DML-INSERT

9.1.insert 插入 值和列一一对应关系

格式 1:
insert into 表名(列名 1,列名 2 …) values(值 1,值 2 …);
格式 2:
insert into 表名 values(值 1,值 2 …);
格式 3:
insert into 表名 values(值 1,值 2,值 3 …),(值 1,值 2,值 3 …);

9.2.删除 delete

格式 1:代表清空表内的数据
delete from 表名;
格式 2:
有条件的进行删除:delete from 表名 where 条件;

9.3.DML–UPDATE 更新

格式 1
update table_name set 字段=值;
格式 2
update table_name set 字段=值,字段=值;
格式 3
update table_name set 字段=值,字段=值 where 条件;

9.4.select 查询

9.4.1.基本格式:

select 列名 from 表名;
select 列名 1,列名 2,列名 3 … form 表名;

9.4.2. 使用关键字 distinct 查询

在查询返回结果中删除重复行
语法:select distinct 列名称 from 表名称;
只针对一个列去重

9.4.3.使用别名查询

根据需要对数据显示的标题进行修改
格式:select 列名1 ‘别名’,列名2 ‘别名’,… from 表名;
AS 关键字连接列表达式和指定的别名
select 列名 as ‘别名’ from 表名;

9.4.4.条件查询

格式:select 列名 from 表名 where 条件;
如果在查询过程中,有多个条件,可以使用 and 或 or 进行连接
and 连接 —》同时满足; or 连接 ------只满足其一

9.4.5.范围搜索范围

在范围之内
select 列名 from where 列名 between 开始值 and 结束值
不在范围之内
select 列名 from 表名 where 列名 not between 开始值 and 结束值;

9.4.6.列表搜索条件

in: 只要匹配到括号里任意一个值就会有查询结果;
格式:select 列名 from 表名 where 列名 in (值 1,值 2,值 3 …)
not in:
格式: select 列名 from 表名 where 列名 not in(值 1,值 2,值 3);

10. 数据库表连接查询:子查询、内连接、外连接

10.1. 多表查询

去重

  • 显式

select [distinct] A.列名,B.列名,C.列名,… from C
oin A on A.key=C.FKeyA
oin B on B.key=C.FKeyA and B.key=A.key
[GROUP BY 字段名]

  • 隐式

select [distinct] A.列名,B.列名,C.列名,… from 表A,
表B,
表C
where 表A.字段1 = 表B.字段1 and
表B.字段2 = 表C.字段2 and …
[GROUP BY 表名.字段名]

排序

select A.列名,B.列名,C.列名,… from C
join A on A.key=C.FKeyA
join B on B.key=C.FKeyA and B.key=A.key
[ORDER BY 表名.字段名]

10.2. 子查询

  • 子查询只返回一个值
  • 子查询首选使用in做匹配
  • 子查询在其他查询结果的基础上提供了一种有效的方式来表示where字句的条件 。
  • 子查询的selec查询总是使用圆括号括起来。
  • 对于子查询来说,外查询条件要什么,子查询就查什么。 一一对应的关系。
  • 子查询结果分类:

①.标量子查询(子查询结果为单个值):

  • 子查询返回的结果是单个值〔数字、字符串、日期等)
  • 常用操作符:= <> > >= <= < ②.列子查询(子查询结果为一列):子查询返回的结果是一列
  • 常用操作符:in、not in、any、some、all

select 列表名 from 表名 where 字段名 > all (子查询语句);
select 列表名 from 表名 where 字段名 > any (子查询语句);

③.行子查询(子查询结果为一行):

  • 常用操作符:=、<>、 in、not in

select 字段名,… from 表名A where (字段名1,字段名2,…) = (select 字段名1值,字段名2值,… from 表名B where 条件)

④.表子查询(子查询结果为多行多列):in

select 字段名,… from 表名A where (字段名1,字段名2,…) in (select 字段名1值,字段名2值,… from 表名B where 条件)

10.3. 内连接:只有匹配到的情况下才会返回结果值

格式一(隐式):

from 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2…
form 表名1,表名2
where 表名1.列=表名2.列; //列为相同的列

格式二(显式):

select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2…
from 表名1 inner join 表名2
on 表名1.列=表名2.列

10.4. 外连接

  • 外部连接会返回from字句中提到的至少一个表或视图中的所有行
  • 左连接:显示左边所有行。如果左表的某行在右表中没有找到匹配的行,则结果集中的右表相对应位置为null。

select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2
from 表名1 left outer join 表名2
on 表名1.列=表名2.列; //列为大家共有的列

  • 右连接:显示右边所有行

right outer join
select 表名1.列名1,表名1.列名2,表名2.列名1,表名2.列名2
from 表名1 right outer join 表名2
on 表名1.列=表名2.列;

  • 区分是左连接还是右连接:左连接以坐标为参考,左表没有则返回null,右连接以右表为参考,右表没有则返回null

10.4.5.联合查询

  • 把多次查询的结果合并起来,形成一个新的查询结果集
  • 对于联合查询的多张表的列数必须保持一致,字段类型也需要保持一致。
  • union all会将全部的数据直接合并在一起,union 会对合并之后的数据去重。

select 字段名 from 表A …
UNION [ALL]
select 字段名 from 表B …;

三. linux操作系统刷题篇

最基本的目标是熟悉常见的50个命令,比如find命令(-name、-type、-perm、-user、-group、-ctime、-atime)等,熟悉vi、熟悉linux搭建测试环境。比如LAMP环境搭建。

1. 进程与线程的理解
  • 进程是操作系统资源分配的基本单位,而线程是任务调度和执行的基本单位
  • 线程是进程的一部分
  • 一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程
2. 进程监控与内存监控
  • 基础概念

指令: ps 作用: 主要是查看服务器的进程信息 选项含义: -e:等价于 ‘-A’ ,表示列出全部的进程 -f:显示全部的列(显示全字段)

  • 执行结果

列的含义说明:

UID: 该进程执行的用户id

PID: 进程id

PPID: 该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程被称为僵尸进程

C: cpu的占用率,形式是百分数(%)

STIME: 进程的启动时间

TTY: 终端设备,发起该进程的设备识别符号,如果显示‘ ?’表示该进程并不是由终端发起

TIME: 进程的执行时间

CMD: 该进程的名称或对应的路径

  • 常用组合命令

命令:ps -ef | grep 进程名称

注意:执行该命令至少有一个进程(搜索该命令的进程)

例如:查看火狐浏览器的进程

例: 执行进程:ps -ef | grep mariadb 杀掉进程:kill -9 123

3. linux常见命令有哪些

目录相关命令

  • cd
  • mkdir
  • pwd
  • ls
  • ll

文件相关命令

  • touch
  • cat
  • more
  • less
  • head
  • tail
  • find
  • vim
  • rm

其他命令

  • ip addr
  • chmod
  • useradd
  • reboot
  • top
  • ps
  • kill
  • tar
  • unzip
4. 修改文件权限
  • 文件权限改为所有者读,所在的组写,其他用户执行
5. 动态查看日志

tail -f 文件名 动态查看日志

在运行大型EDA软件时候经常需要查看日志了解当前运行状态.

假设日志还是在实时更新ing

tail filename.txt

查看日志最后十行(默认是10行)会退出查看,回到命令行

tail -n 26 filename.txt

效果同第一条,也会推出,这里只是通过-n 后边的数字指定显示最后多少行,这里是显示了26行(默认只显示10行)

tail -f filename.txt

这条命令的-f选项可以支持动态实时显示,查看后不退出到命令行,一直等待日志更新(当然也是默认只显示最后十行)

tail -f -n 25 filename.txt

这一条比上一条指定的行数,动态显示最后25行

具体步骤

1 先cd到我们需要监控的日志目录。

2 tail -f -n 20 文件名                      //默认显示最后10行。

3查看完日志了需要退出,Ctrl + c

6. adb常用命令

adb 帮助:adb --help

启动adb 服务:adb start-server

关闭adb 服务:adb kill-server

获取设备号:adb devices

获取系统版本:adb shell getprop ro.build.version.release

发送文件到手机:adb push 电脑端⽂件路径/需要发送的文件,手机端存储的路径
adb push C:\Users\win\Desktop\xx.png /sdcard

从手机拉取文件: adb pull 手机端的路径/拉取文件名 电脑端存储文件路径
adb pull /sdcard/xx.png C:\Users\win\Desktop

查看手机运行日志: adb logcat

进入到手机终端: adb shell

安装app到手机: adb install 路径/xxx.apk

卸载手机app : adb uninstall app

获取app启动包名和启动名(⚠手机需要先打开对应app)

Mac/Linux: adb shell dumpsys window windows | grep mFocusedApp

在 Windows 终端运⾏: adb shell dumpsys window w | findstr mCurrent

获取app启动时间: adb shell am start -W 包名/.启动名

查看设备ip地址:
adb shell ifconfig wlan0
adb shell netcfg

查看设备cpu信息: adb shell cat /proc/cpuinfo

查看设备内存信息: adb shell cat /proc/meminfo

点亮屏幕: adb shell input keyevent 224

熄灭屏幕: adb shell input keyevent 223

四. 面试

1. 好工作从好简历开始
  • 如何编写一份获得更多面试机会的简历

简历包含的要素:基本信息,求职意向,教育背景,专业技能,工作经历,项目经验,自我评价,学生(在校荣誉)

  • 不打无把握之仗-面试赴约准备
2. 面试经验技巧

如何介绍自我介绍

自我介绍最重要的是能够在面试官心目中留下一个好的第一感觉。说得更直白一点是让面试官舒服。但是我发现很多人就是直接简单的介绍了一下过去的经历,但是实际上一方面过去的经历没有很好的让人发现优点。其实面试好比相亲,你想说什么不重要,重要地是人家想听什么。比较好的自我介绍套路是这样:“您好,我叫XXX,很高兴能获得这次面试机会,今天来面试是想证明自己是最合适的人选,另一个方面是获得您的认可,结合我过去的工作和学习经历,我自信我能符合咱们公司的认可,接下来您看是我继续介绍我做过的项目,还是您问您关心的问题?”

你的职业规划是什么?

一、走技术发展路线

1、测试专家,比如 “测试架构师”(关键词:技术难题攻关、关键业务评审、基础设施搭建、解决一线实际问题、规划团队技术发展)

2、专项测试工程师,比如 “自动化测试技术专家”、“性能测试技术专家”(关键词:软件测试某领域、技术专家)

区别:前者关注具体的某一个产品,综合考量选取更合适的技术;后者不关注具体的产品,而是研究某一专项技术的共性。

二、走管理发展路线

1、测试组长(关键词:产品重点难点测试、辅导新人、任务分配、任务跟进)

2、测试经理(关键词:项目管理、沟通协调、团队成长)

3、测试总监(关键词:理解产品商业目标、部门发展)

最后一个问题,面试官一般会问,您还有什么想问的吗?还有什么想了解的吗?

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-Sa0Yi1ju-1713084698025)]
[外链图片转存中…(img-rlvwjHjq-1713084698026)]
[外链图片转存中…(img-29BKEbya-1713084698026)]
[外链图片转存中…(img-DFah7Jl9-1713084698027)]
[外链图片转存中…(img-sOTvfOJA-1713084698027)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-pnhtOM12-1713084698028)]

一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
软件测试中,面试官可能会问到一些关于Python编程语言的问题。以下是一些常见的软件测试Python面试题以及它们的答案: 1. 什么是断言(assertion)?断言的作用是什么? 断言是用于验证程序执行结果是否符合预期的一种机制。在软件测试中,我们可以使用断言来判断测试结果与期望结果是否一致。当程序执行到断言的位置时,若断言不为真,程序会中止执行,并给出错误信息。 2. 你在自动化测试过程中遇到了哪些问题,是如何解决的? 自动化测试过程中可能会遇到一些问题,比如元素定位困难、稳定性问题、测试环境配置等。为了解决这些问题,可以采取以下方法: - 使用合适的元素定位策略,如使用唯一标识符或路径来定位元素。 - 对自动化测试脚本进行错误处理,以增加稳定性。 - 使用虚拟化技术来创建可靠的测试环境,避免依赖于外部资源。 3. 你熟悉哪些Python库或框架用于软件测试? 在软件测试中,常用的Python库或框架包括: - unittest:用于编写和运行测试用例的框架。 - pytest:一个功能强大且灵活的测试框架,支持自动发现测试用例、参数化测试等功能。 - Selenium WebDriver:用于Web应用程序的自动化测试。 - requests:用于发送HTTP请求并进行接口测试。 4. 请解释一下POM模式(Page Object Model)在自动化测试中的作用。 POM模式是一种基于面向对象编程的设计模式,用于将页面的元素和操作封装成可重用的对象。它的作用是提高代码的可维护性和可读性,减少测试脚本的冗余代码。通过将页面的元素和操作抽象成对象,可以更好地组织和管理测试代码,并在页面变化时更方便地进行维护。 这些是一些常见的软件测试Python面试题及其答案。希望对你有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [2022测试工程师高频面试题答案【python篇】](https://blog.csdn.net/jiangjunsss/article/details/123642853)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [《量化投资以Python为工具》资源及源码及习题](https://download.csdn.net/download/fairy_tail20/88248689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [30道python自动化测试面试题](https://blog.csdn.net/m0_37794269/article/details/127638480)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值