zoukankan      html  css  js  c++  java
  • 软件测试之面试题分享

    最近面试了一些测试方面相关的岗位,通过牛客等途径也看了不少的面经,发现大部分人面试题目都有很多相似点,结合自己的一些面试经历,现在分享一些我面试中碰到过的问题以及我回答的部分答案,可能存在错误,欢迎大家交流指正

    一、计算机网络方面(大厂面试必考点,一定要去记住

    1、OSI七层网络模型(TCP/IP五层模型)常见考察的是七层模型,要明白每层模型的作用以及对应的协议,例如应用层对应了:HTTP FTP  DNS SMTP等协议

    2、TCP的三次握手、四次挥手过程要心里有数,以及为什么要三次握手,四次挥手

    3、输入一个网址到其响应的过程(例如美团页面内点击搜索后发生了什么历程之类的问题,一般可以从域名解析-三次握手-发送http请求-服务器响应-浏览器渲染响应信息来考虑,可以在网上查看相关资料,多背背

    4、DNS域名解析的过程也要心里有数

    5、TCP与UDP的区别,常考点,偶尔还会考察什么时候时候用TCP什么时候适合用UDP,一般的话对网络质量要求较高,例如语音、传输文件等可以考虑TCP,对网络质量要求较低的情况下,例如视频会议、游戏等都可以考虑UDP

    6、Cookie与Session的区别,这个楼主面试 字节跳动(头铁)的适合遇到过,还是要去看看留个印象的

    7、get与post的区别,这个也是常考的,网络上有很多相关资料,需要注意的是还有的面试官可能会问你除了这两个还有什么,楼主当时回答了put与delete, put:向指定资源位置上传其最新内容。delete:请求服务器删除Request-URI所标识的资源。

    8、http的组成,这个网上也有资料,大家可以去看看

    9、http常见的状态码,可以从2记到5的顺序   200:响应成功,301:永久重定向,302:临时重定向 400:客户端请求错误 403:服务器拒绝服务 404:资源找不到 500:服务器内部错误

    10、http与https的区别

      HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了SSL(Secure Sockets Layer)协议用于对           HTTP协议传输的数据进行加密,从而就诞生了HTTPS。简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。

      HTTPS和HTTP的区别主要如下:

      1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。

      2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。

      3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

      4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

      问到HTTPS时候,如果问到了HTTPS的加密过程,楼主用个图简单描述一下过程

      

    二、数据库

    1.比较菜,没碰到什么问题,就一个(字节跳动面试官):根据分数,查询排名前10的学生,当时太天真,就是排个序,取前10的数据,但是没有考虑到分数相同的同学。

    2.能力比较强的去了解下数据库索引,这个有些面试官蛮喜欢问,虽然我没被问到~

    3.数据库的四大特性:原子性、一致性、隔离性、持久性

    4.增删查改基本的要会,delete与drop的区别?

    三、测试技术  

    1.测试的过程,要记住测试的流程,从需求分析开始到结束

    2.测试用例的编写,面试官会给你具体某个场景,叫你设计测试用例,具体我会额外写一篇文章

    3.由于楼主提到了自动化,要明白自动化的原理,通过浏览器驱动去操控浏览器。

    4.自动化的优点和缺点,什么时候适合用自动化,你的测试用例如何维护的?

    5.自动化的8大元素定位方式

    6.性能测试中,如何进行压测

    7.压测过程中关注哪些数据?响应时间、TPS、CPU、内存等数据,还可以讲讲你压测后对系统的调优建议,可以从数据库,服务器硬件等角度考虑

    8.企业如何设置正确的TPS?考虑到成本的原因,不能太高也不能太低,高了浪费成本,低了系统的业务能力就下降了。可以采取先采取一个预估值上线,根据用户的实际使用情况,多次的增加或降低一点TPS,每次增加或降低的值不宜太大,这样可以确保我们资源的节约

    10.断言如何添加,参数化数据如何进行传递?这里讲到了jmeter里面的断言,参数传递可以用CSV以及正则表达式提取器提取相应参数,通过引用来进行参数传递

    11.有没有使用过fiddler(抓包工具,很简单的,可以去自学)?(简历写了,所以面试官问了)简单的回答了一下用来抓包的,还可以修改请求与相应的数据,面试官接着问fiddler还可以用来干嘛?回答:弱网测试,通过fiddler可以设置参数进行弱网测试,具体可以网上查找资料

    12.面试官给你某个场景,叫你定位排查错误,例如发朋友圈,发出去的图片顺序不对,什么原因造成的?一般我们可以从客户端到服务器考虑,线考虑客户端是不是出现问题了,例如渲染错误,url地址解析错误等等,如果客户端没有错误,可以考虑服务端错误,我们可以绕过前端,通过它的接口发送相对性的数据,根据它返回的数据来判断是否服务器后端出现错误。还有的话排查错误,我们还可以通过它的log来查看哪里出现错误。

    13.需求评审的过程以及为什么不能每轮都评审?项目进度比较紧,没有时间给到我们每轮都来评审

    14.做过接口测试吗?

    15.项目:基本自我介绍的适合可以简单讲讲自己的项目,要学会引导面试官,让他问你会的,不会的不要多提,会的尽量多说点。

    四、测试场景题

    1.测试发现一个bug,开发认为没有必要修改,你怎么办?

    2.当一个产品急着上线,测试工作却没完成,你怎么办?

    3.你对测试的理解?

    4.项目中碰到的困难?

    5.测试醒目的流程?

    五、其他类型

    1.排序算法经常被问到:冒泡、选择、插入这三个基本的要会,要明白其稳定性,还有一个很重要的就是快速排序,一定要明白他的原理,同时要会他的代码,楼主就曾经手撕代码。同样的快速排序的时间复杂度,平均情况下是nlogn,最坏的情况下是n2,空间复杂度O(logn),一般情况下面试官问时间复杂度适合你只需要回答nlogn就可以了,如果提及到最坏的情况,你一定要明白为什么是n2,还有可以看下空间复杂度为什么是logn。还有一点大家要记住的是它是不稳定的算法,为什么(这个面试碰到了)?假设待排序数组:int a[] ={1, 3, 3, 2, 1, 5, 6};若选择a[2](即数组中的第二个3)为参考数字,而把大于等于参考数的数均放置在大数数组中,则a[1](即数组中的第一个3)会到参考数的右边, 那么数组中的两个3的相对顺序就发生了 改变,这就说明快排是“不稳定”。

    有些面试官还可能会问还有什么排序算法时间复杂度是nlogn,下面的图大家可以记一下常用的希尔、归并、堆,心里知道它们的排序原理就行,最好的话可以着重记一下堆排序

    2.线程与进程的区别?知乎上这篇文章,个人觉得他写的挺好的,有兴趣的可以看看:https://www.zhihu.com/question/25532384

    3.死锁是什么?

    4.死锁的四个条件?如何避免死锁?

    5.线程的生命周期?

    6.java部分也是可能会考察的:java的三大特性:封装、继承、多态

    7.抽象类与接口的区别

    8.String、StringBuffer、StringBuilder的区别:https://blog.csdn.net/itchuxuezhe_yang/article/details/89966303

    9."=="与"equals"的区别

    10.深拷贝与浅拷贝(这个是面测开碰到的,楼主太菜了,当时不会.)https://www.cnblogs.com/williamjie/p/11192895.html

    11.链表与数组的区别,两次都问到了

    12.最好要会点Linux

    13.智力题:好多大厂面试都会问智力题,这个多看看,明白套路就十分的简单了,推荐几篇博客:https://blog.csdn.net/qq_41112238/article/details/105611213?utm_source=app

    还有一个https://blog.csdn.net/qq_43518645/article/details/104118528?utm_source=app   楼主面试网易的时候就碰到了同类型的智力题,很轻松就回答出来了,推荐大家看看~

    六、算法题

    面试大厂,无论是笔试还是面试,几乎都逃不过算法题,这个没有捷径,只能多练习

    推荐几个训练方法:刷剑指offer、LeetCode就行

    再推荐几个我比较喜欢的up主:https://www.bilibili.com/video/BV1wA411b7qZ 手把手带你一起刷LeetCode,还做了合集简直不要太良心,想要短时间快速提高真的还是很不错的,强烈推荐!

    还有一个就是带你刷《剑指offer》的up:https://space.bilibili.com/59546029?spm_id_from=333.788.b_765f7570696e666f.1在他的个人主页,把他《剑指offer》的视频过一遍,相信你会有很大的提高

    总之算法还是要多练,虽然测试工程师算法要求不高,但是我们还是不能放下他,要想进大厂以及做测开,它是一定要坚持的!

    感悟:以上这些内容都是我面试实际碰到过的或者是一些高频的面试题,一定要多看看面经,牛客是个好地方。还有就是算法真的蛮重要的,一定要多看多练。有些hr面可能会挂人比如我四轮技术面都过了,貌似死在了hr面。。。    要多尝试,要相信自己,多投几个,相信总有一个能成功。最后祝大家面试成功,早日拿到offer!

  • 相关阅读:
    PyQt作品 – PingTester – 多点Ping测试工具
    关于和技术人员交流的一二三
    Pyjamas Python Javascript Compiler, Desktop Widget Set and RIA Web Framework
    Hybrid Qt applications with PySide and Django
    pyjamas build AJAX apps in Python (like Google did for Java)
    PyQt 维基百科,自由的百科全书
    InfoQ:请问为什么仍要选择Java来处理后端的工作?
    Eric+PyQt打造完美的Python集成开发环境
    python select module select method introduce
    GUI Programming with Python: QT Edition
  • 原文地址:https://www.cnblogs.com/xxxyang/p/13606942.html
Copyright © 2011-2022 走看看