赞
踩
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.生产周期?
最后就是唠嗑玩过什么游戏?在那些平台看直播?等等了,希望对各位有帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。