本文为霍格沃兹测试学院学员学习笔记。

本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~

软件测试工程师面试题

  1. 测试常见问题与流程篇
  2. 测试工具篇
  3. 计算机网络知识与数据库篇
  4. Linux 与 Python 编程技能篇
  5. 自动化测试(Selenium、Appium 和接口测试)与性能测试篇
  6. 软素质篇(10 大灵魂拷问)与反问面试官篇

Linux 技能篇

1. 工作中常用的 Linux 命令有哪些?
awk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du
2.什么命令可以帮助 Linux 执行 Windows 上传的脚本?
  • 改变编码格式
  • vim test.sh
  • :set ff?// 显示dos的话
  • :set ff=unix:wq
3简述 Linux 三剑客
  • grep 命令

    • 根据用户指定的模式 pattern 对目标文本进行过滤,显示被模式匹配到的行;
    • grep [options] pattern [file]
    • 常用参数:
      • -v 显示不被pattern匹配到的行
      • -i 忽略字符的大小写
      • -n 显示匹配的行号
      • -c 统计匹配的行数
      • -o 仅显示匹配到的字符串
      • -E 使用ERE,相当于egrep(可以识别更多的正则表达式规则)
  • sed 命令

    • 流编辑器,用来处理一行数据。将一行数据存储在模式空间中->用sed命令处理->送入屏幕->清空空间。
    • 常用参数:
      • -h 显示帮助
      • -n 仅显示script处理后的结果
      • -e 指定的脚本来处理输入的文本文件
      • -f 以指定的脚本文件来处理
    • 常用动作:
      • a: 新增 sed -e ‘4 a newline’
      • c: 取代 sed -e ‘2,5c No 2-5 number’
      • d: 删除 sed -e ‘2,5d’
      • i: 插入 sed -ed ‘2i newline’
      • p: 打印 sed -n ‘/root/p’
      • s: 取代 sed -e ‘s/old/new/g’
      • g: 代表全局
  • awk 命令

    • 把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给$0->将行切段,从$1开始->对行匹配正则/执行动作->打印内容;
    • awk 'pattern + action' [filenames]
    • 常用语法:
      • filename awk 浏览的文件名
      • begin 处理文本前要执行的操作
      • end 处理文本之后要执行的操作
      • fs 设置输入域分隔符,等价于命令行-F选项
      • nf 浏览记录的域的个数(列数)
      • nr 已读的记录数(行数)
    • 常用参数:
      • ofs 输出域分隔符
      • ors 输出记录分隔符
      • rs 控制记录分隔符,换行标志
      • $0 整条记录
      • $1 第一条分隔后的记录
4.如何通命令定位 Linux 服务器下的日志?
  • 如果要监控日志,那么使用 tail -f | grep xxx 命令,过滤需要的字段;
  • 如果在完整日志中查看内容,使用 cat xxx.log | grep xxxx | awk ‘{print $1}’ 等命令过滤自己需要的内容;
5.简述项目中的环境搭建和维护
  • 结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;
  • 基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;
  • 维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;

Python 编程篇

1.Python 中类方法,类实例方法,静态方法的区别
  • 实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;
  • 类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;
  • 静态方法:由类调用;无默认参数;
2.dict 和 tuple 及 list 的区别(这里列的是主要区别,面试足够)
  • tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;
  • list 是有序的,dict 是无序的,不可存放有序集合;
  • dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;
  • dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;
3.JSON 和 dict 的区别
  • JSON 是一种数据格式,纯字符串。dict 是一种完整的数据结构;
  • dict 是一个完整的数据结构,是对 Hash Table 这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划 key 对应 value 的存储位置,从而获得O(1)的数据读取速度;
  • JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 对象(不可变对象);
  • JSON 的 key 可以是有序、可重复的;dict 的 key 不可重复,且无序;
  • JSON 任意 key 存在默认值 undefined,dict 默认没有默认值;
  • JSON 访问方式可以是[],也可以是.,遍历方式分 in、of;dict 的 value 仅可以下标访问;
  • dict 可以嵌套 tuple,JSON 里只有数组;
4.Python 会不会出现内存泄漏,为什么?
  • 当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;
  • 上面为个人了解,如有其它请补充;
5.Python 的同步和异步
  • 直接得到最终结果的结果,就是同步调用。
  • 不直接得到的最终的结果,就是异步调用。
  • 同步与异步区别在于:调用者是否得到了想要的最终结果。
6.常见手撕代码题
  • 两个列表提取作为字典
