一. 携程ctrip --automation testing
1.实习项目介绍
ruby 如何定义变量,变量相加结果
cucumber 是什么用来干啥
watir 是什么用来干啥,watir 全称
用watir 实现两个有互联关系的下拉菜单遍历
数组长度如何计算
3.https,http 区别,协议
get/post 区别,tcp/ip协议
4.设计测试用例的方法
等价类划分,因果图,边界值,错误推测
携程订酒店,具体案例设计测试用例
5.研究生方向
6.为什么离职,可以转正吗
考虑BAT吗
未来的职业规划(近期,长期),选择的职位(自动化测试 or 测试开发)以及原因
二.易安信EMC-测试
1.一面:自我介绍英文,实习项目介绍(ruby,watir,cucumber 每个的角色是什么),具体如何设计测试用例;http API测试相关
C++三大特性并解释;手写代码:单例模式,矩阵环形赋值。
2.二面:英文文章英文单词统计出现次数(大小写,同一个单词的不同时态,数据结构hash-map)
手写代码:双向链表倒置,深度优先遍历,广度优先遍历
3.三面:测试用例的设计,如何保证测试用例覆盖率,功能测试与回归测试的区别
如何测试一个存储系统,如何判断一条记录是被删除了还是不存在
为什么选择做测试
三.上交所技术技术公司--测试开发
笔试题目:测试概念相关选择题,数据库,正则表达式(邮箱),冒泡排序,关于测试的三道问答题
1.实习经历介绍、研究生阶段项目介绍
2.测试完整流程
3.统计上海加油站的数量
4.项目开发经验,为什么选择测试;编程语言,C++三大特性详细介绍,JS掌握程度
5.职业规划
6.兴趣爱好
7.转正难度大,要求高,部门会争取
四. 网易邮箱--测试
一面
1.自我介绍,实习项目介绍
实习项目遇到最大的困难是什么,如何解决的, 测试用例哪些可以做自动化哪些不可以(举例子)
watir+ruby+cucumber 现在已经不再维护了?为什么用watir不用selenium,这个框架的优缺点是什么
API测试,web端测试的区别?为什么第二个项目选择API测试,而不选择web端测试
2.设计测试用例:登陆、注册
3.为什么选择做测试
二面
1.自我介绍,实习项目介绍
实习项目遇到最大的困难是什么,如何解决的
实习项目组全称是啥
2.简历上相关问题
数据库查询语句
研究生项目介绍
3.设计测试用例:登陆邮箱
4.为什么选择做测试,会Linux吗,选择前端测试,还是服务器端的测试
举一个例子,说明自己的主动性,学习能力强吗
5.倾向于哪个事业部,邮箱、严选、有钱
6.TCP,UDP 区别
三面HR
1.最近一年最有成就感的事情
2.遇到最困难的事情,如何解决的
3.家乡北方,为什么选择杭州
4.还投递了哪些公司,什么状态
5.与别人有意见不同,如何解决
五.商汤科技
一面
1.介绍自己
2.实习项目介绍
网页端测试,具体测试用例的实现,ruby实现代码,对测试框架的思考?有哪里可以改进的
API接口测试,对Jenkins 的理解,如何部署?
设计测试用例:输入身份证图片,输出身份信息
3.测试的类型,一个测试用例需要包含哪些信息(*预期输出),如何设计好的测试用例(别人能看懂并使用)
4.你认为一个优秀的软件测试人员需要具备哪些素质
5.Bug管理工具(Rally),bug需要包含哪些信息
6.目前公司的测试类型:接口测试,底层SDK(产品),终端的测试(手机、ios、网页端)
7.职业规划
plus: 忘了问工作地点,北京还是深圳?忘了问接下来等多久面试结果?
面试答案整理:
1.watir: 全称Web Application Testing in Ruby, 使用ruby作为脚本语言进行开发,能够在IE浏览器上实现元素定位、操作等自动化任务。watir webdriver 支持多浏览器,watir只支持IE。
2.cucumber:一款卓越BDD工具,BDD即behavior-driven developmant 行为驱动开发.(拓展TDD:测试驱动开发)团队中业务人员和开发人员合作编写自动化测试—验收测试。
cucumber 是一个命令行工具。运行时从features 文件中读取,解析需要测试的场景(通过tag标签组织分类)。每个测试用例成为场景,每个场景包括多个步骤。步骤 定义即每个步骤中的ruby代码。依次执行场景中每一个步骤,打印运行结果。
参考
Cucumber入门之Gherkin:
http://blog.sina.com.cn/s/blog_6b59aaa701017s6l.html
3.邮箱的正则表达式:参考http://blog.csdn.net/make164492212/article/details/51656638
4.功能测试:关注产品功能,又称为黑盒测试,方法有等价类划分、边界值分析、错误推测、因果图和 综合策略
性能测试:关注产品整体的多用户并发下的稳定性和健壮性,方法有负载测试、压力测试、强度测试
界面测试:关注用户体验
5.根据测试阶段划分:
单元测试:白盒测试主要应用在单元测试阶段,主要是对代码级的测试,针对程序内部逻辑结构,测 试手段有:语句覆盖、 判定覆盖、
条件覆盖、路径覆盖、条件组合覆盖
集成测试: 界于单元测试和系统测试之间,起到“桥梁作用”,一般由开发小组采用白盒加黑盒的方 式来测试,既验证“设计”,又验证“需求”。
主要用来测试模块与模块之间的接口,同时还要测试一些主要业务功能。
系统测试: 一般由独立测试小组采用黑盒方式来测试,主要测试系统是否符合“需求规格说明书”。
经过以上各阶段测试确认之后,把系统完整地模拟客户环境来进行的测试
验收测试: 与系统测试相似,主要区别是测试人员不同,验收测试由用户执行。
附录:单元测试用用于验证编码单元的正确性
集成测试用于验证详细设计
系统测试用于验证概要设计
验收测试用于验证正确实现了需求
6.计算机网络层次:http://blog.csdn.net/gavin_john/article/details/53186570
7.接口测试总结:参考http://blog.csdn.net/jiary5201314/article/details/51429347
接口测试可以关注于服务器逻辑验证,而UI测试可以关注于页面展示逻辑及界面前端与服务器集成验证
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管 理过程,以及系统间的相互逻辑依赖关系等。
3.// 找到元素
Select select = new Select(driver.findElement(By.id("proAddItem_kind")));
// 选择对应的选择项, index 从0开始的
select.selectByIndex(2);
select.selectByValue("18");
select.selectByVisibleText("种类AA");
// 获取所有的选项
List<WebElement> options = select.getOptions();
for (WebElement webElement : options) {
System.out.println(webElement.getText());
}