TP-LINK校招系统测试岗面经汇总

  1. 怎么应对反爬虫机制(2次)
    答:selenium,beautifulsoup
    分析:发现仅有的两张验证码图片是未拼完整的背景图和拼图块,通常的网站大多数是未拼完整的背景图和完整背景图,这样的话就要另辟蹊径了。
    思路:由于这个网站的滑动验证码没有原图,于是使用了cv2这个库的一些方法进行滑块和缺口位置的匹配,找到最相似的坐标然后进行移动,因为有些滑块图和验证码图片相似度较高,所以可能会出现失败的情况(事实上在实验过程中证实确实如此),于是写了一个循环,失败了就重新获取图片并且再次尝试滑动,直到成功为止。这个滑动验证码没有滑动轨迹的要求(如不可以匀速滑动等),所以不需要做拖动滑块时的加速度设置。(灰度处理,图像匹配算法)

  2. 爬虫使用到哪些库
    答:beautifulsoup

  3. 给你个网站,你要怎么测试

  4. 测试登陆界面(2次)
    答:1.测试的流程:需求分析,测试点的提取,设计测试用例,测试
    2.按测试类别进行分类
    功能测试:我认为可以按接口测试的方法进行,如果存在调用其他接口也存在接口测试的必要。

           1.什么都不输入,点击提交按钮,看提示信息。
           
         2.输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
    
         3.输入错误的用户名或者密码, 验证登录会失败,并且提示相应的错误信息。
       
         4.登录成功后能否能否跳转到正确的页面
       
         5.用户名和密码,如果太短或者太长,应该怎么处理
       
         6.用户名和密码,中有特殊字符(比如空格),和其他非英文的情况
       
         7.记住用户名的功能
       
         8.登陆失败后,不能记录密码的功能
       
         9.用户名和密码前后有空格的处理
       
             10.密码是否加密显示(星号圆点等)
       
            11.牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换一个按钮是否好用
       
            12.登录页面中的注册、忘记密码,登出用另一帐号登陆等链接是否正确
       
            13.输入密码的时候,大写键盘开启的时候要有提示信息。
    

界面测试:

     1.布局是否合理,2个testbox 和一个按钮是否对齐

   2.testbox和按钮的长度,高度是否复合要求

     3. 界面的设计风格是否与UI的设计风格统一

     4. 界面中的文字简洁易懂,没有错别字。

性能测试:

1.打开登录页面,需要几秒

2.输入正确的用户名和密码后,登录成功跳转到新页面,不超过5秒

安全测试:

   1.登录成功后生成的Cookie,是否是httponly (否则容易被脚本盗取)

  2.用户名和密码是否通过加密的方式,发送给Web服务器

  3.用户名和密码的验证,应该是用服务器端验证, 而不能单单是在客户端用javascript验证

  4.用户名和密码的输入框,应该屏蔽SQL 注入攻击

  5.用户名和密码的的输入框,应该禁止输入脚本 (防止XSS攻击)

  6.错误登陆的次数限制(防止暴力破解)

    7. 考虑是否支持多用户在同一机器上登录;

    8. 考虑一用户在多台机器上登录

可用性测试:

 1. 是否可以全用键盘操作,是否有快捷键

 2. 输入用户名,密码后按回车,是否可以登陆

  3. 输入框能否可以以Tab键切换

兼容性测试:

   1.主流的浏览器下能否显示正常已经功能正常(IE,6,7,8,9, Firefox, Chrome, Safari,等)

  2.不同的平台是否能正常工作,比如Windows, Mac

  3.移动设备上是否正常工作,比如Iphone, Andriod

  4.不同的分辨率

