1. 做一个自我介绍?
对于刚拿到你的面试简历的面试官,第一个问题基本上就是做一下自我介绍。自我介绍一般保持在3分钟左右,①如果是应届毕业生:介绍自己专业情况,以及在学校做过的项目。②如果是有工作经验:一般都是姓名年龄,稍描述一下自己的教育经历,之后主要侧重于在以前的公司做什么样测试,测试内容、测试过程中担当的角色。
2. 以前做过怎样的项目?
主要看目前所面试的这家单位是做什么的,尽可能的描述与招聘单位所做内容相关的项目。
假设你面试的是一家做金融证券的,描述的时候就说以前做过一个金融方面的测试项目,介绍一下项目流程(从项目开始是如何做到最后的);项目中都有哪几块涉及到金融,在测试这几块内容的时候,你主要侧重的测试点有哪些等等。
3. 说一下你们的测试流程?
从接到项目/单子后讲自己如何一步步实施测试的
你可以回答这样的流程:
1.软件开发完成以后,就会把需求规格说明书、软件程序和软件源代码发过来;
2.项目经理出测试方案(要使用什么样的测试方法、测试策略)安排测试计划(测试人员、资源、进度的安排,测试的范围和完成的目标);
3.测试人员编写和执行测试用例;
4.提交缺陷并且进行跟踪;
5.编写测试报告。
4. 在项目组中做过这样的工作?
根据自身以前项目中担任什么角色就说什么角色就好。
但是要记住:整个测试角色可能有很多,不管以前担任的是哪一类角色,牢牢的记住其中一个,然后将主要负责的职能详尽的进行阐述就行了。
5. 你平时写测试用例吗?
遇到这种问题最关键的不要怕,说话的时候有条有理,阐述的时候面面俱到的就好了,最重要的一定要稳。
例如:给你一个杯子如何测试?
界面测试:查看杯子的外观是否得体。(外形、图案)
易用性:杯子是否烫手、是否有防滑措施、是否方便饮水、是否易用手端着或手拿。
安全性:使用过程中杯口是否容易给身体造成伤害,,杯子有没有毒和细菌。
可靠性:杯子从不同高度掉下的损坏程度。
稳定性:杯子一直盛着水,时间长了是否会漏水。
兼容性:是否可容纳高温度水、果汁、酒精、汽油等。
用户文档:用户使用手册上是否有对杯子的使用方法进行限制,是否出现使用过程中友好的提示、该注意的问题、使用环境等有详细的描述。
6. 你认为是bug,而开发不认同时怎么办?
这个主要考察的是你与团队的沟通能力,按照套路回答就好了。
1、简单分析下需求可能对客户的影响,通过影响和严重程度来说服开发来进行修改。
2、产品需求里边没有明确要求的,需要先和需求人员讨论一下,如果确认需要进行修改。在三方会议上进行提出。
7. 如何判断一个问题是bug?
根据软件需求文档里边的需求描述,对于需求描述里边没有的就要根据自己的测试经验了,这里可以说说你平时的经验。
8. 平时写测试用例会用到的设计方法?
这个要充分准备,最好能举出例子。
几种常见的测试方法:错误推断法、正交实验法、因果图法、场景分析法、判定表法,必须对这些测试方法都能说出一二,面试官很有可能根据你说的测试用例设计方法再追问你(随便从你刚刚说过的话里边挑出来一个问你定义),所以一定不要说自己一知半解的东西,宁愿少说。
9. 有哪些不同的测试计划活动?
1.确定测试的范围和目标
2.定义测试的整体方法,定义进入和退出标准
3.决定测试什么以及谁将测试应用程序的哪个部分
4.安排测试设计会话
5.为不同的测试活动分配资源
6.确定用于测试的工具
7.报告测试进度
8.生成退出报告
10. 哪些信息应该包括在开发的缺陷或错误报告中?
1.缺陷的简要总结
2.完整描述缺陷,包括重现步骤
3.如果需要,可以截取附件
4.发现和提出缺陷的日期
5.谁报告了这个缺陷
6.缺陷的严重性和/或优先级
7.哪个组件是指定的缺陷
11.sql中删除内容、释放空间但不删除定义(保留表的数据结构)的命令是什么?
truncate (清空表中的数据):删除内容、释放空间但不删除定义(保留表的数据结构),truncate 不能删除行数据,要删就要把表清空;TRUNCATE TABLE 的语法为下:TRUNCATE TABLE "表格名"。
12.Linux 统计某个字符串在某个文件中出现的次数?
grep -o str1 filename|wc -l;
13.用一条命令查看目前系统已启动服务所监听的端口
netstat -antl |grep "LISTEN"
netstat -na|grep -i listen
-a 显示一个所有的有效连接信息列表(包括已建立的连接,也包括监听连接请求的那些连接)
-n 显示所有已建立的有效连接
-t tcp协议
-u udp协议
-l 查询正在监听的程序
-p 显示正在使用socket的程序识别码和程序名称
14.用sed 修改test.txt 的第n行test为TES
sed 'ns/test/TEST/g' test.txt
15.Git相关操作
git clone 仓库路
git log 查看版本信息
git reflog 查看操作记录
git status 查看状态
git branch 查看分支
git comfig -l 查看git所有配置项
git remote -v 查看git远程库信息
git remote show origin 查看remote地址,远程分支,还有本地分支与之相对应关系等一系列信息
git pull:相当于是从远程获取最新版本并merge到本地git pull origin master
git fetch:相当于是从远程获取最新版本到本地,不会自动merge
16.如何提交高质量的软件缺陷(Bug)记录?
1) 通用UI要统一、准确。缺陷报告的UI要与测试的软件UI保持一致,便于查找定位;
2) 尽量使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化;
3) 每条缺陷报告只包括一个缺陷;
4) 不可重现的缺陷也要报告;
5) 明确指明缺陷类型根据缺陷的现象,总结判断缺陷的类型;
6) 明确指明缺陷严重等级和优先等级;
7) 描述 (Description) ,简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置;
8) 短行之间使用自动数字序号,使用相同的字体、字号、行间距;
9) 每一个步骤尽量只记录一个操作;
10) 确认步骤完整,准确,简短;
11) 根据缺陷,可选择是否进行图象捕捉;
12) 检查拼写和语法缺陷;
13) 尽量使用短语和短句,避免复杂句型句式;
14) 缺陷描述内容;
17.http 和 https有什么区别?
1) https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
2) http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协议。
3) http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80, 后者是 443。
4) http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,比 http 协议安全。
18.说说常用的linux指令?
· ls 查看目录中的文件;
· cd /home 进入 '/ home' 目录;
cd .. 返回上一级目录;
cd ../.. 返回上两级目录;
· mkdir dir1 创建一个叫做 'dir1' 的目录;
· rmdir dir1 删除一个叫做 'dir1' 的目录 (只能删除空目录);
· rm -f file1 删除一个叫做 'file1' 的文件',-f 参数,忽略不存在的文件,从不给出提示;
· rm -rf /mulu 目录下面文件以及子目录下文件;
· cp /test1/file1 /test3/file2 如将/test1 目录下的 file1 复制到/test3 目录,并将文件名改为 file2;
· mv /test1/file1 /test3/file2 如将/test1 目录下的 file1 移动到/test3 目录,并将文件名改为 file2;
· mv * ../ Linux 当前目录所有文件移动到上一级目录;
· ps -ef|grep xxx 显示进程 pid;
· kill 使用 kill 命令来终结进程。先使用 ps 命令找到进程 id,使用 kill;
· -9 命令,终止进程;
· tar –xvf file.tar 解 压 tar 包;
· unzip file.zip 解 压 zip;
· unrar e file.rar 解 压 rar;
· free -m 查看服务器内存使用情况;
· ps 查看进程;
查看所有 java 进程:
· grep 是搜索关键字ps -ef | grep java;
· -aux 显示所有状态ps -aux | grep java;
· kill 杀掉进程;
19.如何查看测试项目的日志?
一般测试的项目里面,有个 logs 的目录文件,会存放日志文件,有个 xxx.out 的文件,可以用 tail -f 动态实时查看后端日志,先 cd 到 logs 目录(里面有 xx.out 文件) tail -f xx.out
这时屏幕上会动态实时显示当前的日志,ctr+c 停止。
20.在 PC 浏览器的地址栏输入一串 URL,然后按 Enter 键这个页面渲染出来,这个过程中都发生了什么事?
1)首先,在浏览器地址栏中输入 url,先解析 url,检测 url 地址是否合法;
2)浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。
浏览器缓存:浏览器会记录 DNS 一段时间,因此,只是第一个地方解析 DNS 请求; 操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统, 获取操作系统的记录(保存最近的 DNS 查询缓存);
路由器缓存:如果上述两个步骤均不能成功获取 DNS 记录,继续搜索路由器缓存;
ISP 缓存:若上述均失败,继续向 ISP 搜索。
3)在发送 http 请求前,需要域名解析(DNS 解析),解析获取相应的 IP 地址。
4)浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手。
5)握手成功后,浏览器向服务器发送 http 请求,请求数据包。
6)服务器处理收到的请求,将数据返回至浏览器
7)浏览器收到 HTTP 响应
8)浏览器解码响应,如果响应可以缓存,则存入缓存。
9) 浏览器发送请求获取嵌入在 HTML 中的资源(html,css,javascript,图片, 音乐),对于未知类型,会弹出对话框。
10) 浏览器发送异步请求。
11)页面全部渲染结束。
21.GET 和 POST 的区别?
1)GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。
2)对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据);而对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送data,服务器响应 200 。