dict(zip(list1, list2))
  • 字符串反转输出
str = '1234567890'
print(str[::-1]) l = list(str)
l.reverse()
print(''.join(l))
  • 实现斐波那契数列
def Fibonacci(loop):
if loop == 0:
return '无效参数'
elif loop == 1:
return 0
l = [0, 1]
for i in range(2, loop):
l.append(l[i - 1] + l[i - 2])
return l
  • 找出驼峰数组的最大值
li = [1, 2, 10, 10, 2, 1]
print([v for v in li if v == max(li)])
  • 水仙花数
sxh = []
for i in range(100, 1000):
s = 0
for j in str(i):
s += int(j)**3
if i == int(j)**3:
sxh.append(i)
print(sxh)
  • 完全数
a = []
for i in range(1, 1000):
s = 0
for j in range(1, i):
if i % j == 0 and j < i:
s += j
if s == i:
a.append(i)
  • 幂的递归
def mi(a, n):
if n == 0:
return 1
else:
return a * mi(a, n - 1)
  • 目录遍历
import os

def get_file(path, rule=''):
files = []
for fpath, dirs, fs in os.walk(path):
for f in fs:
if os.path.join(fpath, f).endswith(rule):
files.append(f)
return files

更多内容,我们在后续文章分享。

>本文为霍格沃兹测试学院学员学习笔记。
本系列文章总结归纳了一些软件测试工程师常见的面试题,主要来源于个人面试遇到的、网络搜集(完善)、工作日常讨论等,分为以下十个部分,供大家参考。如有错误的地方,欢迎指正。有更多的面试题或面试中遇到的坑,也欢迎补充分享。希望大家都能找到满意的工作,共勉之!~
#### 软件测试工程师面试题
1. [测试常见问题与流程篇](https://blog.csdn.net/weixin_46635091/article/details/107833640)2. [测试工具篇](https://blog.csdn.net/weixin_46635091/article/details/107843200)3. [计算机网络知识与数据库篇](https://blog.csdn.net/weixin_46635091/article/details/107857758)4. Linux 与 Python 编程技能篇5. 自动化测试(Selenium、Appium 和接口测试)与性能测试篇6. 软素质篇(10 大灵魂拷问)与反问面试官篇#### Linux 技能篇
##### 1. 工作中常用的 Linux 命令有哪些?
```bashawk、sed、vim、iotop、dstat、cp、top、ifconfig、pwd、cd、ll、ls、cat、tail、grep、mv、rm、mkdir、df、du```
##### 2.什么命令可以帮助 Linux 执行 Windows 上传的脚本?
- 改变编码格式- vim test.sh- :set ff?// 显示dos的话- :set ff=unix:wq##### 3简述 Linux 三剑客
- grep 命令
  - 根据用户指定的模式 pattern 对目标文本进行过滤,显示被模式匹配到的行;  - grep [options] pattern [file]  - 常用参数:    - -v 显示不被pattern匹配到的行    - -i 忽略字符的大小写    - -n 显示匹配的行号    - -c 统计匹配的行数    - -o 仅显示匹配到的字符串    - -E 使用ERE,相当于egrep(可以识别更多的正则表达式规则)- sed 命令  - 流编辑器,用来处理一行数据。将一行数据存储在模式空间中->用sed命令处理->送入屏幕->清空空间。  - 常用参数:    - -h 显示帮助    - -n 仅显示script处理后的结果    - -e 指定的脚本来处理输入的文本文件    - -f 以指定的脚本文件来处理  - 常用动作:    - a: 新增 sed -e '4 a newline'    - c: 取代 sed -e '2,5c No 2-5 number'    - d: 删除 sed -e '2,5d'    - i: 插入 sed -ed '2i newline'    - p: 打印 sed -n '/root/p'    - s: 取代 sed -e 's/old/new/g'    - g: 代表全局- awk 命令  - 把文件逐行的读入,以空格为默认分隔符将每行切片。把行作为输入,并赋值给$0->将行切段,从$1开始->对行匹配正则/执行动作->打印内容;  - `awk 'pattern + action' [filenames]`  - 常用语法:    - filename awk 浏览的文件名    - begin 处理文本前要执行的操作    - end 处理文本之后要执行的操作    - fs 设置输入域分隔符,等价于命令行-F选项    - nf 浏览记录的域的个数(列数)    - nr 已读的记录数(行数)  - 常用参数:    - ofs 输出域分隔符    - ors 输出记录分隔符    - rs 控制记录分隔符,换行标志    - $0 整条记录    - $1 第一条分隔后的记录##### 4.如何通命令定位 Linux 服务器下的日志?
- 如果要监控日志,那么使用 tail -f | grep xxx 命令,过滤需要的字段;- 如果在完整日志中查看内容,使用 cat xxx.log | grep xxxx | awk '{print $1}' 等命令过滤自己需要的内容;##### 5.简述项目中的环境搭建和维护
- 结合自身经验先从系统安装开始,如常用的 CentOS 和 Ubuntu 说起,系统安装主要是磁盘分区和磁盘阵列问题;- 基础环境依赖,如 MySQL、Redis、Jenkins、Docker、项目中用到的其他依赖环境等;- 维护方便主要从遇到的错误说起,如无法远程连接、服务器加固等;#### Python 编程篇
##### 1.Python 中类方法,类实例方法,静态方法的区别
- 实例方法:由对象调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的对象赋值给 self;- 类方法:由类调用;至少一个 cls 参数;执行类方法时,自动将调用该方法的类复制给 cls;- 静态方法:由类调用;无默认参数;##### 2.dict 和 tuple 及 list 的区别(这里列的是主要区别,面试足够)
- tuple 是不可变对象,list 和 dict 都是可变对象,这里的不可变指的是指向地址不可变;- list 是有序的,dict 是无序的,不可存放有序集合;- dict 查找速度快,不管有多少个元素时间都一样,list 查找速度慢,需要有序查找;- dict 的 key 为不可变对象,且不可重复,list 则可以重复,存放任意对象;##### 3.JSON 和 dict 的区别
- JSON 是一种数据格式,纯字符串。dict 是一种完整的数据结构;- dict 是一个完整的数据结构,是对 Hash Table 这一数据结构的一种实现,是一套从存储到提取都封装好了的方案。它使用内置的哈希函数来规划 key 对应 value 的存储位置,从而获得O(1)的数据读取速度;- JSON 的 key 只能是字符串,Python 的 dict 可以是任何可 hash 对象(不可变对象);- JSON 的 key 可以是有序、可重复的;dict 的 key 不可重复,且无序;- JSON 任意 key 存在默认值 undefined,dict 默认没有默认值;- JSON 访问方式可以是[],也可以是.,遍历方式分 in、of;dict 的 value 仅可以下标访问;- dict 可以嵌套 tuple,JSON 里只有数组;##### 4.Python 会不会出现内存泄漏,为什么?
- 当对象之间互相引用的时候再删除的时候,可能会造成无法释放对象的情况,出现泄漏;- 上面为个人了解,如有其它请补充;##### 5.Python 的同步和异步
- 直接得到最终结果的结果,就是同步调用。- 不直接得到的最终的结果,就是异步调用。- 同步与异步区别在于:调用者是否得到了想要的最终结果。##### 6.常见手撕代码题
- 两个列表提取作为字典```pythondict(zip(list1, list2))```
- 字符串反转输出
```pythonstr = '1234567890'print(str[::-1])
l = list(str)l.reverse()print(''.join(l))```
- 实现斐波那契数列
```pythondef Fibonacci(loop):    if loop == 0:        return '无效参数'    elif loop == 1:        return 0    l = [0, 1]    for i in range(2, loop):        l.append(l[i - 1] + l[i - 2])    return l```
- 找出驼峰数组的最大值
```pythonli = [1, 2, 10, 10, 2, 1]print([v for v in li if v == max(li)])```
- 水仙花数
```pythonsxh = []for i in range(100, 1000):    s = 0    for j in str(i):        s += int(j)**3    if i == int(j)**3:        sxh.append(i)print(sxh)```
- 完全数
```pythona = []for i in range(1, 1000):    s = 0    for j in range(1, i):        if i % j == 0 and j < i:            s += j    if s == i:        a.append(i)```
- 幂的递归
```pythondef mi(a, n):    if n == 0:        return 1    else:        return a * mi(a, n - 1)```
- 目录遍历
```pythonimport os
def get_file(path, rule=''):    files = []    for fpath, dirs, fs in os.walk(path):        for f in fs:            if os.path.join(fpath, f).endswith(rule):                files.append(f)    return files```#### 更多内容,我们在后续文章分享。

测试面试题集锦(四)| Linux 与 Python 编程篇(附答案)的更多相关文章

  1. php面试题汇总二(基础篇附答案)

    介绍一些php常见面试题及答案,都是平时面试的时候经常会遇到的,小伙伴们仔细了解下吧.接着上一篇php面试题汇总一(基础篇附答案) 1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义 ...

  2. 百道Python面试题实现,搞定Python编程就靠它

    对于一般的机器学习求职者而言,最基础的就是掌握 Python 编程技巧,随后才是相关算法或知识点的掌握.在这篇文章中,我们将介绍一个 Python 练习题项目,它从算法练习题到机试实战题提供了众多问题 ...

  3. php面试题汇总一(基础篇附答案)

    一份不错的php面试题,附答案,有准备换工作的同学可以参考一下. 1:使用五种以上方式获取一个文件的扩展名要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,必须使用PHP ...

  4. 测试面试题集锦----liunx与网络

    国庆完后就回深圳了,所以也要参加面试了,我大概收集了一些感觉可能会面试到的一些笔试题,给大家参考,答案不一定全对,分为liunx ,网络,mysql,编程题,我分别按分类补充,以后在继续补充 liun ...

  5. 2018春招-今日头条笔试题-第四题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) #-*- coding:utf-8 -*- class Magic: ''' a:用于存储数组a b:用于存储数组b num:用于 ...

  6. php面试题汇总四(基础篇附答案)

    1. 什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰.主要特征:封装.继承.多态. 2. SESSION 与 COOKIE的区别是什么,请从 ...

  7. Linux基础命令练习题(附答案)

    1.分别用cat \tac\nl三个命令查看文件/etc/ssh/sshd_config文件中的内容,并用自己的话总计出这三个文档操作命令的不同之处? [root@localhost ~]# cat ...

  8. Python系列教程-详细版 | 图文+代码,快速搞定Python编程(附全套速查表)

    作者:韩信子@ShowMeAI 教程地址:http://showmeai.tech/article-detail/python-tutorial 声明:版权所有,转载请联系平台与作者并注明出处 引言 ...

  9. php面试题汇总三(基础篇附答案)

    问题 1. 如何访问会话变量(session)? A.通过$_GET B.通过$_POST C.通过$_REQUEST D.通过全局变量 E.以上都不对 2. 哪个函数能让服务器输出如下 header ...

