百度测开3
-
自我介绍
-
了解数据库吗,怎么登录数据库
-
在登录前要先启动MySQL服务,命令为net start mysql
-
登录命令为mysql -h hostname -u username -p
-h后面的参数是服务器的主机地址,-u后面的参数是登录数据库的用户名,-p后面是登录密码。
-
-
怎么查询数据库的前五条数据、更新数据表中的一条数据、删除一个数据库
-
select * from table_name limit 5,10
-
UPDATE table set username=‘要改的’ WHERE l_id=‘要根据的’;
-
drop database <数据库名>;
-
-
两个表之间的查询有哪些方式,说一下外连接
- 内连接、外连接、交叉连接。
- 内连接只返回满足连接条件的数据行,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。外连接分为左外连接、右外链接、全外连接三种。
- 返回右表中的所有行,如果右表中行在左表中没有匹配行,则在左表中相关字段返回NULL值。
关键字 RIGHT [OUTER] JOIN
-
说一下你对数据库索引的了解(回答了五种索引、B+树实现索引的优点、聚集索引与非聚集索引),又问了索引的作用、应用场景,在什么情况下需要给一个字段添加索引
- Where 子句中经常使用的字段应该创建索引,分组字段或者排序字段应该创建索引,两个表的连接字段应该创建索引。
2、 更新频繁的字段不适合创建索引,不会出现在 where 子句中的字段不应该创建索引
-
Linux命令,怎么监听一个文件的变化(没答上来)
- watch
-
怎么查看一个端口是否启动(netstat),怎么查一个进程是否存在(ps),怎么查看一个文件里的内容(回答了cat、more、less、head、tail)
- .netstat -anp |grep 82
- .ps -ef |grep a
-
用linux去拼接另一台机器,怎么测试两台机器是否连通(回答了ping),追问还有没有其他的方法,没答上来(面试官小姐姐沉默了三秒,我都以为自己要挂了。。😫)
-
了解git吗,说一下它是干嘛的,怎么将代码从远程拉到本地,以及将本地代码提交上去
- Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- git clone +项目github http地址
- TortoiseGit
-
浏览器从输入url到返回页面经过了什么过程?怎么看返回页面的参数、接口?(开发者工具)
-
http请求的方法有哪些?(只回答了get和post。。)说一下get和post的区别。
-
说一下测试方法有哪些(回答了黑盒和白盒测试的定义和特点),又问还有别的测试方法吗(没答上来,面试官姐姐还安慰我,没关系,不了解就算了🤣)
-
从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试
-
如果一个项目明天要上线了,但是你今天没测试完,你会怎么做。(一开始我回答我会加班处理,面试官又问如果加班也是解决不完的呢,我回答我会申请能不能推迟一下上线时间,为我的工作尽可能争取时间,面试官又追问,然后呢,那如果还是完不成呢,我弱弱的回答,我可能会向项目组其他同事寻求帮助,来商量对策,面试官终于停止了追问。。)
-
测试百度搜索框,举一些测试点的例子(这个我熟,巴拉巴拉说了好多)
-
我一般分:功能测试、性能测试、易用性测试、界面测试、安全性测试、兼容性测试、其它测试
功能测试
搜索内容为空,点击“百度一下”,看系统处理
搜索内容为空格,点击“百度一下”,看系统处理
搜索内容含有特殊字符的处理
搜索内容带有非法字符
搜索长度在规定范围之内
搜索长度在规定范围之外,看系统能否正确进行截取
搜索内容输入敏感词汇,查看系统处理
搜索框是否支持快捷键操作,比如:zhantie
是否支持回车键搜索
性能测试
在网络情况良好的前提下,页面的跳转需要多少时间
在网络不好的情况下,页面的跳转需要多少时间
对搜索引擎进行加压测试
兼容性测试
不同的平台:windows系统,mac系统
不同的浏览器:Firefox浏览器、Chrome浏览器、IE
不同的移动平台:android、ios
界面测试
查看UI是否显示正确,布局是否美观
页面上是否有错别字
查看错误提示信息的位置是否合理、是否有错别字
搜索结果的页面是否美观
搜索结果数量庞大的时候,是否分页处理,分页是否和需求说明书的要求保持一致
光标的定焦是否准确
安全性测试
敏感内容的检索是禁止的
SQL注入防范 -
最后你有什么问题要问我吗
**
**
效率贼高,当天晚上就接到了二面通知😃
4.27二面(电话面试)
-
自我介绍
-
聊一下你的项目都做了什么工作,在这个过程中都遇到了什么难题
-
你上一段实习都做了什么工作(本科时候的实习经历,回答的不好)
-
Java里面的集合类你了解哪些,Java的多态了解吗(Java不熟,在征求了面试官的意见后,我回答了C++的多态)
-
多态里面的重载和重写的区别
-
C++里的重定义是什么(不知道,没答上来)
-
了解开发中的设计模式吗(回答了工厂模式和装饰器模式)
-
剑指offer第3题:数组中重复的数字,时间复杂度是多少
-
三次握手和四次挥手
-
介绍一下ARP协议,ARP会先在哪里找这个对应关系,
-
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。
-
网络七层模型有哪些,DNS协议是怎么工作的
-
DNS是一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。举例:有时候电脑的DNS服务器的地址没有设置好时,出现浏览器不可以访问网站,但是腾讯QQ可以上网聊天的情况。这是因为腾讯QQ客户端访问腾讯服务器时用的是IP地址而非域名,因此不需要DNS服务器进行域名查询服务,而浏览器上通过域名访问网站自然需要DNS服务器了。
DNS协议属于应用层的协议,它既可以使用TCP服务,也可以使用UDP服务:
-
数据库:一个学生表(学生id,学生姓名),一个成绩表(学生id,课程id,选修课程,成绩),查找本学期没有选课的学生,查找挂科的学生
-
select student.name from student join score on student.id=score.sid group by score.sid having score.chengji<60,score.id=null
-
SELECT 学号,姓名 FROM 学生表 WHERE NOT EXISTS (SELECT * FROM 成绩表 WHERE 学生表.学号=选修课程成绩.学号 AND 成绩<60)
-
说一下数据库的ACID,解释这四个特性分别是什么意思
-
原子性、一致性、隔离性与持久性
-
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位
-
原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生
-
一致性是指在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
-
多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果
-
持久性,意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚
-
四个隔离级别是什么,解释一下这四个隔离级别分别是什么意思
1)未提交读(Read Uncommitted):一个事务能够读取到 别的事务中没有提交的更新数据。事务可以读取到未提交的数据,这也被称为脏读(dirty read)。
所以这种级别很有可能读到脏数据,隔离级别最低。
2)提交读(Read Committed):一个事务只能读取到别的事务提交的更新数据。
一般我们提交读就可以了。只能读取到已经提交的数据。即解决了脏读,但未解决不可重复读。(oracle默认的)
3)可重复读(Repeated Read):保证同一事务中先后执行的多次查询将返回同意结果,不受其他事务的影响。这种隔离级别可能出现幻读。(mysql默认的)
4)序列化(Serializable):不允许事务并发执行,强制事务串行执行,就是在读取的每一行数据上都加上了锁,读写相互都会阻塞。这种隔离级别最高,是最安全的,性能最低,不会出现脏读,不可重复读,幻读,丢失更新。
-
串行化要加什么锁?读的时候需要加锁吗,加什么锁
-
对性能测试的理解(负载、压力测试)
-
问实习多久,表达了自己非常想得到转正名额留在百度🤣
-
最后还有什么要问我的吗,问了会有几轮面试,回答还有一轮经理面,不问技术问题
*
* 两个小时后接到了经理面的电话,感觉应该是经理面吧