当前位置: 首页 > news >正文

软测面经(私)

测试流程

分析需求——>制定测试计划——>设计测试用例——>执行测试——>编写测试报告

黑盒测试

等价类划分、边界值分析法、猜错法、随机数法、因果图。

白盒测试

代码检查法、程序变异、静态结构分析法、静态质量度量法、符号测试法、逻辑覆盖法、域测试、Z路径覆盖和基本路径测试法。

冒烟测试

对版本最基本的功能进行测试,保证基本的功能和流程。是版本验证测试,优点在于节约测试的时间成本,减少测试轮数。

回归测试

是软件维护阶段对软件修改后进行的测试,指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。

等待

强制等待、显示等待、隐形等待

selenium如何定位隐藏元素

隐藏元素可以正常定位,只是不能操作。如果想要操作隐藏元素,可以用js的方法。
js = 'document.getElementById("id").click()' driver.execute_script(js)

如何做好用例的编写,从哪些维度去考虑问题

缺陷的生命周期

Linux 查看/编辑文件的命令

场景设计(正例、反例)

数据库三范式

1NF(原子性)存储数据不可再分

2NF(唯一性)在满足第一范式的基础上,非主键列须完全依赖于主键

3NF(独立性)…非主键列不能与其他非主键列间存在依赖关系

mysql常用的存储引擎?区别?

常用的存储引擎是:InnoDB,MyISAM

区别:
InnoDB支持事务,而MyISAM不支持事务
InnoDB支持行级锁,而MyISAM支持表级锁
InnoDB支持MVC, 而MyISAM不支持
InnoDB支持外键,而MyISAM不支持
InnoDB不支持全文索引,而MyISAM支持。

Cookie与Session的区别

Cookie:存储在客户端,通过Expires字段来设置过期时间
Session:存储服务端,关闭浏览器后,服务器存储的Session就会失效

打开浏览器到看到浏览器显示页面,过程步骤和环节?

DNS域名解析
TCP三次握手
发生http请求
接受http响应
浏览器解析响应文件(js,css,html)

TCP/UDP的区别

1.TCP面向连接,TCP面向字节流,TCP连接只能是点到点,首部开销大,全双工。

2.UDP是无连接的,面向报文的UDP没有拥塞控制,首部开销小,只有8个字节。

网页崩溃原因

  1. 内存泄漏

  2. 网页代码复杂和浏览器bug

  3. 网页数据过多

  4. Ajax的Web服务漏洞

上传头像失败

1.图片限制(大小、格式、尺寸)
2.前端(组件)组件出现bug
3.后端(接口)数据库异常、调用接口,参数传递不正常、接口挂了
4.网络(访问对象存储访问超时)

app闪退原因

1.外部 手机内存不足,网络不佳、版本低、软件冲突,资源竞争

2.内部 版本低与后端接口冲突、不兼容操作系统、程序bug(空指针异常、数组越界、堆栈溢出、逻辑错误)

偶然闪退的排查?

1.查看 crash 日志

2.遍历测试,暴力复现

网页卡顿原因

1.http 请求次数太多。规范接口设计,减少 http 请求次数。

2.页面资源加载。静态资源统一放在一个静态域名上,减轻重复下载静态资源的负担。

3.cookie 影响。减小 cookie 的影响 。去除没有必要的 cookie。

排查少量的用户反馈功能异常

1.APP 版本过低,接口改动未考虑版本控制

2.操作系统版本不兼容。

3.跟会员用户有关,某些功能仅争对 VIP 会员开放,然该部分功能缺陷。

4.跟用户分布地域有关,有些地区未开放功能,但也为这些用户展示了入口。

排查登录的按钮不能点击

1.前端未响应用户点击事件,导致请求发不出去。

2.前端发起 HTTP 请求,但后端接口返回异常,前端捕获异常之后,没有处理。

3.网络异常,不能发出请求。

4.内存不够,导致页面卡死。

APP提示无法连接网络

第一步:检查网络环境

1.检查流量和WiFi信号

2.检查是否有网络限制, APP是否只能在内网使用,无法连接公网。

3.检查是否连接了代理或代理连接是否出现异常,手机连接电脑代理之后,如果不安装证书,发起 https 的请求将出现异常。

第二步:检查 APP 的网络请求

抓包,检查 APP 请求的域名是否正确,检查后端接口是否响应超时,检查后端接口是否返回异常。

判断BUG位置?

1.样式和交互层面的 Bug,大概率都是前端的 Bug

2.数据相关的 Bug,大概率都是后端的 Bug

使用python实现多线程

import time, threading# 新线程执行的代码:
def loop():print('thread %s is running...' % threading.current_thread().name)n = 0while n < 5:n = n + 1print('thread %s >>> %s' % (threading.current_thread().name, n))time.sleep(1)print('thread %s ended.' % threading.current_thread().name)print('thread %s is running...' % threading.current_thread().name)
t = threading.Thread(target=loop, name='LoopThread')
t.start()
t.join()
print('thread %s ended.' % threading.current_thread().name)

数组、list与arrayList区别

1.数组是在内存空间中申请一段连续的内存地址
2.ArrayList的大小是按照其中存储的数据来动态扩充
3.list定义了ArrayList的数据类型

JDK、JVM、JRE

1.Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 利用字节码(即扩展名为 .class 的文件)针对不同系统,特定实现。

2.JDK 是 Java Development Kit,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序。

3.JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。


http://www.mrgr.cn/news/100138.html

相关文章:

  • 数学基础 -- 欧拉恒等式的魅力:让复数旋转起来!
  • 嵌入式鸿蒙系统环境搭建与配置要求实现01
  • 嵌入式开发:基础知识介绍
  • 07 Python 字符串全解析
  • 深度学习--循环神经网络RNN
  • 【自然语言处理与大模型】模型压缩技术之量化
  • 【器件专题1——IGBT第1讲】IGBT:电力电子领域的 “万能开关”,如何撑起新能源时代?
  • 0基础 | Proteus仿真 | 51单片机 | 继电器
  • 精益数据分析(23/126):把握创业阶段与第一关键指标
  • [Windows] 卡巴斯基Kaspersky 21.21.7.384 免费版
  • 【金仓数据库征文】-金仓数据库性能调优 “快准稳” 攻略:实战优化,让数据处理飞起来
  • Linux系统中命令设定临时IP
  • 七、web自动化测试03
  • 支持Function Call的本地ollama模型对比评测-》开发代理agent
  • Mybatis-Plus,IDEA2024版本
  • 分数线降低,25西电马克思主义学院(考研录取情况)
  • 【Python数据库编程实战】从SQL到ORM的完整指南
  • day01_编程语言介绍丶Java语言概述丶开发环境搭建丶常用DOS命令
  • R7周:糖尿病预测模型优化探索
  • linux离线部署open-metadata