zoukankan      html  css  js  c++  java
  • 面试总结

    专业技能

    一、测试基础

    1、软件测试定义?

    2、测试用例设计方法?

    3、测试用例要素?

    4、bug记录有几大要素?分别是?

    5、bug的生命周期?

    6、软件测试对象/范围?

    7、软件测试目的?

    8、软件测试风险?

    9、测试计划包含哪些内容?

    10、测试报告包含哪些内容?

    11、简述测试流程?

    12、产品质量模型六大特性?

    13、OSI七层模型?五层模型?

    14、TCP 和 UDP 的区别?如何保证 TCP 的可靠性?

    15、软件测试分类?

    16、如何完善测试分析?

    https://blog.csdn.net/LittleGirl_orBoy/article/details/104589266/

    二、测试管理类

    1、如果项目周期很短,测试人员匮乏,需要如何协调?

    2、描述团队分工?

    三、自动化相关

    1、自动化和手工测试的区别?

    1、测试效率不同
    2、资源利用率不同
    3、执行可靠性不同
      自动化测试中可靠的按脚本执行,后续定位、复现有明确的配置路径可循,而手工测试往往会因为自己的判断导致测试出错,并且在测出来的问题上有一部分是不能复现的。
    4、覆盖率不同

    2、你们公司的自动化投入产出比怎么样?效益怎么样?

    3、自动化测试用例的覆盖率多少?

    4、完整运行一次自动化一下用例需要多久时间?

    5、测试数据是怎么准备的?

    6、测试脚本的维护成本?

    7、WebDriver 相关

    (1)请问你的定位策略是什么?

    (2)如何实现用例失败或者异常时候需要截图?

    (3)请问如何分布式执行webdriver 用例?

    1、利用jenkins分布式执行selenium自动化测试
    https://blog.csdn.net/songer_xing/article/details/78479276
    2、多线程分布式执行测试用例 https://blog.csdn.net/weixin_42274149/article/details/90081285

    (4)如何在脚本执行javaScript代码?

    8、什么是分层自动化?

    (1)UI自动化测试
    (2)集成接口测试
    (3)单元测试

    9、Appium 的定位策略有哪些?

    10、获取页面上的全部邮箱?

    #coding:utf-8
    from selenium import webdriver
    import re#导入re模块
    
    driver=webdriver.Chrome()
    
    driver.maximize_window()
    
    driver.implicitly_wait(8)
    
    driver.get("http://home.baidu.com/contact.html")
    
    doc=driver.page_source#获取网页所有的内容
    
    emails=re.findall(r'[w]+@[w.-]+',doc)#邮箱的正则表达式
    
    for email in list(set(emails)):#去掉重复的邮箱
    
    print(email)

     11、selenium中hidden或者是display = none的元素是否可以定位到?

      不能

    12、如何去定位页面上动态加载的元素?

     触发动态加载元素的事件,直至动态元素出现,进行定位

    13、自动化测试框架类型

    1、数据驱动的自动化框架
    2、关键字驱动的自动化框架
    3、模块化自动化框架
    4、混合自动化框架

    14、什么时候自动化测试?

    在以下情况下首选自动化
    
    重复性任务
    烟雾和理智测试
    使用多个数据集进行测试
    回归测试用例
    通常,决定基于ROI(投资回报率)

    四、Jmeter

    1、你用jmeter做什么测试?

    2、如果有一个登录接口需要服务端返回参数,再带着这个参数去请求才能完成登录,用jmeter 怎么做?

    五、SQL语句

    1、说下左连接和右连接

    2、什么是索引?

    3、使用sql生产10万条数据

    六、运维相关

    1、如何查找一个文件大小超过5M的文件

    2、如何查看进程

    3、 服务器中一般要监控哪些数据,如何监控的,怎么从监控数据中发现问题?

    4、内存泄漏和内存溢出的区别

    内存溢出 out of memory
    
      指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。
    
    内存泄露 memory leak
    
      是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

    5、内存泄漏如何判断?

    为了判断内存的泄漏,一方面可以使用Linux环境下的内存泄漏检查工具valgrind,另一方面在写代码时可以增加内存申请和释放的统计功能。看申请的和释放的是否一致来判断是否有内存泄漏的情况发生。

    七、Docker

    八、kubernetes (k8s)容器编排系统

    1、系统架构与其组件

    (1)master

     API Server、Scheduler、Controller Manager、etcd

    (2)node

    Kubelet、Kube Proxy

    九、分布式存储

    1、Redis集群

     (1)redis的数据类型

    string(字符串)
    hash(哈希)
    list(列表)
    set(集合)
    zset(sorted set:有序集合)

    2、GlusterFS文件系统

    十、测试过程

    1、京东登录页面怎么测?

    2、如果一个普通用户,百度首页打不开,问题怎么定位?写出定位流程

    3、打开一个网页都发生了哪些事?

    4、有一天早上打车高峰,滴滴服务端挂了大概30分钟,工程师抢修之后,马上上线,之后又挂了,请问有哪些原因会造成这个情况?

    5、怎么测试微信朋友圈与点赞的功能,测试用例

    6、抖音的上划功能 如何设计测试?

    十一、性能测试

    1、压力测试和负载测试的区别?

    2、性能测试关注哪些指标?

    1、用户角度
    (1)用户体验
    
    2、开发(设计)人员角度
    (1) 架构设计是否合理
    (2) 数据库设计是否合理
    (3) 代码是否存在性能方面的问题
    (4) 系统中是否有不合理的内存使用方式
    (5) 系统中是否存在不合理的线程同步方式
    (6) 系统中是否存在不合理的资源竞争
    
    3、管理员的角度
    (1) 响应时间
    (2) 服务器资源使况是否合理
    (3) 应用服务器和数据库资源使用是否合理
    (4) 系统能否实现扩展
    (5) 系统最多支持多少用户访问、系统最大业务处理量是多少
    (6) 系统性能可能存在的瓶颈在哪里
    (7) 更换那些设备可以提高性能
    (8) 系统能否支持7×24小时的业务访问
    
    4、测试工程师角度
    (1)连接超时
    (2)崩溃
    (3)系统交互(电话短信干扰,低电量提醒,push提醒,usb数据线插拔提醒,充电提醒等)
    (4)弱网下的运行情况
    (5)CPU使用问题

    3、假设系统A调用系统B,我把B的接口都mock了,进行性能测试,这样有什么好处和坏处?

    4、性能测试的二八原则与响应时间“2-5-8”原则?

    性能测试的二八原则:
    即80%的bug多发生在软件的20%的模块。所以,在回归测试的时候,这20%的高发地带是关注的重点!
    
    响应时间的“2-5-8”原则:
    当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
    当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以;
    当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;
    而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。

    十二、接口测试

    1、接口测试质量评估标准是什么?

    a) 业务功能覆盖是否完整
    
    b) 业务规则覆盖是否完整
    
    c) 参数验证是否达到要求(边界、业务规则)
    
    d) 接口异常场景覆盖是否完整
    
    e) 接口覆盖率是否达到要求
    
    f)  代码覆盖率是否达到要求
    
    g) 性能指标是否满足要求
    
    h) 安全指标是否满足要求

    2、 如果接口返回数十个字段,如何批量校验这些字段的正确性,请说出你的方法?

    十三、编程

    1、死锁是什么?死锁产生的条件是什么?

    2、线程之间共享数据的方式

    3、请写出冒泡排序

    4.、1~9999数列中数字3出现的次数。用递推方法解出?

    5、请写一个线程安全的单例模型

     十四、工具

    1、禅道

    2、版本管理工具

    (1)SVN

    (2)GIT

    思维逻辑

    1、100个人回答五道试题,有81人答对第一题,91人答对第二题,85人答对第三题,79人答对第四题,74人答对第五题,答对三道题或三道题以上的人算及格, 那么,在这100人中,至少有( )人及格。

        首先求解原题。每道题的答错人数为(次序不重要):26,21,19,15,9
    
        第3分布层:答错3道题的最多人数为:(26+21+19+15+9)/3=30
    
        第2分布层:答错2道题的最多人数为:(21+19+15+9)/2=32
    
        第1分布层:答错1道题的最多人数为:(19+15+9)/1=43
    
        Max_3=Min(30, 32, 43)=30。因此答案为:100-30=70。
    
        其实,因为26小于30,所以在求出第一分布层后,就可以判断答案为70了。
    
        要让及格的人数最少,就要做到两点:
    
        1. 不及格的人答对的题目尽量多,这样就减少了及格的人需要答对的题目的数量,也就只需要更少的及格的人
    
        2. 每个及格的人答对的题目数尽量多,这样也能减少及格的人数
    
        由1得每个人都至少做对两道题目
    
        由2得要把剩余的210道题目分给其中的70人: 210/3 = 70,让这70人全部题目都做对,而其它30人只做对了两道题
    
        也很容易给出一个具体的实现方案:
    
        让70人答对全部五道题,11人仅答对第一、二道题,10人仅答对第二、三道题,5人答对第三、四道题,4人仅答对第四、五道题
    
        显然稍有变动都会使及格的人数上升。所以最少及格人数就是70人!
  • 相关阅读:
    MS面试归来:)
    准备出发到成都
    线程的同步机制(zz)
    Windows Vista(zz)
    这几天上海热晕了
    微软官方:Vista硬件要求指南(zz)
    有趣的递归缩写(Recursive acronym)
    《三国志》生僻人名读法集(zz)
    Git bash常用命令
    各大输入法分类词库内部格式的简单比较
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/12737050.html
Copyright © 2011-2022 走看看