美文网首页职场倍速成长软件测试职业探索
软件 自动化测试工程师 面试前准备 个人总结(非官方)

软件 自动化测试工程师 面试前准备 个人总结(非官方)

作者: 涅槃Ls | 来源:发表于2021-11-09 19:49 被阅读0次

    背景:10月份离职后继续找互联网行业自动化测试工程师,在自习室闭关几天,开启复习学习之路:
    一、软件测试-复习思路
    二、准备好Boss直聘的在线&附件简历
    三、重点复习简历上所写的技术:自动化测试
    四、面试时会问的一些非技术性的问题
    五、自己电脑上的开发软件
    六、检查简历上我三个社交网站更新情况
    七、百人计划,继续听完
    八、看一遍自己笔记里的每日TodoList(2016年至今)
    九、Boss上回复HR信息,寻面试机会(先过学历这一关)
    十、面试
    十一、根据面试中的问题重点提升

    一、软件测试-复习思路

    看一遍老徐的软件测试资料,全面了解软件测试的知识体系(简单版),以下只把目前对我有用的测试知识点记下来了。

    • python、unitest、postman
    • 软件测试的基本理论、测试方法、项目管理工具
    • Linux及链接Linux服务器的工具Xshell Xftp等
    • Mysql及链接数据库Mysql的工具Navicat等
    • 代码管理工具Git、SVN
    • Bug管理工具Tapd、禅道、Jira等,
    • 用例管理工具,日常文档协作工具Wiki等,很多很多
    • 任何公司,只是规范不同,工具使用无门槛,几天可搞定
    • 搞好关系,尽快熟悉工作上要接触的产品 开发 设计 运维 售后 客户
    • 有时间,多用用自己的公司产品
    • 文档落地、沉淀(不仅自己会,还得让其他同学会)
      养成输出文档的习惯,一个人的研究成果,可以让多人快速掌握,不用重复投入时间 。这是Leader比较喜欢的员工。
    • 结果反馈,非常重要
    • 交付的工作任务,及时响应,有结果后,及时同步(即使没完成,遇到困难,也同步进度,知道你在干这事)
    • 又或是问一些“平常看什么书?什么时候看?从什么渠道了解最新的知识?”。测试行业有哪些垂直社区?有哪些大的IT技术站点?有哪些测试方面的微信公众号?
    • 用例唯一编号、用例类型、模块、功能项、输入、预期结果、实际结果、测试结论、备注,就OK
    • 测试点(思维导图写测试点,不错的方式,如Xmind )吧,提取关键要素
    • 测试点到底该怎么写呢 ? 侧重点是什么 ?
    • 重点关注业务逻辑、业务场景、异常测试等,至于具体UI细节,简单带过即可(因为此时,需求未定,后续确定后,做简单补充即可,因为UI层面的问题,视觉就可直观的看出来,不需要大篇幅的测试用例,浪费时间,产出并不高)
    • 故测试用例一定要写,颗粒度可是情况而定
    • 等价类划分法,边界值分析法,功能图法、错误推测法、因果图法,场景法等。
    • 首先一定要熟悉需求,需求分析,拆解非常重要,需求熟悉过程中,不理解或有疑惑的地方,一定要找产品进行及时沟通,确定结果。其次项目开发过程中,每期的用例都要不断总结,学会总结,尽可能的保证少漏。
    • 会议记录
    • 需求评审:先对功能复杂,优先级高,疑问多的用例进行评审,再评审功能简单,优先级低的功能点。对于评审过程中,(超过5min)一时半会没有结论的问题,可以记录下来,作为会后讨论跟进的重点。
    • 浏览器的F12 (查看基本的请求、cookies、Error、404等)、
    • 浏览器的缩放(很多问题,其实是浏览器缩放了导致,就没必要傻乎乎的抛给开发)
    • 基本的抓包(Fiddler)
    • Linux下查看log 、部署包(常用的十几个命令)
    • http基本常识(看的懂接口、参数、post/get,之前推荐过电子书)
    • Bug的基本描述(图文并貌)
    • 最简单的基线性能测试(之前文章)
    • 行业内测试相关工具、管理相关工具得知道(TAPD / ZenTao 等)
    • 得会画脑图(Xmind)
    • 多看看软件工程方面知识、数据库方面知识、项目管理方面知识、产品方面知识 。
    • 问题1、平时是否有学习工作中,所需技能的知识
    • 问题2、每天那么忙,时间消化在哪?是否有分析
      • 通过问题1,了解面试者的主动求知欲,以及自主学习能力 ;测试岗位,需要学的太多了,如果缺乏这两方面,很难培养,未来提升空间太小。初当管理者,最容易犯的错误,就是招人错误,他们往往只关注,招过来的人,能解决当前遇到的问题;完全不考虑团队整体结构分布,以及面试者的未来可培养空间 。
      • 通过问题2,了解面试者事项分类、优先级处理能力、以及找问题、分析问题、解决问题的能力 。如果找出问题的能力都没有,更别谈分析问题、解决问题的能力 。这种情况,招过来的可能性麻烦:不会去微创新、解决问题、提升效率,只知道瞎忙、每天把自己累的半死,日复一日,团队无成长 。
    • 接触的新技术、新知识、新流程玩法,老大的管理风格,用文字的形式记录下来,并思考总结,变成自己的知识,融会贯通,应用于工作中 。
    • 多写,多分享,多用文字记录自己的成长过程 & 学习成果
    • 问题定位能力
    • 问题跟进能力
    • 严谨的思维
    • 问题归类总结能力
    • 自驱动、学习能力
    • 常见的比较考验综合能力的几个面试问题:
    1. 一分钟时间,阐述自己的整体优势
    2. 你平时的学习渠道有哪些
    3. 遇到问题的解决思路是哪些
    4. 阐述你工作中主要负责的内容
    5. 从开发代码提交,整个后续流程是怎样的?
    6. 你认为自己需要自己的是哪些?
    7. 如果让你评价这次面试,你给自己打多少分?
    • 如果是我,肯定会通读所有的现存文档、分析历史所有Bug、玩熟现有业务。
    二、准备好Boss直聘上的在线&附件简历
    三、重点复习自己简历上写的技术技能
    1. 软件测试理论、方法
    2. Python、Java
    3. Linux基本命令、Xftp、Xshell
    • Linux 远程登录
    • Window 系统上 Linux 远程登录客户端有 SecureCRT, Putty, SSH Secure Shell 等
    • 常用命令:
      • chown (change ownerp) :修改所属用户与组。
      • chmod (change mode) :修改用户的权限。
      • 使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组
      • ls(英文全拼:list files): 列出目录及文件名
      • cd(英文全拼:change directory):切换目录
      • pwd(英文全拼:print work directory):显示目前的目录
      • mkdir(英文全拼:make directory):创建一个新的目录
      • rmdir(英文全拼:remove directory):删除一个空的目录
      • cp(英文全拼:copy file): 复制文件或目录
      • rm(英文全拼:remove): 删除文件或目录
      • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称
      • grep 在给定的文件中搜寻指定的字符串。grep -i “” 在搜寻时会忽略字符串的大小写,而grep -r “” 则会在当前工作目录的文件中递归搜寻指定的字符串。
      • cat 由第一行开始显示文件内容
      • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
      • nl 显示的时候,顺道输出行号!
      • more 一页一页的显示文件内容
      • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
      • head 只看头几行
      • tail 只看尾巴几行
    • Linux的vi/vim
    • yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
    • XShell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。配置时,需要ip+端口+用户名+密码
    • 在Linux系统如果想要与本机传输文件,可以使用ftp工具,推荐安装与XShell配套的Xftp工具。
    • 也可以使用SSH来远程连接服务器
      ssh user@remote -p port
      ● user 是你在远程机器上的用户名,如果不指定的话默认为当前用户
      ● remote 是远程机器的地址,可以是 IP,域名,或者是后面会提到的别名
      ● port 是 SSH Server 监听的端口,如果不指定的话就为默认值 22
      需要输入密码,成功后就可以操作。
    • 之前是更新项目的文档中心-帮助中心、使用案例、FAQ等一些静态文件
      查看自己写的简书GitBook + Git + PyCharm开发文档中心
    • 27个常用的linux命令
    • su — Switch User
    • ps显示系统的运行进程。
    • kill命令
    • diff命令 功能说明:对比文件差异。 举 例:diff 123.txt 456.txt
    • echo命令 功能说明:标准输出命令。 举 例:echo "this is echo 命令"
    • netstat 功能说明:查看网络端口的使用情况
    • hostname命令 功能说明:查看主机名
    • 修改主机的hostnamesudo scutil --set HostName Lishan-MB
    • linux工作实战中的常用命令
    4. Postman
    5. HTTP、JS
    6. MySQL、Navicat
    7. SVN、Git

    测试会使用到的基本命令

    8. F12、Fiddler
    9. BUG管理工具 tapd、jira、禅道、wiki等

    只关注之前所在项目时的使用的那个即可

    四、面试时会问的一些非技术性的问题
    1) 一分钟自我介绍,说一下技术优势,还有哪方便需要提升?
    2) 简述一下你所负责的项目,主要职责?
    3) 为什么从上一家离职?
    4) 给你一个项目怎么测?

    (以下是我的回答,有不妥的地方大家自行修改)
    不管是新项目还是已上线的,我一般是通过各种方法了解熟悉项目(需求文档、产品设计、以往同事写的文档,历史bug,dev环境多操作几遍)。熟悉的过程会以笔记或者Xmind脑图的方式记录。之后就开始细化自己所负责的模块。有任何疑问会以excel的方式记录,找准时间,让同事帮答疑。需求熟悉后,就要开始编写测试点或者测试用例(核心主路径、功能测试、UI测试、安全测试、兼容性测试、性能测试等),然后进行用例评审,再之后就是执行测试,输出测试报告,上线后的回归测试,总结复盘,并推动负责人落实改进。

    5) 遇到问题如何解决,解决思路是什么,若解决不了该怎么办?

    (以下是我的回答,有不妥的地方大家自行修改)
    可分为:技术问题,产品业务问题,还是一些部门沟通问题。
    若是技术问题,我会先自己先在网上找答案,若花20分钟还没有头绪,就会咨询身边的技术同事。
    若是产品业务问题,自己也会先查找以往文档,聊天记录,会议记录,若还解决,就联系相关的产品同事。
    若是跨部门的问题,我就需要整理出当前问题发生背景,发生原因,若解决需要谁配合等,整理好后发给我直属领导。带着解决方案反馈给领导,让领导做选择题,而不是找领导要答案。

    6) 学习能力?

    (以下是我的回答,有不妥的地方大家自行修改)
    自我提升,永远保持在学习的路上,带着目的去工作和学习。

    1. 问题定位能力
    2. 问题跟进能力
    3. 严谨的思维
    4. 问题归类总结能力
    5. 自驱动、学习能力
    7) 你还有什么想问的吗?

    如果我有幸进入公司,我所面试的这个岗位,我还需要提升哪些技能?对我的期望是什么?

    8) 为什么没有对象/结婚?

    我每次都会被问到,囧

    9) 你的学习渠道有哪些?国内有哪些技术站点?行业类的微信公众号?

    关注一些行业活跃着的blog、菜鸟教程、公众号、TestHome测试之家、CSDN、51Testing、简书、SegmentFault等等

    10) 公司团队架构是怎样的,测试流程是怎样的,你认为规范的流程是?

        我所接触的就是:项目经理、产品、设计、开发、测试、运维
        => 构思产品=> 需求采集=> 交互设计=> 需求评审=> 项目经理排期=> 软件开发=> 产品验收=> 确认提测=> 软件测试=> 产品灰度体验=> 正式发布=> 运维

    五、整理自己电脑上的所需软件

    python、pycharm、postman、fiddler、soapui、git、weterm、Xshell、Xftp、mysql、navicat、印象笔记、xmind、sublime、腾讯文档、chrome、firefox、outlook、switchhosts

    六、检查简历上我三个社交网站更新情况
    七、百人计划,温习一遍

    去年参加的课程。

    八、看一遍自己笔记里每日TodoList(2016年至今)

    好记性不如烂笔头,多对自己有这个好习惯,这样复习回忆之前的项目会比较快狠准。

    九、Boss上回复HR信息,寻面试机会(先过学历这一关)

    只要有面试机会,就参加(现在面试大多是电话、腾讯会议等面试,可忽略来回的路程),在面试中了解自己的不足和当下大多公司多需要的技能。

    十、面试(电话、腾讯会议、WeMeeting、面对面)
    (1) 首先自我介绍一下吧!

        可以从以下几点来介绍(大概3分钟以内):毕业时间、从事互联网行业时间、技术优势、沟通能力、文档总结能力、问题推动能力及闭环意识、学历力。

    (2) 所负责的项目、担任的职责,通过自己让项目达到什么效果?
    (3) 怎么评判一个项目是符合上线要求的,从哪些特性分析?
    1. 验收标准
      (1) 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。
      (2) 在验收测试中发现的错误已经得到修改,各级缺陷修复率达到标准
      (3) 所有测试项没有残余紧急、严重级别错误。
      (4) 需求分析文档、设计文档和编码实现一致。
      (5) 验收测试工件齐全(测试计划、测试用例、测试日志、测试通知单、测试分析报告,待验收的软件安装程序。)
    2. 缺陷修复率标准
      (1) 紧急、严重级别错误修复率应达到100%;
      (2) 普通级别错误修复率应达到95%以上;
      (3) 优化级别错误修复率应达到60%以上;
      注:项目紧急时,普通级别错误修复率达60% 以上;优化级别错误修复率达20% 即可。
    3. 服务器运行状态响应指标
      (1) cpu% 并发期间最大使用率应不超过70-80%,如有集合点并发可允许短暂接近或到达100& 但大部分不应查过95%;
      (2) memery 测试期间保证内存充足可用内存不少于20%;
      (3) disk 监控硬盘是否有读写不超过40%;
      (4) cpu load average 不应超过cpu 核心数*2 或者不超过cpu 核心数。
    4. 软件性能指标
      (1) 响应时间(并发下的响应时间)
      不同页面浏览时的响应时间、点击注册用户时的响应时间、登录时的响应时间、搜索功能响应时间、项目特殊功能响应时间。
      事物的响应时间又分为最大响应时间、平均响应时间、最小响应时间(验收可忽略此数) 、90%响应时间。如为B/S 项目可设定验收标准为最大响应时间不超过20s、平均响应和90%响应不超过10s。如为c/s 项目(手机客户端) 可设定为最大响应时间不超过30s、平均响应和90%响应不超过15s(因为手机网络相对较慢,可以适当加大响应时间)。
      (2) 测试中事物通过率:
      一般web 项目通过率为3 个9,设定验收标注为各个事物通过率为99.9%。
      (3) 系统能支持的用户量
      需要先评估上线后会有多少注册用户和活跃用户
      (4) 吞吐量应与hits tps 等数据成正比且波动较小
    (4) 给你一个纸杯怎么测试?

    【针对整体的事务或系统】
    a. 先描述(理清)功能点,同时给自己一定的思考时间;

    • 纸杯,主要功能是用来装水、端水、喝水的。那么首要是要覆盖其功能。

    b. 根据系统测试的主要类型来分析要测试的内容:

    1. 首先从功能层面来说
      ● 要测试水杯是否能够装水
      ● 测试水杯能否用手拿
      ● 测试水杯是否让人喝到水
    2. 其次从 UI 层面来说
      ● 水杯的外观是否美观
      ● 水杯上的 log 配色是否合理
      ● 水杯上的文案是否合理,是否有错别字
    3. 再次从性能(可靠性、稳定性)方面来说
      ● 水杯能装多少度的水
      ● 水杯装多久能保证不发生渗漏
    4. 再从安全性方面来说
      ● 水杯表面的涂层是否会释放有毒物质
      ● 水杯的边缘是否会割伤嘴唇
    5. 再从兼容性方面来说
      ● 除了装水是否还能装可乐、啤酒、咖啡等
    6. 最后从易用性方面来说
      ● 水杯是否适合抓握
      ● 是否方面喝水
    (5) 设计用例:用户必须达到钻石会员且积分>=5000的用户才能领取。领取时间4月2日早上10:00,数量100张,领完为止。

    【根据局部功能】这种局部需求,说什么兼容性、易用性等就没多大意义啦。更多的是要分析这个需求,提取需求中的关键词。关键字如下:会员等级、积分要求、领取时间、剩余优惠券情况

    1. 针对会员等级:
      测试用户为钻石会员及以上会员的情况
      测试用户为钻石会员以下的情况
    2. 针对积分要求:
      用户的积分 > 5000、用户的积分 = 5000、用户的积分 < 5000
    3. 领取时间:
      时间未到、领取时间、时间结束
    4. 剩余优惠券情况
      有剩余、剩余为0
    5. 其他场景:
      会员等级为钻石会员、积分为5000、且在领取时间内,并且有剩余的情况,能正常领取。
      会员等级为钻石会员、积分大于5000、时间未到,不能领取。
      会员等级为钻石会员,积分大于5000、在领取时间内、剩余为0,不能领取。
      会员等级为钻石会员,积分大于5000、领取时间结束,不能领取。
      会员等级为钻石会员,积分小于5000,不能领取。
      会员等级为普通会员,积分为5000、且在领取时间内,并且有剩余的,不能领取。
    6. 再加上一些特殊的情况:
      优惠券余1时,多人同时领取
      时间刚到10点时,能否领取
    (6) Python如何去调用Linux命令

    我们想要Python能够调用Linux系统命令,也就是Python与Linux系统交互,要么需要使用os库。

    • 1、 os.system() #只得到命令成功与否的执行状态
      2、 os.popen #通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。但是无法读取程序执行的返回值
      3、 commands.getstatusoutput() && commands.getoutput()
      • commands.getstatusoutput() 既可以输出执行成功与否的状态,也会输出执行结果
      • commands.getoutput() 只输出执行结果

        4、 subprocess子进程(功能强大,最常使用的方式)

    (7) Linux的操作:从日志中搜索出某关键字然后重定向到另一个文件

    1、 从日志中搜索出某关键字

    • a) 单个文件可以使用vi或vim编辑器打开日志文件,使用编辑器里的查找功能。在查看模式下,符号/后面跟关键字向下查找,符号?后面跟关键字向上查找,按n查找下一个,按N查找上一个。
    • b) 多个文件可以使用grep命令,比如 grep ERROR /var/log/messages*。会把匹配到ERROR这个关键字的行和所在的日志文件直接输出到屏幕。

    2、重定向

    • 命令 > 文件,将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。
    • 命令 2> 文件,将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,会清空原有数据,再写入新数据。
    • 命令 >> 文件,将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。
    • 命令 2>> 文件,将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,新数据将写入到原有内容的后面。
    • 命令 >> 文件 2>&1 或者 命令 &>> 文件,将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。

    查询到关键字:grep 关键字 文件路径
    重定向到指定文件:命令 > 文件
    则面试的问题回答是:grep 关键字 文件 >> 文件
    eg:grep guanjianzi linuxtest00001 >> lishan002

    (8) HTTP协议,常见的状态码?
    (9) 简单写代码,实现数字的大小排序?
    (10) 怎么区分一个bug是前台还是后台?
    (11) 若发现一个问题,开发不认为是一个bug,怎么解决?
    (12) 若发现一个体验性问题,该怎么去督促开发解决?
    (13) 感情or婚姻状况?
    (14) 怎么看待外包?
    (15) 若发现一个问题,日志是warning,可以降低bug等级到debug,输出日志?
    (16) 印象比较深的bug?
    (17) 给你一个项目,你该怎么去测试?

    上面准备时有写过这个问题

    (18)之前的自动化是用什么语言写的,有没有使用python进行实战?
    (19)一部电梯怎么测试,说出测试点?
    • 按钮指示灯:按压上下按钮指示灯是否亮
      电梯门开关:按压上下按钮电梯门在当前楼层是否能打开
      按向上按钮:电梯是否关门且向上面楼层方向走
      按向下按钮:电梯是否关门且向下面楼层方向走
      当电梯门没有关上:按开电梯门按钮,门是否开
      当电梯门没有关上:按关闭电梯门按钮,门是否关闭
      电梯内:按各个楼层,对应的指示灯是否亮
      电梯内报警装置:报警装置是否正常
      电梯内通话设备:按通话按钮能否接通外界
      电梯内灯光:电梯内灯光是否亮,是否有无损坏
      电梯内通风:是否通风
      按各个楼层按钮:是否到当前楼层停止并开门
      当超过最高重量:电梯是否报警打开电梯门,直到小于最高承重
      电梯当前楼层是否和电梯内显示屏楼层一直
      显示屏内是否有当前楼层,当前向上或者向下箭头,且与当前操作一致
      电梯门超过规定时间未关门是否会有报警提示
      上下按钮是否控制一个电梯或者两个电梯的开关门,如果控制两个电梯,按向上或者向下按钮,另一个电梯是否受控制
      电梯是否分单双层?
      在单层电梯情况下,按双层电梯,对应双层电梯数字是否亮,是否会到这一层
      在双层电梯情况下,按单层电梯,对应单层电梯数字是否亮,是否会到这一层
      电梯限层:按超过限层的电梯层数,数字是否亮,是否会到这一层
      双击某楼层:是否会取消这个楼层且楼层灯灭
      假如我在9楼,有人先按12楼,有人后按1楼,此时电梯是否先上12楼,再下1楼?
      电梯感应:有人或者物体在门中间卡着,门是否会关闭,是否会有警铃提示?
      电梯到达指定楼层是否有声音提示?
      电梯是否刷卡:刷卡的电梯,如果没有刷卡是否能选楼层
      维修开关:电梯内是否有维修开关
    (20)面试官简单介绍某项目某功能,让说出测试点

         基本上是讲述他所在项目的。

    (21)Python实现:输出随机字符串中每个字符的个数?
    import string
    from random import choices
    s = ''.join(choices(string.ascii_letters + string.digits, k=1000))
    print("string: ", s)
    char_count = dict();
    for i in s:
        char_count[i] = char_count.get(i, 0) + 1
    print(char_count)
    
    (22)。。。待更新
    十一、根据面试中的问题重点提升
    • pycharm
    • python函数
    • 算法思路
    • linux常用命令的组合使用
    • 多参加一些专业活动论坛,与时俱进

    相关文章

      网友评论

        本文标题:软件 自动化测试工程师 面试前准备 个人总结(非官方)

        本文链接:https://www.haomeiwen.com/subject/zvkmzltx.html