面的测试职位,所以问题都比较偏测试的内容,大家可以看看吧。
================================
一面:
更技术细节一些。问题顺序忘了,我就把问题列一列吧,答案稍后补上。
1.java和c++的不同之处,至少三个。
java不需要自己去管理内存使用,c++在new之后需要自己delete。
java单继承,c++可以多继承。
然后我就不会了……
2.测试用例的设计方式,至少三个。
等价类,边界值 其他名字我不确定,再查一下
3.测试的方法,至少五个。
功能测试、安全性测试、兼容性测试、性能测试、压力测试。 据说还有很多,可以搜索一下……
4.写一个函数,实现将输入的int型逆转。如输入123,输出321。
其实这就是个稍微简化后的atoi()函数吧,要注意返回值越界的判断。我笨啊~第一次没考虑到,笨死了,后来改对了。
/** * ÕýÈ·£¬·µ»Ø1£»³öÏÖÈκδíÎ󣬷µ»Ø0 */ int turn (int num, int * result) { if (result == NULL) return 0 int flag = 0; if (num < 0) //ÈÃnumÒ»¶¨Îª·Ç¸ºÊý { flag = 1; num *= -1; } *result = 0; while (num) { *result = (num % 10) + (*result) * 10; if (*result < 0) //ÅжÏÔ½½ç { *result = flag > 0? (0x7FFFFFFF)*-1 : 0x7FFFFFFF; return 0; } num = num/10; } *result = flag > 0? (*result) * -1 : *result; }
5.写测试用例。假设x的取值有1、2、3,Y的取值有a、b、c,通常来说要测试所有z=x+y的可能,需要3*3=9个case。那么假设x和y的取值各有100个,case数量级会很大。要如何去简化case数量呢?
我回答了取x的临界配上y的临界值、中间值。反正最后回答了4个case。人家委婉地表示其实没有这么少。我觉得是给出的三个值太少了。如果多一些,比如100个取值的话,可以参考等价类和边界值,写上一些case吧。正确答案不明。
6.对于网易邮箱的登录框,测试的时候要考虑哪些方面呢?(不是真的写case,是考虑测试方向)
回答了:功能上的,并发时的性能和压力,安全性(get方式可能会泄露用户名+密码),还有浏览器的兼容性问题。
7.问实习做的Code Review都关于什么内容。
通常为c代码的检查,注重基本函数的使用不注意会带来的问题,例如指针未判空,snprintf()的buf开的不够大之类。
8.写一个建表的sql语句
我白痴了……嗯……太依赖界面操作了……ft……回来查了一下:
create table cs
(
id char(10) NULL,
name char(10) NULL,
score integer NULL,
primary key(id)
);
然后修改已有表的属性,比如添加新属性,删除旧属性的:
alter table cs add newOne integer NULL;
alter table cs drop newOne;
9.我说,建表改表我都用界面,查询啊更新用的比较多。人家说,好啊,我问你一个查询的~
然后我又sb了……他问的稍微麻烦了点,然后需要用到一个叫hup还是什么的,然后我就不会了,嗯
10.说进行项目测试的流程
a.参与需求分析,pm、开发、qa一起讨论,确定产品细节,生成项目文档;
b.进行开发。qa期间根据项目文档来写测试case,和开发人员沟通测试时应重点关注的问题;
c.提测,进行准入测试(冒烟测试)。if (false),打回,返回b;else,ok,进入d;
d.根据b中的case和重点,进行测试,包括功能的,安全的,兼容性的,性能,压力等等。发现bug,先进行定位,和开发人员进行沟通,记录。
e.开发人员解决bug,再次提测。bug未解决或衍生出新bug,返回d;bug解决了,进入f;
f.测试通过,批准上线;
g.上线后进行回归测试,线上发现问题根据重要优先级记录下来,后期追加修复。
当然,期间的测试会经历测试机测试、沙盒测试、小流量上线、全面上线的不同阶段。
11.准入测试的衡量标准是什么
a.走项目的几个主要流程,看功能是否完成。如果有bug,bug比例是多少
b.出现的bug中,严重性也有不同。如果是简单的修改就可以的,可以忽略,有严重逻辑问题的就打回。
不过人家说我说的还是太粗了,想更细一些。可是啊,百度的敏捷开发基本都已经忽略掉准入了,我了解的也不多……
12.用过什么自动化测试工具么?不论是通信业还是互联网的都好
说了phpunit,百度自己开发的xss漏洞检测工具等。知道的不多
13.为什么考虑网易有道?为什么不选择百度?
我只能说我瞎说了……
14.列举一些常用的linux命令
mv cp rm vim等等
15.怎么cp一个目录?mv有哪两种作用?
cp -r ...... 移动文件,重命名。
发现我一面面了一个半小时……累……我问多久能有消息,说一共三面,然后告诉我一会有二面。
=================================================================
二面:一个很pp的看起来超小很loli结果是qa老大的mm
1.又把百度的测试流程说了一遍
2.举例说了实习时测试的工作
3.写大浮点数相加的函数
char * add (char * d1, char * d2)
就是浩子给出过的那段代码吧。我没看,悔恨不已……写了一半估计看我写太慢了,说了思路,不过我觉得我考虑的还是太麻烦了,不够简洁。
4.写一个函数,满足以下功能。给定一个2的倍数的整数n(不用考虑n是否错误了,假定n一定正常),比如n=8,那么对于数列1 2 3 4 5 6 7 8,函数调整一次后变为 1 5 2 6 3 7 4 8. 先写一次调整的,然后如果是k次调整呢?
我写了一次调整的,不过不太好弄成k次。后来想出来了,没写,把思路给mm说了。代码后面补上吧。
5.使用grep命令。找出a.txt文件中每一行第一个字为数字的内容。
好吧,我不会,弱弱飘过
6.显示文件最后100行
tail -100 fileName
7.查看本机的负载、性能等
还是不会
8.still,为何选择有道而不是百度?
这个问题实在是太难以回答了。。。。
9.做测试的话,是怎么个计划?钻研一个细方向?
测试的一个好处是可以了解整个系统的框架,模块交互,而不是局限于一个小模块的功能。在这个基础上,选择例如性能测试、压力测试作为主要专注领域吧。
10.做压力测试的话,大概都压到多少?
我听过俊俊做压力的内容,就扯了一下。大概是1k、4k、8k地尝试。基本保证1k吧。每秒。
最后就是聊了一下关于工作环境啊,小组氛围啊。两个面试官都表示有道的氛围很好,大家互帮互助乐于交流。我只能表示很向往……虽然我在百度也是这么感觉的……面了将近3个小时,就这样吧。