软件测试面试问题及答案_中软国际测试面试笔试题

2022-11-10 21:05:42 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

文章目录

  • 软测面试题附答案<二>
    • 二、接口面试题
      • 1、你们公司的接口测试流程是怎样的?
      • 2、接口测试里面如何分析一个bug是前端还是后端的?
      • 3、Jmeter参数化的方式有哪几种可以实现
      • 4、在接口测试中关联是什么含义?一般什么场景需要用到,postman中是怎样用的?
      • 5、常用的性能指标名称与具体含义?
      • 6、没有接口和文档怎么进行工作?
    • 三、自动化面试题
      • 1、Selenium中有哪几种元素定位方式?
      • 2、隐式等待与显式等待有什么不同?
      • 3、自动化测试里面遇到验证码,一般怎么处理比较好?
    • 四、安全
      • 1、什么是SQL注入攻击,如何避免
      • 2、有没做过安全测试?什么是XSS攻击?

软测面试题附答案<二>

上一篇链接:软测面试题附答案<一>,主要内容为常规软测面试题。 下一篇链接:软测面试题附答案<三>,主要内容为测开相关面试题

二、接口面试题

1、你们公司的接口测试流程是怎样的?

  • 熟悉业务需求和测试要点(需求文档、接口文档)
  • 从开发处拿到API接口文档,了解接口业务、协议和token鉴权,返回格式等信息
  • 使用Postman或Jmeter工具执行接口测试
    • 如果产品比较稳定,会编写自动化测试脚本进行自动化测试
  • 编写接口测试报告

2、接口测试里面如何分析一个bug是前端还是后端的?

  • 前后端分离的项目
    • 抓包看看请求响应,对照接口文档协议,看是否符合要求,如果报文没问题,那就是前端问题
    • 如果返回的数据不对,或者协议不同,则是后端问题
  • 前后端一体的项目,这个需要前端和后端一起排查。

3、Jmeter参数化的方式有哪几种可以实现

  • 配置文件—用户定义的变量原件可以设置全局变量
  • 函数助手对话框中可以选择比如随机字符串、随机日期。随机数字作为参数化
  • 可以使用CSV文件作为参数化,通过配置文件中的csv data set config元件进行设置即可
  • beanshell进行二次开发读取

4、在接口测试中关联是什么含义?一般什么场景需要用到,postman中是怎样用的?

  • 关联就是把上一个接口返回值的奔放截取出来,作为下一个接口的参数,能让串口串联运行
  • 比如电商里面的取消收藏功能,需要从收藏列表获取某个商品记录id,并获取登录鉴权token,然后请求取消收藏接口
  • 在postman中设置管理的步骤如下:
    • 先通过正则表达式提取的方式或json取值的方式把下一个接口需要的信息从上一个接口截取出来
    • 使用设置全局变量的代码把取出来的值保存到全局变量
    • 在下一个接口中,使用{ {全局变量}}代替要替换的静态值

5、常用的性能指标名称与具体含义?

  • 响应时间、并发用户数、吞吐量、性能计数器、TPS
    • 响应时间:指的是”系统响应时间”,定义为应用系统从发出请求开始到客户端接收到响应所消耗的时间。把它作为用户视角的软件性能的主要体现
    • 最大并发用户数:
      • 从业务的角度来模拟真实的用户访问,体现的是业务并发用户数,指在同一时间内访问系统的用户数量。
      • 从服务器端承受的压力来考虑,这里的”并发用户数”指的是同时向服务器端发出请求的客户数,一般结合并发测试使用,体现得到是服务器端承受的最大并发访问数。
    • 吞吐量:指”单位时间内系统处理的客户请求的数量”,直接体现软件系统的性能承载能力
    • 性能计数器:是描述服务器或操作系统性能的一些数据指标。例如,对Windows系统来说,使用内存数(Memory In Usage),进程时间(Total Process Time)等都是常见的计数器
    • TPS:每秒系统能够处理的交易或事务的数量。他是衡量系统处理能力的重要指标。

