软件测试面试题

目录

1.如何定位一个bug是前端的还是后端的?

2.你都遇到过哪些风险?怎么处理的?

3.你在性能测试中都关注哪些指标?

4.项目中有多少用例数?bug 数目有多少?整体时间?

5.怎么使用Linux查看日志?

6.http和https的区别是什么?

7.app测试和web端测试有什么区别?

8.在浏览器的地址栏输入一串URL点击回车,中间都经历了什么?

9.get和post的区别是什么?

10.cookies和session的区别是什么?

11.tcp和udp的区别是什么?

12.python中列表与元组的区别是什么?列表与字典的区别?

13.你觉得一个软件达到什么标准可以上线?

14.说一下你印象最深的一个bug

15.偶发 bug 怎么处理? 

16.你觉得测试是什么

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.你觉得测试是什么

这个时候不要背测试的概念,要用自己的语言说一下自己对于测试的认识,以及要怎么样才能 做好测试这份工作(通俗易懂的语言,言简意赅的回答)。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值