tester

测试基础

测试流程

  1. [需求分析阶段]:参与需求评审会议、阅读需求、理解需求、分析需求点,也就是了解业务
  2. [测试计划阶段]:根据需求分析文档,编写测试计划,包括测试范围、人力物力安排、测试策略、风险评估 - 测试负责人
  3. [测试设计阶段]:参考需求文档、概要设计文档、详细设计文档来编写测试用例,有不懂的地方及时和产品经理或开发沟通,之后会有测试用例评审
  4. [测试执行阶段]:搭建测试环境,执行预测(冒烟测试),冒烟测试就是看当前版本是否可测,冒烟测试通过,正式进入系统测试,遇到 bug 提交至缺陷管理平台,并对 bug 进行跟踪,直到被测软件达到测试需求要求,没有重大 bug,测试结束。

UI 自动化测试

UI 自动化从脚本运行到服务器端发生了什么?

  • Web 端:
  1. UI 自动化测试有三大块组件:客户端脚本、驱动(Webdriver)、浏览器终端;
  2. 驱动 Webdriver 启动后,相当于暴露了一系列接口的服务器,监听某一端口;
  3. 客户端的操作,比如访问页面、定位元素、输入元素、点击按钮等等都是被封装成了接口请求(HttpRequest 对象),然后提交到驱动 Webdriver
  4. Webdriver 接收到客户端请求后,再跟终端浏览器交互
  5. 浏览器做出相应的操作。

Linux 常用命令

目录、文件处理命令

  • cd :切换工作目录
  • ls:列出指定内容目录
    • ls -l:以列表形式查看
    • ls -h:以一种人性化的方式查看,也是文件的大小以合适的单位显示
    • ls -a:查看所有文件带详细信息、可读可写可执行权限、包括隐藏文件
    • ls -i:显示出文件的 i 节点号
  • pwd:显示当前工作目录的据对路径
  • cp:复制文件或文件夹
    • cp -a
    • cp -p:同时复制文件属性,比如修改日期
    • cp -d:复制时保留文件链接
    • cp -r:复制文件夹时,递归复制子文件夹
    • cp -l:不复制,而是创建指向源文件的链接文件,链接文件由目标文件给出
  • mv:移动文件或文件夹,可以在移动的时候重命名
  • rm -r:递归删除文件或文件夹
  • rm -f:强制删除即没有提醒
  • mkdir:创建目录
  • rmdir:删除一个空文件夹
  • touch ${filename}:创建文件,可以一次创建多个文件、以空格隔开
  • cat:查看文件内容
  • find:搜索指定范围内的文件

压缩解压缩命令

  • tar:压缩生成的文件名、要压缩的目录
  • zip:压缩生成的文件名、要压缩的文件
  • unzip:要解压缩的文件

网络命令

  • ping ip:测试网络连通性
  • ipconfig:查看当前网卡信息

其他命令

  • ps -aux:使用 BSD 语法查看所有进程
  • ps -ef:标准语法查看所有进程
    • UID 程序被该 UID 所拥有
    • PID 就是这个程序的 ID
    • CPU 资源占用百分比
    • STIME 系统启动时间
    • TTY 登入者的终端机位置
    • TIME 使用掉的 CPU 时间
    • CMD 所下达的指令方向
  • top:动态查看系统的状态
  • lsof -Pti:${port}:通过端口号获得进程 pid
  • lsof -i ${port}:查看端口占用
  • kill -9 pid:强行杀死指定 pid 的进程
  • history:查看历史命令
  • exit 退出
  • clear 清屏
  • chmod 修改文件权限
  • grep 强大的搜索工具,搭配正则表达式,把匹配的行打印出来
  • who am i:查看自己所在的终端信息
  • who:查看当前谁在使用该主机
  • netstat:查看网络是否连通
  • env:查看所有环境变量
  • env $HOME:查看指定环境变量
  • du:显示目录或文件大小
  • df:显示每个文件所在文件的系统信息,默认显示所有文件系统

网络与协议

输入一个网址,接下来发生了什么?

三次握手?

四次挥手?

get 和 post 的区别?

  • get

了解哪些状态码

TCP 和 UDP 区别

五层协议 七层协议 路由器在哪一层


数据库


操作系统

进程和线程的区别?

  1. 进程是 CPU 资源分配的最小单位,有自己独立的地址空间;线程是程序执行的最小单位,没有独立的地址空间;
  2. 一个进程可以包含多个线程
  3. 因为地址空间分配,导致不同的进程间通信非常困难,但是一个进程中的不同线程非常方便

算法

  1. 冒泡排序

软问题

  • 怎么理解测开中的开发?