7.项目是否是用到https,证书如何签发。
证书可以自己制作。
国内许多公司的做法:自己做根证书CA(自己充当类似于VeriSign的角色),然后让用户下载安装根CA(当然了,其中只含有公钥)到机器中,12306就是这样干的(SRCA就是12306的根证书),然后再自己给自己颁发服务器证书,这样用户机器上也有他的CA,服务器发来的服务器证书也是这本CA颁发的,当然也顺利通过了

  1. 测试一个百度搜索框

  2. 两部电梯验证它的算法(测试电梯的响应规律?)(2次)
    (1):那么首先, 你要反问面试官,需求是什么样的,比如测什么样的电梯,是普通电梯,观光电梯,还是其他
    (2):如果回答没有,那么你的思路应该就是:没有需求文档,但我了解电梯的基本业务功能,以此依据,从下面几个方面进行分析:
    功能测试:(单个功能,逻辑业务/功能交互),界面测试,易用性测试,兼容性测试,安全性测试,性能(压力)测试
    (3):把以上几个方面的测试点分类列举一下,能想到多少说多少,在描述的过程中尽力量把所有的方面覆盖全,语句描述尽量附带测试分类,比如“从界面测试可以考虑电梯是否…”,了解到你的测试思维的完整性。
    电梯:
    功能测试——-单个功能:
    1,电梯内分楼层键是否正常
    2,电梯内开关门键是否正常
    3,电梯内的报警键是否正常
    4,电梯外的上下键是否正常
    5,同时关注显示屏,电梯内外的显示屏显示的电梯层数,运行方向是否正常
    6,有障碍物时,电梯门的感应系统是否有效
    功能测试——逻辑业务/功能交互
    1.功能与功能模块间的集成,可根据电梯当前状态是上行,下行还是停止来设计测试点,以保障覆盖率
    电梯当前状态是上行时,有人在X楼按下上升/下降键,电梯是否会停止
    电梯当前状态是下行时,有人在X楼按下 上升/下降键,电梯是否会停止
    在搭载满员的情况下,如果有人在X楼按下上升/下降键,电梯是否会停止
    2.功能设备与设备间的集成,关注功能接口,比如:
     电梯和大楼层,电梯和摄像头,电梯与空调,电梯和对讲机(报警装置),电梯与显示屏,电梯与其他电梯的协作能力
    例如:一栋楼有2部电梯,一部停在2楼,一部停在4楼,有人1楼按电梯,是否2楼的电梯下降到一楼开
    界面测试
    1,查看电梯的外观,按钮的图标显示,电梯内部张贴的的说明(比如报警装置的说明,称重量等)
    易用性测试
    1.楼层按键高度(小孩和一些身高矮的用户会按键不方便)
    2.电梯是否有地毯,夏天是否有空调,通风条件,照明条件,手机信号是否通畅
    3.电梯是否有扶手,是否有专针对残疾人的扶手等等
    兼容性测试
    1,电梯的整体和其他设备的兼容性,与大楼的兼容,与海地隧道的兼容等等
    2,不同类型的电压是否兼容
    安全性测试
    1,下坠时是否有制动装置
    2,暴力破坏电梯时是否报警,超重是否报警
    3,停电情况下电梯是否有应急电源装置
    性能测试 :
    1,测试电梯负载单人时运行情况(基准测试)
    2,多人时的运行情况(负载测试)
    3,一定人数下较长时间的运作(稳定性测试)
    4,更长时间运作时的运行情况(疲劳测试)
    5,不断增加人数导致电梯报警(拐点压力测试)

  3. 如果一款路由器产品马上要上市,但是发现有1%的死机率的bug,你会怎么做;

  4. 讲下sql注入
    答:1、检查变量数据类型和格式
    如果你的SQL语句是类似where id={$id}这种形式,数据库里所有的id都是数字,那么就应该在SQL被执行前,检查确保变量id是int类型;如果是接受邮箱,那就应该检查并严格确保变量一定是邮箱的格式,其他的类型比如日期、时间等也是一个道理。总结起来:只要是有固定格式的变量,在SQL语句执行前,应该严格按照固定格式去检查,确保变量是我们预想的格式,这样很大程度上可以避免SQL注入攻击。
      比如,我们前面接受username参数例子中,我们的产品设计应该是在用户注册的一开始,就有一个用户名的规则,比如5-20个字符,只能由大小写字母、数字以及一些安全的符号组成,不包含特殊字符。此时我们应该有一个check_username的函数来进行统一的检查。不过,仍然有很多例外情况并不能应用到这一准则,比如文章发布系统,评论系统等必须要允许用户提交任意字符串的场景,这就需要采用过滤等其他方案了。
    2、过滤特殊符号
    对于无法确定固定格式的变量,一定要进行特殊符号过滤或转义处理。
    3、绑定变量,使用预编译语句
    MySQL的mysqli驱动提供了预编译语句的支持,不同的程序语言,都分别有使用预编译语句的方法
    实际上,绑定变量使用预编译语句是预防SQL注入的最佳方式,使用预编译的SQL语句语义不会发生改变,在SQL语句中,变量用问号?表示,黑客即使本事再大,也无法改变SQL语句的结构

  5. 学校内网到外网的网络架构

  6. 学校每日熄灯断网,其实只是关闭认证,你能绕过去吗?怎么做?

  7. ipv4 ipv6传输
    答:IP协议详解及IPv4与IPv6协议的区别

  8. 宿舍wifi故障排查

  9. 家庭断网怎么检查判断

  10. 对系统测试怎么看(11次)
    答:职位描述
    从路由器到摄像头,从单一设备到解决方案;
    从嵌入式到APP,从传统算法到机器学习;
    从用户需求调研到设计方案评审,从测试方法构建到自动化工具开发;
    系统测试工程师,满足你对产品、技术、用户的一切想象。
    1.按照产品架构和业务要求,制定测试策略,设计测试方法,组织并进行产品的系统测试。
    2.制定企业和产品标准,对产品做出客观、公正的评价,并推动产品技术可靠性和用户体验的提升。
    3.参与产品需求和架构设计评审,保证产品的需求质量和可测试性。
    4.设计自动化测试解决方案,开发自动化测试平台、脚本。
    5.针对用户场景模拟、并发压力测试、算法性能评估等复杂测试需求,设计和开发灵活多样的测试设备,解决产品评价的难点和死角

  11. 为什么选择做测试(6次)

  12. 自己的优点缺点

你可能感兴趣的:(面试)