软件测试面试中常见必问(一)内附答案

        一般面试都会按照简历当中我们写的技能或者项目进行提问,所以我们在简历当中一定要写自己能说上来的东西和对简历中的项目一定要有准备。另外,如果真的不知道就请坦诚相待,直说“不好意思,这里我不太清楚”就可以了,有的面试官也会当场告诉你答案。

1.自我介绍

虽然简历中都有信息,但是这也是一个必经的流程,不仅是展示个人信息和专业技能,同时也在展示语言组织能力,沟通能力甚至亲和力等等...

2.上一家公司测试和开发有多少人

国内的比例一般是1个测试对应4-5个开发(个别大公司可能对应的开发会到3)

3.介绍一下之前的测试流程

提前拿到需求自己先熟悉和找到疑问、错误的地方-需求评审会议-编写测试点(测试用例)-用例评审-提测后进行测试-提交bug-回归bug-输出测试报告

需求评审会议参与人员:产品、开发、测试

4.挑一个你的项目说一下

描述项目的概述、业务逻辑、功能模块。同时也可以介绍自己在项目中的角色定位,负责的模块,使用的测试方法和工具等.....(面试官也可能会突然多问一个,建议简历中的项目都准备一下)

5.用的什么数据库,版本号是多少。(专业技能上面试官可能会从专业技能的第一条开始提问)

Mysql、达梦、MongDB等等....

版本号请根据你熟悉的数据库描述

6.(我这里以Mysql为例)说一下左连接、右连接和自连接

left join 和 right join   其中left join是查询出左边的所有以及和右表关联的数据,而right join是查询出右表的所有和左表关联的数据。

自连接(inner join):from 表 别名1 表 别名2 where 表1.xx = 表2.xx

7.数据库的增删改

删除命令:delete、drop、truncate

delete :

用于从表中删除满足特定条件的行。

支持 WHERE 子句来指定删除条件。可以触发外键约束。

操作会逐行进行,因此对于大量数据的删除可能比较慢。

操作会记录详细的行更改日志,这有助于恢复数据或审计。

delete from 表名 where 条件;

drop:

用于删除整个表或数据库对象(如表、视图、索引等)。

使用 DROP 删除表时,表的所有数据、结构和索引都会被删除,且不可恢复。

DROP 操作通常比 DELETE 快,因为它删除整个对象而不是逐行删除。

drop table 表名;

truncate:

用于快速删除表中的所有行。

不支持 WHERE 子句,它删除表中的所有数据,但保留表结构和索引。

操作非常快,因为它通过删除整个表的数据页来工作,而不是逐行删除。

不能触发外键约束。

truncate table 表名;

增加命令:insert into (upsert、copy into、insert into.....select 等等大家感兴趣可以自行了解)

insert into 表名 (字段名1, 字段名2, ...)
values (值1, 值2, ...);

修改命令:update()

update 表名
set 字段名1 = 值1, 字段名2 = 值2, ...
where 条件;

使用limit来限制更新的行数

update 表名
set 字段名1 = 值1
where 条件
limit 数字;

使用 UPDATE 命令时,务必使用 WHERE 子句精确指定要更新的行,以避免错误地更新整个表的所有行。

8.数据库索引是什么

数据库索引是数据库表中的一种数据结构,用于提高数据检索的效率。它类似于书籍的目录,可以快速定位到数据表中的特定数据行,而不需要扫描整个表。

优点:

显著提高查询速度,特别是对于大量数据。

可以加速排序和分组操作。

缺点:

索引需要额外的存储空间。

插入、删除和更新操作可能会变慢,因为索引本身也需要更新。

创建索引:

create index index_name on table_name (column1, column2);

删除索引:

drop index index_name on table_name;

9.sql注入是什么

是一种安全漏洞利用技术,攻击者通过在Web应用程序的输入字段中注入恶意SQL代码,来试图操纵后端数据库。这种攻击可以导致数据泄露、数据丢失、数据篡改,甚至可以获取数据库的完全控制权。

简单注入:

在输入框中输入 or 1=1 如果应用程序没有过滤或转义,这将导致SQL语句永远为真,从而绕过登录验证。

select * from users where username = 'admin' or '1'='1' and password = '1234';
 

 如何防御sql注入:

使用参数化查询:这是最有效预防SQL注入的方法。参数化查询确保用户输入被当作数据而非代码处理。

输入验证:验证所有输入数据,拒绝或转义可能包含SQL代码的输入。

限制数据库权限:应用程序连接数据库的账户应该只有执行必要操作的权限。

使用ORM框架:对象关系映射(ORM)框架通常会自动处理参数化查询。 

定期审计和测试:定期对应用程序进行安全审计和渗透测试。

10.常用的linux命令

cd..    返回上一级目录

cd /     返回根目录

mkdir 目录名      创建目录

mkdir 目录名1 目录名2    创建两个目录

rmdir 目录名     删除目录名

rm -f file1     删除文件

rm dir1        删除目录

ls    查看目录中的文件

cat file   从第一个字节开始正向查看文件的内容

tac file   从最后一行开始反向查看一个文件的内容

tail -n 5 file  指定显示最后5行内容

tail -n +5 file  指定从第5行开始显示内容

文件搜索命令:find   where  

chown user1 file  改变一个文件所有人的属性

管道符   连接多个命令     命令1 | 命令2

grep    过滤信息

gzip file     压缩一个叫file的文件

查看进程管理: 静态 ps   动态 top

linux中的编辑器:  vi    vim   自动进入命令行模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值