6、没有接口和文档怎么进行工作?

  • 公司里多数是前后端分离,项目启动后,开发人员应该先定义接口文档,测试人员应该尽早拿到接口文档进行编写测试用例。
  • 没文档情况:
    • 找上司或者对应的开发人员获取,确实没有,就抓包
      • 如果是后端返页面和数据,不是前后端分离的,则没法做接口测试
      • app:通过代理抓包
    • 如果里面参数涉及复杂的加密逻辑且开发人员不能协助,基本没戏

三、自动化面试题

1、Selenium中有哪几种元素定位方式?

八大定位方法,在之前的文章中也有详细讲到:Selenium备忘录

代码语言:javascript复制
1、id: find_element_by_id() 采用id属性进行定位
2、name: find_element_by_name() 定位方式和id定位相似,id、name和class一般在网页都至少会
有其中的一种
3、class name: find_element_by_class_name() 定位方式和id定位相似,id、name和class一
般在网页都至少会有其中的一种
4、tag name:find_element_by_tag_name() 通过标签名去定位,用的少,如
find_element_by_tag_name("div")
5、link text: find_element_by_link_text() 超链接内容定位
6、partial link text:find_element_by_partial_link_text() 超链接内容定位,模糊匹配
7、xpath:类似xml格式进行选择元素
8、css selector:根据CSS属性定位,一般class是用.标记,id是用#标记,定位方式也会比xpath快

2、隐式等待与显式等待有什么不同?

  • sleep():强制等待,设置固定休眠时间。后脚本的执行过程中执行 sleep()后线程休眠,而另外两种线程不休眠。
  • implicitly_wait():隐式等待,是设置的全局等待。设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间则抛出异常。隐式等待可以理解成在规定的时间范围内,浏览器在不停的扫描页面,直到找到相关元素或者时间结束。
  • WebDriverWait():显式等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常。默认检测频率为0.5s,默认抛出异常为:NoSuchElementException

3、自动化测试里面遇到验证码,一般怎么处理比较好?

  • 激活成功教程验证码
    • OCR识别:tesseract-orc
    • AI机器学习
  • 绕过
    • 让开发人员临时关闭验证码
    • 提供一个万能的验证码
    • 使用cookie(登录主要是为了拿cookie,获取登录凭证)

四、安全

1、什么是SQL注入攻击,如何避免

SQL注入是一种注入攻击,可以执行恶意SQL语句,它通过将任意SQL代码插入数据库查询,使攻击者能够完全控制Web应用程序后面的数据库服务器。攻击者可以使用SQL注入漏洞绕过应用程序安全措施;可以绕过网页或Web应用程序的身份验证和授权,并检索整个SQL数据库的内容;还可以使用SQL注入来添加,修改和删除数据库中的记录。

  • 如何防止SQL注入攻击?
    • 不要使用动态SQL
    • 避免将用户提供的输入直接放入SQL语句中;最好使用准备好的语句和参数化查询,这样更安全。
    • 不要将敏感数据保留在纯文本中
    • 加密存储在数据库中的私有/机密数据;这样可以提供了另一级保护,以防攻击者成功的排出敏感数据。
    • 限制数据库权限和特权
    • 将数据库用户的功能设置为最低要求;这将限制攻击者在设法获取访问权限时可以执行的操作。
    • 避免直接向用户显示数据库错误。

2、有没做过安全测试?什么是XSS攻击?

  • 安全测试:在任何软件(Web或基于网络)的应用程序中找到漏洞,并保护其数据免受可能的攻击或入侵者
  • 什么是XSS攻击
    • XSS或跨站点脚本是黑客用来攻击web应用程序的漏洞类型。他允许黑客将HTML或JAVASCRIPT代码注入网页,网页可以从cookie中窃取机密信息并返回给黑客。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/187987.html原文链接:https://javaforall.cn

0 人点赞