随机推荐

  1. bzoj4716假摔

    bzoj4716假摔 题意: 给出一个矩阵,求这个矩阵中权值和第k小的长在xmin到n之间,宽在ymin到m之间的子矩阵.n,m≤1000,k≤250000. 题解: 首先求出长为xmin,宽为ymi ...

  2. Hexo 踩坑:jquery 报错

    今天玩了一下Hexo(一个基于node.js的静态博客框架),结果部署到服务器上后发现了一个报错. jquery未定义. jquery怎么会报错呢?一看是找不到链接上的文件. //ajax.googl ...

  3. [转载]Python ImportError: No module named 'requests'解决方法

    windows解决办法1.找到easy_install.exe.一般在python的安装路径下的Scripts文件夹中,如C:\Python34\Scripts\easy_install.exe2.从 ...

  4. 如果你还不知道如何控制springboot中bean的加载顺序,那你一定要看此篇

    1.为什么需要控制加载顺序 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题.在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功 ...

  5. mysql 5.7.13 安装配置方法

    linux环境Mysql 5.7.13安装教程分享给大家,供大家参考,具体内容如下: 1系统约定 安装文件下载目录:/data/software Mysql目录安装位置:/usr/local/mysq ...

  6. Java Web(1)-JavaScript

    一.JavaScript 和 html 代码的结合方式 1. 第一种方式 只需要在 head 标签中,或者在 body 标签中, 使用 script 标签 来书写 JavaScript 代码 < ...

  7. Java基础(一)基础常识

    Java开发基础流程图: 也可参考这篇博客: https://www.cnblogs.com/xdp-gacl/p/3624567.html 常用的Windows的DOS命令 : dir : 列出当前 ...

  8. 【NeurlPS2019】Positional Normalization 位置归一化

    作者提出,当前的BatchNorm, GroupNorm, InstanceNorm在空间层面归一化信息,同时丢弃了统计值.作者认为这些统计信息中包含重要的信息,如果有效利用,可以提高GAN和分类网络 ...

  9. hadoop2.7.3+spark2.0.1+scala2.11.8集群部署

    一.环境 4.用户 hadoop 5.目录规划 /home/hadoop/app    #程序目录 /home/hadoop/data  #数据目录     #打开文件的最大数 vi /etc/sec ...

  10. mongo安装和cmd运行命令

    一.安装方式 安装mongodb :www.mongodb.com next-->complete-->Instal MongoD as Service 不勾选 --> Instal ...