基础的软件测试面试题及答案

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 自动进入命令行模式

posted @ 2024-11-14 14:03  杭州铁锤  阅读(8)  评论(0编辑  收藏  举报