目录
8.在浏览器的地址栏输入一串URL点击回车,中间都经历了什么?
12.python中列表与元组的区别是什么?列表与字典的区别?
1.如何定位一个bug是前端的还是后端的?
(1).常可以利用抓包工具来进行分析
传参内容是否正确 :如果传参内容不正确,定位为前端的bug。
响应内容是否正确:如果响应内容不正确,为后端bug。
(2).前后端bug各有什么样的特殊性质
前端bug特性:界面相关,布局相关,兼容性相关,交互相关。
后端bug特性:数据相关,安全性相关,逻辑性相关,性能相关。
(3).定位BUG属于前端还是后端,常用的有以下2种方法:
查看http请求参数和响应结果。
查看后端服务log日志有无错误日志信息。
2.你都遇到过哪些风险?怎么处理的?
我们经常遇到在迭代测试的时候,时间紧张,来不及完整的测试,导致项目上线延期。 后来我会根据项目的实际情况,如果遇到测试时间短的情况,我会按照功能的优先级由高到低进行 测试,并且在开发提测之前,尽量提前输出冒烟测试用例,帮助开发在开发环境进行测试,保证一 个高质量的提测版本,节省后续的测试时间。
3.你在性能测试中都关注哪些指标?
(1).RT(responsetime)-响应时间
有没有性能需求
性能需求规定,参照需求来分析
没有需求,需求不明确,参照业界标准或同行竞品
针对一些电子商务类系统公司内部系统等等258原则
2秒以内:用户体验是最好的2-5秒之间:用户体验是一般的
5-8秒之间:用户体验较差,还能容忍
=8秒以上:用户体检太差,不能容忍
(2).吞吐量(throughput)
就是系统在单位时间内处理业务的能力
T1:ThroughputIn-进入服务器的量(请求)
T0:ThroughputOut-从服务器返回的量(响应)●业务:业务/小时事务/秒请求数/秒页面数/分。网络:字节数/秒。吞吐量一般会随着用户数的增加而增加,在用户数达到一定的量级的时候吞吐量会慢慢趋于平缓,在用户数继续递增的时候吐吞量会逐渐下降
(3).TPS(transaction per second)
每秒钟处理的业务数
请求数/秒 业务数/秒页面数/秒
4.项目中有多少用例数?bug 数目有多少?整体时间?
面试官你好,我做的 XX 系统用例数应该有 4000 条左右(对数据进行解释说明) 我们项目采取双周迭代的模式,每次迭代基本上大概在 400 条左右的用例,包括新增,修改, 删除。
bug 数目有多少? (1)质量好的时候,基本上在 30 左右个 bug(严重 20%,一般 30%,轻微的 50%); (2)质量不好的时候,基本上可以提单提到 100 个左右(严重 30%,一般 30%,轻微的 40%)。
5.怎么使用Linux查看日志?
一般测试的项目里面,有个logs的目录文件,会存放日志文件,有个xxxlog的文件,可以用tail-f动态实时查看后端日志
tail -f xxx.1og
tai1 -1000 xx.1og#查看最近 1000 行日志
这时屏幕上会动态实时显示当前的日志,ctr+c停止
6.http和https的区别是什么?
https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输
身份认证的网络协议,比http协议安全
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
7.app测试和web端测试有什么区别?
相同点:同样的测试用例设计方法;同样的测试方法;都会依据原型图或效果图检查UI;
测试页面载入和翻页的速度、登录时长、内存是否溢出等;测试应用系统的稳定性;
不同点:app的中断测试:来电中断、短信中断、蓝牙、闹钟、拔插数据线、手机锁定
手机断电 手机问题(系统死机重启)app的安装卸载:全新安装、升级安装、第三方
工具安装、第三方工具卸载、直接卸载删除、消息推送测试、手机授权测试、前后台切换
网络环境(wifi/2G/3G/4G/无网络)兼容性测试:web项目考虑不同浏览器的兼容;app需要考虑手机不同操作系统、不同机型、不同屏幕等;web自动化测试工具较常用
selenium,而手机自动化monkeyrunnerapp测试平台:百度云测、testin云测;
8.在浏览器的地址栏输入一串URL点击回车,中间都经历了什么?
1)首先,在浏览器地址栏中输入url,先解析url,检测url地址是否合法
2)浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。
若没有,则跳到第三步操作。
浏览器缓存:因为浏览器一般会缓存DNS记录一段时间,不同浏览器的时间可能不一样,一般2-30分钟不等,浏览器去查找这些缓存,如果有缓存,直接返回IP,否则下一步。
操作系统缓存:浏览器缓存中找不到IP之后,浏览器会进行系统调用(windows中是gethostbyname),查找本机的hosts文件,如果找到,直接返回IP,否则下一步。
·路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存; ISP缓存:若上述均失败,继续向ISP搜索。
3)在发送http请求前,需要域名解析(DNS解析),解析获取相应的IP地址。
4)浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手。
5)握手成功后,浏览器向服务器发送http请求,请求数据包,
6)服务器处理收到的请求,将数据返回至浏览器
7)浏览器收到HTTP响应
8)浏览器解码响应,如果响应可以缓存,则存入缓存。
9)浏览器发送请求获取嵌入在HTML中的资源(htmlcss图片),对于未知类型,会弹出对话框。
10)浏览器发送异步请求。
11)页面全部渲染结束。
9.get和post的区别是什么?
GET在浏览器回退时是无害的,而POST会再次提交请求。
GET产生的URL地址可以被Bookmark,而POST不可以。
GET请求会被浏览器主动cache,而POST不会,除非手动设置。
GET请求只能进行url编码,而POST支持多种编码方式。
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
GET请求在URL中传送的参数是有长度限制的,而POST么有。
对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
GET参数通过URL传递,POST放在Request body中。
10.cookies和session的区别是什么?
1)cookies的数据存储在本地浏览器,不安全,别人可以通过拦截或本地文件找到cookies进行攻击
容易进行cookies欺骗,cookies可以减轻服务器压力。
2)session的数据存在服务器,云端数据库,更安全,而且session保存在服务器过一段才消失,太多
的话会占用服务器资源,增加服务器压力。
3)cookies是针对每一个网站的信息,并只对应一个,其它网站不能访问,这个文件是保存在客户端的每次你打相应网站,浏览器会查找这个网站的cookies,如果有就会将这个文件起发送出去。cookies文件的内容大致包函这些信息如用户名,密码,设置等。
4)session是针对每一个用户的,只有客户机访问,程序就会为这个客户新增一个session里主要保存的是用户的登录信息,操作信息等。这个session在用户访问结束后会被自动消失(超时也会)
11.tcp和udp的区别是什么?
TCP是一种面向连接的传输协议(即在客户端和服务器之间发送数据之前,要先三次握手建立连接)发送信息更准确,可靠,但较UDP慢。若通信数据完整性与通信实时性,则应该选用TCP协议(如文件传输,重要状态的更新等);反之,则使用UDP协议(如视频传输,实时通信等)UDP是一种无连接的数据传输协议,发送快,但是丢包率较TCP更高,准备率低。在通信过程中,它并不像TCP那样需要先建立一个连接,只要(目的地址,端口号)确定了,就可以直接发送信息报文,并且不需要确保服务端一定能收到或收到完整的数据
TCP:优点:可靠稳定TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源
缺点:慢,效率低,占用系统资源高,易被攻击在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个连接都会占用系统的CPU,内存等硬件资源。因为TCP有确认机制,三次握手机制,这些也导致TCP容易被利用,实现DOSDDOSCC等攻击。
UDP优点:快,比TCP稍安全UDP没有TCP拥有的各种机制,是一种无状态的传输协议,所以传输数据非常快,没有TCP的这些机制,被攻击利用的机会就少一些,但是也无法避免被攻击。缺点:不可靠不稳定因为没有TCP的这些机制,UDP在传输数据时,如果网络质量不好,就会很容易丢包,造成数据的缺失。适用场景:TCP:当对网络质量有要求时,比如HTTP,HTTPS,FTP等传输文件的协议;POPSMTP等邮件传输的协议UDP:对网络通讯质量要求不高时,要求网络通讯速度要快的场景,如视频直播
12.python中列表与元组的区别是什么?列表与字典的区别?
1)列表可以修改,元组不可以修改,列表就相当于一个动态数组,而元组是一个静态数组;
2)从设计上说,列表是用来保存多个相互独立对象的数据集合,而元组设计的初衷就是为了描述一个不会改变的事物的多个属性;
3)然后列表的声明用中括号,元组的声明用小括号,并且元组只有一个元素的时候需要在后面加逗号;
4)字典生成慢,查找快。列表生成快,查找慢
5)另外列表是有序的,字典是无需的;
6)列表通过索引访问,字典使用key 访问;
13.你觉得一个软件达到什么标准可以上线?
验收标准
(1) 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
(2) 在验收测试中发现的错误已经得到修改,各级缺陷修复率达到标准
(3) 所有测试项没有残余紧急、严重级别错误。
(4) 需求分析文档、设计文档和编码实现一致。
(5) 验收测试工件齐全(测试计划、测试用例、测试日志、测试通知单、测试分析报告,待验收的软件安装程序。)
14.说一下你印象最深的一个bug
其实,面试官并不关心你描述的这个bug是否真的有价值,或有多曲折离奇?他只是:
(1) 了解你平时工作中的测试能力
(2) 考察你的表达能力
也许就是想抛一个问题给你,自己好有时间继续看你的简历。
把你工作过程中的测试方法和步骤描述清楚了,那么这个bug有没有价值或是否印象深刻就不那么重要了。
举几个例子:
第一个:数据精度相关
这还是实习生刚进入公司的时候,公司的线上项目出现的问题。用户在下单的时候,购物车的结算金额的会出现xx.xxxxxxxxxx这样的金额,简直逆天啊。后来才知道是在数据的各种换算的时候出现了错误。后来在测试中也会出现各种各样奇怪的数据就还好了。
15.偶发 bug 怎么处理?
(1) 抓取 log、截图、视频
(2) 别急着去复现 bug,先仔细回忆下自己的操作步骤及前置环境
(3) 找到能重现的步骤,然后再定位代码,还得考虑数据的因素(检查变量变化是否正确
16.你觉得测试是什么
这个时候不要背测试的概念,要用自己的语言说一下自己对于测试的认识,以及要怎么样才能 做好测试这份工作(通俗易懂的语言,言简意赅的回答)。