网易面试软件测试面试题

1、首先是面试官先让你来一段自我介绍,我就是载在了开头,因为开头没起好,所以接下来的面试过程就显得我自己很没底气,
因此我建议大家在面试之前一定要打好草稿,甚至能背的滚瓜烂熟,了然于心。这样才能在自我介绍的时候能说得流畅自然。
?

3、第三个问题问的是数据库中有两张表,它们分别进行左连接和右连接,你说说看左连接与右连接的区别是什么?

?
左连接where只影向右表,右连接where只影响左表。
? ? ?Left Join

select * from tbl1 Left Join tbl2 where tbl1.ID = tbl2.ID

左连接后的检索结果是显示tbl1的所有数据和tbl2中满足where 条件的数据。

简言之 Left Join影响到的是右边的表

Right Join

select * from tbl1 Right Join tbl2 where tbl1.ID = tbl2.ID

检索结果是tbl2的所有数据和tbl1中满足where 条件的数据。

简言之 Right Join影响到的是左边的表。

4、第四个问题问的是你了解设计模式吗?请用Java语言如何设计单例模式?

很多时候取决人个人的喜好,虽然双重检查有一定的弊端和问题,但我就是钟爱双重检查,觉得这种方式可读性高、安全、? ?
? ? ? ? ?
5、第五个问题问的是sql语句,因为这道题我没听清楚,所以我在这里就不列举出来了,反正就是考察你对sql语句熟不熟悉,这里我建议大家去练一下常用的50条sql语句。

? ?
? ? ? ? ? ? ?
6、Java的垃圾回收机制是什么?

在系统运行过程中,会产生一些无用的对象,这些对象占据着一定的内存,如果不对这些对象清理回收无用对象的内存,可能会导致内存的耗尽,所以垃圾回收机制回收的是内存。
同时GC回收的是堆区和方法区的内存。
?
7、完成代码编写功能的人,没能按照规定的时间完成自己的任务,没办法完成交接任务,造成任务拖延,而你这边的测试 任务也要开始执行了,你该怎么办?

? ? ? ? ? ?
8、项目组长临时分配一个任务给你,让你在下一个项目提交日提交,可是你现在手头上也有一个任务,也是在同一个时间 提交,你该如何做?

9、终极一问:有100个乒乓球,你和另外一个人,两人轮流去拿取,每人每次至少拿取1个球,至多拿5个球,问你如何保证最后一个球是你一定能拿到的?
2次
第一次50 、50分两边
A、如果平衡,那就说明这一百个一样重
第二次拿第101个和这100个中任何一个比较
B、如果不平衡
第二次就随便把一边的50个分两份放两边,如果平衡了,那就说明次品在另外50个里,不平衡,就说明次品在这50个里

10.白盒测试过程中:

六种覆盖方法中:覆盖强度由弱到强的顺序依次是:

语句覆盖
判定逻辑覆盖
条件逻辑覆盖‘
判断逻辑条件覆盖
条件组合覆盖
路径覆盖

11.黑盒测试之场景法
定义官方版:通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果的一种方法。
本人俗套版:你从A走到B,其中一种走法是你在大路上从头到尾每一步都走得很漂亮,路上鸟语花香。还有很多种走法是你走了其他的小路,
但是最终还是走到了B,即使中间你摔过、绕过了一条河等。这些都是场景。

12.场景法设计步骤
1、分析被测业务,找出基本流及备选流
2、根据各项基本流和各项备选流生成不同的场景
3、对每一个场景生成相应的测试用例
4、对生成的所有测试用例重新审查,去掉多余的测试用例,确定测试用例后,为每一个测试用例确定测试数据值

13.堆和栈的区别
我们重点来说一下堆和栈:
???
栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),
for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,所以方法先进栈,然后再定义变量,变量有自己的作用域,
一旦离开作用域,变量就会被释放。栈内存的更新速度很快,因为局部变量的生命周期都很短。

?

堆内存:存储的是数组和对象(其实数组就是对象),凡是new建立的都是在堆中,堆中存放的都是实体(对象),
实体用于封装数据,而且是封装多个(实体的多个属性),如果一个数据消失,这个实体也没有消失,还可以用,所以堆是不会随时释放的,
但是栈不一样,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,但是会被当成垃圾,Java有垃圾回收机制不定时的收取。

14.三、 日常的工作流程
除了完成领导的任务(主要是看需求,写用例,执行并回归)外,

其实就现在而言,我目前的工作流程是这样的(当然是以一个版本迭代为周期):

评审新需求,记录关键点–>编写测试点(用例)–>测试之前向开发了解部分实现–>执行测试(翻阅代码,查看主逻辑走向<可选>)–>提交BUG–>回归BUG(查看BUG代码改动)–>新需求的性能评估(可选)–>发布前的系统测试(结合自动化)–>发布–>自动化用例的补充(可选)–>业务逻辑总结归总–>休息

那么基本流程就是这样了,那么可以看到一隔项目组的正真的测试人员,是要完成这么多工作的,所以这也是用来区分手工的外包人员和正式员工的区别,外包怎么样,大家都知道。

补充:

窃取某个大神的关于时间安排

时间 工作内容

30% 评审用例维护等准备以及后期工作

20% 执行测试用例,BUG回归

50% 自动化 && 新技术学习,引入

15.编写SQL语句查询成绩60至80之间的学生姓名

distinct 对查询结果去重
select stuid ,socre from score where socre>=60 and socre<=80
select stuid,socre from score where socre between 60 and 80

16.linux基本shell命令
创建文件夹 mkdir
查看文件内容 Linux中命令cat、more、less均可用来查看文件内容
查找文件 find
终结进程 kill
17.测试微信聊天功能

18.http协议post和get的区别?
1、url可见性:

get,参数url可见;

post,url参数不可见

2、数据传输上:

get,通过拼接url进行传递参数;

post,通过body体传输参数

3、缓存性:

get请求是可以缓存的

post请求不可以缓存

4、后退页面的反应

get请求页面后退时,不产生影响

post请求页面后退时,会重新提交请求

5、传输数据的大小

get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)

post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

6、安全性

这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

7、数据包

GET产生一个TCP数据包;POST产生两个TCP数据包。对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

19.生产周期?

最后就是唠嗑玩过什么游戏?在那些平台看直播?等等了,希望对各位有帮助。

你可能感兴趣的:(软件测试,网易)