面试-测试开发如何考察-应届生

应届生

考察方面: 有潜力完成什么
  •  学校成绩(考试成绩,是否有论文,比赛成绩等等,如果是实习生,可以看下实习的时间)
  • 笔试成绩(数据结构,编程题,算法,智力题,数据库,网络等等)
  • 实践能力(公司实习经历,实验室IT项目,担任的角色,有无博客/开源项目)
  • 针对不足,提示过后,有什么改进(快速理解)
面试考察点
方面 例子 备注
代码,算法和数据结构 代码:读文件,字符串处理,查找等;
算法:基本的算法实现(不必十分复杂的算法)
数据结构:需要依赖数据结构解决的问题

例如,
几种常用排序算法,时间和空间复杂度,是否稳定,原理;
几种查找算法,时间复杂度(顺序查找-O(n),二分查找O(logN),二叉查找树O(h),hash表-O(1))
多线程中volatile synschonized的区别;
Java 接口和抽象类区别 ,c/C++和 Java 的区别;
java中常用的集合框架list,map(散列值的冲突问题),set
C++中STL容器,栈,队列
HTTP协议请求的几种方式,直接的应用场景和区别;

遍历hashmap的几种方式,
将一个字符串逆序,不要使用反转函数
二分查找;
选择排序、快速排序、希尔排序、堆排序不是稳定的排序算法,而冒泡排序、插入排序、归并排序(nlogn)和基数排序是稳定的排序算法
懂皮毛;
基本掌握,存在些bug;
熟练应用;
精通;

例如:
1)C语言实现n作为参数的斐波那契数列;
f(n)=f(n-1)+f(n-2)
2)c/c++ 字符串中空格替换成%2C(内存/空格位置考虑);
3)对上面的方法进行测试;
4) 二分查找算法实现及测试;
ps: 无序的输出怎么样/对异常点考虑
5) 数组中出现次数最多的元素
6) 统计文件中的重复单词

ps:
c/c++方面 开辟内存,内存回收;
用空间来换时间的典型例子;
操作系统/网络/数据库 操作系统:
网络:七层协议
操作系统:CPU调用
数据库:基本的SQL语句,联合查询等
ps:引入点 大学里最难学的课程是什么

例如:MySQL 数据库中,如何查看一个表的表结构,连表查询;删除,更新;
参考课本中典型的知识点

例如:
1)连表查询;
2)更新/删除字段;

3)主键和外键的区别;
外键:在同一张表字段
4)where和having区别;
having子句与where有相似之处但也有区别,都是设定条件的语句。
在查询过程中聚合语句(sum,min,max,avg,count)要比having子句优先执行.而where子句在查询过程中执行优先级别优先于聚合语句(sum,min,max,avg,count)。
简单说来:
where子句:
select sum(num) as rmb from order where id>10
//只有先查询出id大于10的记录才能进行聚合语句

5)查看表的结构字段;
6)索引优缺点
7)SQL truncate 、delete与drop区别
8) count(1) (*)(id)
在统计查询的时候尽量使用count(id),不要使用count(*)这样的;特别是数据量特别大的时候
9)数据类型:http://mrxiong.blog.51cto.com/287318/1651098/
10)unique与primary约束的区别
http://www.111cn.net/database/mysql/47259.htm
11) 完整性约束
http://blog.csdn.net/sinat_26342009/article/details/46420269
http://www.jianshu.com/p/00ab9c2d0712
12) limit m,n调优
http://blog.csdn.net/huazhongkejidaxuezpp/article/details/49472877

网络:
http状态码
 HTTP 协议包括哪些请求?
get和post区别
计算机网络七层模型;
输入URL后发生了什么http://blog.csdn.net/wuhenliushui/article/details/20038819/

操作系统:

操作系统中进程调度策略有哪几种?FCFS(先来先服务),优先级,时间片轮转,多级反馈

什么是死锁?死锁产生的条件?

请分别简单说一说进程和线程以及它们的区别

项目经验 1. 担任的角色
设计-开发-发布中
2. 对业务的整体理解,架构理解

3. 评价自己在项目中的不足 / 项目中遇到的困难,如何克服的
一个问题,如果不懂,会怎么办
一天的任务,自己通常怎么安排的
有无以后需要持续改进的点


有什么心得;

项目中的测试与合作
逻辑思维能力 1. 逻辑题
2. 数学题
3. 概览题
经典的题目即可
http://blog.csdn.net/huazhongkejidaxuezpp/article/details/61415196
专业方面知识 1.  以前有无类似的实习,项目经历;
例如,如果开发有项目,那项目的质量如何保证的,或者之前是开发,现在站在测试的角度看这个项目;

2. 如果有项目经历,可以给个简单测试例子,评估下有无这方面的思路
例如:
三角形三边的测试用例;
登录页面的测试;
测试 a+b;


3. 给出一个经常遇到的场景,比如 一个发现的bug, 开发不想fix,看下如何处理;
之前和 设计,开发,前端,后端,怎么合作模式? 怎么测试的 ?

4. 框架使用
web框架
前端框架


实际岗位需要的能力,评估目前具备多少











例如: springmvc工作流程:http://www.cnblogs.com/wang-meng/p/5701987.html
亮点 1. 有什么 特长:
可以询问一下面试者比较擅长哪方面,有针对性的问下去

2. 沟通,态度,学习能力
 
自我驱动 1. 看过哪些专业书籍, 对其中哪一点记忆最深

2. 有无 自行 开发过什么东? 学习什么知识
如果遇到一个以前完全没接触过的技术,会怎么去学习
 
加分项    
linux命令等 1. 是否主动学过

2. 常用的几个命令
 
语言方面 1. 学校一般开设的语言;
2.  有无自学过一些语言, 进而 为什么自学,自学到什么程度了
3. 熟悉语言之间 的 区别 和 各自的特点
 
博客/开源项目 1. 平常的读书心得、项目经验有无总结习惯
2. 有无技术博客
3. 有无做过开源项目,二次开发过什么
 
学习能力 1. 评估以下 新学习一门技术,语言等的一般思路
比如学过C++,不会java:
学C++看过什么书;
会怎么学习java
 
设计模式    
     


电话面试

1. 意向:
2. 实习时间;
3. 学习的课程; 项目介绍--架构,技术 语言;
项目理解
4. 编程+基本算法和数据结构使用(更深一层: 数据结构原理)
ps: 区分度-算法描述的熟练程度; 清晰度,思维;
5. 数据库
6. Linux


阅读更多

扫码向博主提问

多则惑少则明

博客专家

非学,无以致疑;非问,无以广识
去开通我的Chat快问
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页