首先我来解释一下为什么说是全网最真实的面试题,相信大家也发现软件测试面试题在网上流传也已不少,但是经过仔细查看发现了两个很重要的问题。
第一,网上流传的面试题的答案并不能保证百分百正确。也就是说各位朋友辛辛苦苦花了很多时间准备的面试题,很可能最后的答案却错误的。
第二,网上流传的面试题有的存在过时性。这就造成了一种悲剧,自己辛辛苦苦准备的面试题用人单位不考,而用人单位出的面试题,自己却没有准备到。
这里准备了一份面试30+题(纯手码)仅供参考。
这些面试题,来自于一些朋友2022年从企业带回的面试真题,确保了及时性。
每一道面试题都会有详细的答案阐述,都由负责就业的讲师亲自撰写,确保答案百分百正确。
PS:文章最后会附赠2021和2022软件测试面试宝典(放在文末)。预祝你自学成功。
1、自我介绍
体现个人工作经历-几家公司、公司类型、测试项目类型(业务类型、技术类型B/S C/S /APP H5、微信小程序、公众号)
体现个人技能水平-独立组织策划过项目版本的完整测试过程,UI、接口自动化测试
体现个人对于测试的理解
预期或则规划
举例: 面试官您好! 我叫尼古拉斯•赵四,今年26岁,来自南洋马来西亚。 18年毕业于五道口职业技术学院计算机与计算科学专业,毕业后一直从事软件测试行业,目前有3年工作经验。 之前一直在北京鑫茂科技有限公司工作,在这3年中我测试过新闻类、社区类、电商类、OA\ERP类、旅游类,餐 饮类项目、彩票类等类型的项目,熟悉各种WEB端与APP端测试,目前熟悉功能测试与自动化测试。(boss直聘沟 通用语:如果贵公司还在招聘测试工程师,可以进一步沟通) 我最近的一个项目就是慧敏商城,是一家综合性网上购物平台销售家电、数码通讯、电脑、家居百货、服装服饰、 母婴、图书、食品等数各种品牌优质商品.其中有有登录注册,商品分类,购物车,品牌分类,热门搜索等模块, 在这个项目中我负责我的模块、购物车模块、商品分类、品牌分类模块、商品管理模块、权限管理模块,我们项 目前期做功能测试,后期我主要编写一些自动化的代码。
2、给你一个网站你如何开展测试工作?
①:首先查找需求说明、网站设计等相关文档,分析测试需求 ②:制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测,试界面测试,性能测试,数 据库测试,安全性测试,.兼容性测试 ③:设计测试用例: - 功能性测试可以包括,但不限于以下几个方面:链接测试;链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等;提交功能的测试;多媒体元素是否可以正确加载和显示;多语言支 持是否能够正确显示选择的语言等 - 界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观。页面布局是否合理,重点内容和热点内容是否突出。控件是否正常使用。对于必须但为安装的空间,是否提供自动下载并安装的功能。文字检查。 - (最后补充)性能测试一般从以下两个方面考虑:压力测试,负载测试,强度测试 。 - 数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。 - (最后补充)安全性测试:基本的登录功能的检查;是否存在溢出错误,导致系统崩溃或者权限泄露;相关开发语言的常见安全性问题检查,例如 SQL 注入等;如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持。 - (最后补充)兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性。 ④:开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容) ⑤:定期评审,对测试进行评估和总结,调整测试的内容。
3、没有需求文档,你会如何执行测试?
假如没有需求文档我会从以下一些方面着手: 1.根据客户的功能点整理测试需求追朔表 2.根据开发人员的Software Specification List整理我们的功能测试点 3.开展项目跨部门讨论会 4.测试人员整理用例需求疑问递交项目组和客户代表回复 5.项目内部用例评审 6.邮件和客户代表确认部分争议问题 7.项目Demo和部分已开发系统 8.参考同行业和竞争对手的类似产品 9.交叉模块的测试要注意 10.咨询客户部分需求疑问
4、给你一个物件(花瓶、笔、桌子、水杯)你怎么测试?
(1)问题分析:
无论是哪个物件,都从以下几个维度出发设计:
1、功能
2、UI
3、易用性
4、性能
5、安全
6、接口
7、兼容性
8、可移植
…也可以适当缩减和增加
(2)参考回答:
给你一个杯子你怎么测,至少写出20条测试用例 1.功能测试: 主要关注水杯基本功能 1.1 水杯是否可以正常装水 1.2 水杯是否可以正常喝水 1.3 水杯是否有盖子,盖子是否可以正常盖住 1.4 水杯是否有保温功能,保温功能是否正常保温 1.5 水杯是否会漏水,盖住盖子拧紧后是否会漏水 2.ui测试: 主要关注水杯外观、颜色、设计等方面 2.1 外观是否完整 2.2 外观是否舒适 2.3 颜色搭配及使用是否让人感到舒适 2.2 杯子外观大小是否适中 2.3 杯子是否有图案,图案是否易磨损 3.易用性测试: 主要关注水杯使用是否方便 3.1 水杯喝水时否方便 3.2 水杯拿起放下是否方便,这里会衍生到水杯形状的测试 3.3 水杯装水是否方便 3.4 水杯携带是否方方便 3.5 水杯是否有防滑功能 3.6 水杯装有低温或者高温水时,是否会让手感到不适 4.性能测试: 4.1 水杯装满水时,是否会漏出来 4.2 水杯最大使用次数 4.3 水杯的保温性是否达到要求 4.4 水杯的耐寒性是否达到要求 4.5 水杯的耐热性是否达到要求 4.6 水杯掉落时,是否可以正常使用 4.7 水杯长时间放置时,是否会发生泄露 5.安全性测试: 主要关注水杯外观和各种异常条件下是否释放有毒物质等 5.1 当水杯装满热水时,水杯是否会烫手 5.2 当水杯装上水后,是否会产生有毒物质 5.3 把水杯放在零下环境时,是否会产生有毒物质 5.4 把水杯放在高温环境时,是否会产生有毒物质 6.接口(杯子没有想到怎么和接口关联起来) 7.兼容性测试: 主要关注水杯是否可以装其他液体,如果汁、汽油、酒精等 8.可移植性测试: 主要关注水杯放置环境等 8.1 将水杯放在常温环境中,使用是否正常 8.2 将水杯放在零下的环境中,使用是否正常 8.3 将水杯放在高于正常温度的环境中,使用是否正常
5、多久做一次版本迭代?如何进行回归测试?
一般分大版本和小版本,大版本主要是产品规划的新功能、新业务, 小版本主要是一些历史功能优化和缺陷修复版本。大版本一般2-3个月一次。小版本每周都会有。 1、缺陷回归:触发缺陷查看缺陷是否已经修复; 2、历史功能回归:跟项目经理以及开发确认本次版本迭代影响的功能范围,对于影响的功能范围以 及核心业务流程、关键点,挑选正向的用例进行回归测试;同时利用版本迭代的空闲时间,对历史功能回归测 试实现UI自动化
6、在测试过程中有没有发现过让你记忆犹新的BUG?
这个问题不一定难,重点体现真实 问题描述:购物车合计金额和订单的商品合计金额偶尔出现相差0.01 需求描述:基于商品合计金额结果四舍五入 购物车合计金额 = sum(购买量 * 单价 * 会员折扣率) 订单的合计金额 = sum(购买量 * 单价 * 会员折扣率) + 物流费 - 优惠券 - 积分抵扣 分析问题: 找到对应购物车研发人员确认其计算的方式,每次计算完一个乘法四舍五入 订单的开发人员计算方式是乘法计算完之后再对于最终结果进行四舍五入,导致偶尔出现相差0.01的情况 解决方式:找产品确认最终确认进位方式 这里就提供一个,大家在实际学习过程中也会遇到一些缺陷。可以进行记录和分析。
7、提交了一个缺陷开发不认为是缺陷你会如何处理?
个人在以前的测试过程中,很少出现这种问题。一般情况下我提交缺陷前都会反复的确认,也会尽量的保障缺陷额有效率 和清晰度。如出现该情况,首先我会找到对应的开发人员,询问对方拒绝或不认为是缺陷的理由。如在对方的描述过程 中发现明显的问题,且有明确的证据情况会摆明需求甚至当场重新给其确认。如在其阐述理解的过程中,没有问题,或者 说其在对于需求的理解中也没有明确的错误,那证明对于需求的理解出现的了歧义,直接找产品或项目经理确认达成共 识即可。当然也可能是其它原因导致缺陷的无效,例如垃圾数据、环境问题等,这些情况一般出现很少,一般在我测试 过程中对应的测试数据我都会保障其有效性,环境问题也不多,就是有时候测试的版本可能不是最新的代码,一般情况下 我们的测试团队每天测试开始前,都会去更新最新的代码来进行测试,但是不能避免有最新更新,这块实时多同步下即可。
8、测试时间不够了,项目又必须上线,你会如何处理?
这里测试时间不够了,可能导致原因有很多,如开发或缺陷修复质量不高,导致无法顺利执行测试。第二需求的变更导 致计划控制不合理等等,但是不管那种原因,客观时间不够了是事实。那我的话一般会做如下方式来进行处理:第一,迅 速盘点剩余测试工作量,是否可以通过加班或协调资源的解决问题,保障项目上线。第二,是否可以根据项目各个模块的 现有测试情况来调整原有测试计划的分配工时,如部分模块无较大问题,是否在风险可控的情况减少测试工时,第三,是否 可以借调产品和开发分摊部分简单的测试任务,第四,原有复杂的业务功能是否有替代上线方案,第五,是否可以占用部分 产品验收时间,第六,是否可以裁剪部分功能
9、如何保障测试用例的覆盖率?
1.编写测试用例前,先熟悉项目,看看相关需求文档是否有问题(功能描述不清,设计逻辑缺陷),如 有问题找相关设计或者开发问清楚。 2.采用测试用例设计方法:如判定表、等价类、边界值、流程图等 3.组织用例评审,进行查漏补缺
10、生产环境中有没有出现比较严重的问题?如果有的话有什么的方法可以降低带来的风险?
1.在之前的项目测试经验中,线上暂时没有出现过比较严重的问题。 2.如果出现严重的缺陷的话,我会思考一下的一些问题,看是否能降低风险: a.第一:先确认导致问题出现的原因,如果是代码逻辑错误,证明漏测-则需要加强测试力度、加强测试用例评审力 度 b.第二:如果是遗漏代码,测试后提交,加强代码封板把控,而上线前必须同步最新代码,测试确认。 c.第三:如是需求实现错误,加强需求评审力度。 d.第四:采用灰度上线,大型版本先只对部分用户开放,稳定后再全面升级。
11、你们有多少个测试环境,分别有哪些?
之前的项目中有三个测试环境三个, 测试环境,回归环境,预发布环境 测试环境,也就是我们测试同学干活的环境啦,一般会由测试同学自己来部署,然后在此环境进行测试。bug修复后,需 要发版更新测试环境来回归bug。 回归环境,回归bug的环境,其实就是我们的测试环境,在测试环境上测试、回归验证bug。 预发布环境,测试环境到生产环境的过渡。测试环境可能会受到一些限制,一些流程或者数据没有测试到,就可以在预 发布环境进行验证,从而保证产品上线质量软件测试环境包括硬件环境和软件环境,
12、有没有部署过测试环境,简单的描述下如何部署的?
有! 在之前的项目中,我们的系统使用的应用服务架构是:Linux+Nginx+Tomcat+Mysql。 在进入测试前,开发已经将整套的服务器架构都已经搭建好,所以对应的中间件和工具环境不需要再重新部署。当时我 去部署的过程,主要是更新一些新的测试版本。会从git上面获取到开发的源代码到我的本地电脑,并使用开发提供的编译 打包命令,进入到源码所在路径,执行mvn clean install即可获取得到一个可部署的源码包,(TARGET)**(可以自己起 名,例如叫自己的项目的英文缩写).war文件。 通过SSH远程连接工具MobaXterm将源代码上传到Linux测试服务器。停止 测试环境tomcat服务,备份原测试war包。将刚上传的.war移动至tomcat指定的项目部署目录webapps,重启通过 tomcat/bin目录下的startup.sh启动服务器。最后到本地机器访问测试域名地址,如能成功访问则代表部署成功了。 另外我还了解过jenkins可以执行持续构建部署方式.如有需要可以进行简单运用。
13、了解哪些网络协议,简单描述一下区别?
在之前的测试工作中主要是测试https和http协议,当然简单了解过TCP协议: 1、https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协 议,比http协议安全。
14、常见的响应状态码有哪些?分别表示什么含义?
2开头:2xx (成功)表示成功处理了请求的状态代码;如:200 (成功) 服务器已成功处理了请求。 3开头:3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。如:304 (未修改) 自从上 次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容 4开头:4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理;如:400 (错误请求) 服务器不理解请求 的语法;403 (禁止) 服务器拒绝请求。404 (未找到) 服务器找不到请求的网页。 5开头:5xx(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错 误,而不是请求出错;如:500 (服务器内部错误) 服务器遇到错误,无法完成请求。
15、系统出现500或白屏,你会如何分析问题?
查看系统服务器资源是否占满:磁盘、内存 2、通过查看磁盘占用状态:df -h;通过写入缓存信息,导致硬盘空间不足; 3、查看内存的使用情况:top - 内存泄漏:由于开发编写代码过程对于已经分配内存资源使用完毕之后,并不释放内存的资源,导致后面同样业 务处理所占用内存足部累加,最终导致内存不足。 - 内存溢出:现有空闲内存不足以提供服务器处理客户请求。 作为测试需要定位信息: 基于内存泄漏,需要找到占用了资源而不释放具体使用功能是哪个,然后基于功能找到请求地址
16、Fiddler主要用来做什么?如何分析抓取的数据信息是正确的?如果是加密的内容你怎们处理?
1、分析缺陷是前端的问题还是后端的问题。 例如:提交订单的请求地址: ① 界面组织提交订单商品数据,点击【提交订单】,触发发送请求 ② 后台代码进行处理,处理完成之后,返回订单相关数据。返回的数据由开发者来决定(需求来决定到底返回哪些数据) 订单编号、订单金额 例如订单金额在界面显示错误,抓取提交订单响应数据,查看接口返回信息中订单的总额是否是正确。如果接口中订单总 额正确,则是前端的问题,如果是响应信息中订单总额是错误,则是后端的问题。 2、前端对于输入信息做了对应限制,不代表后端代码也做了限制,每个请求地址对应懂IT的人的来讲都是能够直接跳过 前端页面进行操作的。验证后端对于异常输入的是否也有做对应限制。 3、接口测试测试每个请求的实现情况。部分公司的开发没有编写接口文档,则可以通过抓包工具获取到具体接口地址。 4、做手机端弱网测试
17、有没有做过弱网测试,简单的说下?
我会让PC端和移动连上相同的网络,Fiddler通过代理连上手机,PC端通过Fiddler工具的选项卡Con nerctions设置Fiddler监听端口为8888,移动端修改网络设置将IP地址和端口设置为电脑的IP地址和Fiddler的中的 端口号,安装Fiddler证书。移动端就可以打开要进行弱网测试的网页或者APP,Fiddler会自动获取相关的地址,通过 修改customRuler.js文件里的m_SimulateModem的参数来模拟弱网,从而就可以执行弱网测试了。
18、Fiddler如何抓取苹果手机包?描述下过程?
基于苹果手机抓包: 1、在Fiddler配置项中要设置勾选抓取HTTPS,自动下载HTTPS证书 2、开启网络服务监听端口:勾选Allow remote computers to connect,端口号可默认为8888 3、打开iphone浏览器,在地址栏输入http://ip(电脑的ip):8888(fiddler中默认的端口),点击 “FiddlerRoot certificate”安装证书 4、设置iphone代理:手机连接wifi后,打开wifi详情,滑动至屏幕底部的http代理,点击进入修改成“手动”, 设置ip(电脑的ip)及端口(fiddler中的8888)后保存启用证书方法:设置——通用——关于本机——证书信任设置
19、用过哪些类型的数据库,关系型数据库和非关系型数据库有什么区别?
用过MySQL、Orcale了解redis数据库 关系型数据天然就是表格式的,因此存储在数据表的行和列中,数据表可以彼此关联协作存储,也很容易提取数据. 与其相反,非关系性数据不适合存储在数据表的行和列中,而是大块组合在一起,非关系型数据通常存储在数据集中,就像 文档,键值对或者图结构,你的数据集体特性是选择数据存储和提取方式的首要影响因素.
20、如何使用SQL快速插入100000条数据?
DELIMITER // # 使用DELIMITER关键字临时声明修改SQL语句的结束符为// create procedure test() # 创建存储过程 begin declare i int default 0; # 声明一个默认值为0的局部变量i while i<100000 do # 开始循环 insert into books(name)value(“test”); # books是表名, name是字段名 test是字段值 set i=i+1; # 使用set为参数赋值 end while; end // DELIMITER ; # 将结束符重新定义回结束符为";" call test(); # 调用函数
21、看你简历对app测试有很丰富的经验,请问常见的adb命令有哪些?口述10条以上
(1)问题分析 考官主要考察在工作项目中常操作的ADB命令 (2)核心问题讲解 1、 adb –help/adb:看见帮助信息 2、 adb start-server:启动adb服务 3、 adb kill-server:关闭adb服务 4、 adb shell getprop ro.build.version.release:获取系统版本 5、 adb push: 从电脑端发送文件等到手机 6、 adb pull:从手机端发送文件等到电脑 7、 adb shell: 进入shell 命令行,可以操作linux命令 8、 adb shell dump window windows|grep mFocusedAPP:获取包名 9、 adb shell dump window windows|grep mFocusedAPP:获取启动名 10、 adb install 路径/apk文件:安装apk到手机上 11、 adb uninstall 包名:卸载APP从手机上
22、看你简历也是2年经验的老测试了,知道什么是性能测试?什么是负载测试?什么是压力测试?
Ps:了解就行,面试不建议说做过,就说公司只做功能与自动化。 性能测试:通过自动化的测试工具模拟多种正常,峰值及异常负载条件来对系统的各项性能指标进行测试。 负载测试:确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。 压力测试:通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。 性能测试在产品相对稳定,功能测试完成后。灵活度较强的。
23、使用ABD如何连接手机?冷热启动如何测试的?你们的app启动时间多长?
用Adb有两种连接手机的方式,在测试过程中,各有优缺点吧。 一种是用USB连接 优点:插上就可以连接,延迟低。 缺点:需求借助USB线来连接,做兼容的自动化测试的时候比较麻烦 1.会在手机上打开开发模式,启用USB调式。
2.USB线连接手机和电脑 3.在cmd窗口输入 adb devices(手机上会有一个提示:是否允许此电脑进行调试,确认) 另一种是用WIFI连接 也有优点:使用无线连接,做自动化的时候可以远程运行 缺点的话:需求借助网络,延迟高,速度略慢(并没有感觉到) 1.先用USB连接手机和电脑 2.在cmd窗口输入 adb tcpip 5555 3.拔掉USb线 4.查看手机IP地址 或者直接在CMD窗口输入命令 adb connect IP:5555 冷启动:当进程不存在的时候,从进程创建开始到界面的展示的过程; 热启动:大部分资源都在,只是应用之间的切换; adb shell am start -W 包名/界面名 冷启动:需要1秒甚至更长; 热启动:需要<0.5秒;
24、面试官问:IOS的测试包是如何发布的?
这个情况较多 1、 最麻烦的一种,开发打包的时候把测试机的uuid等相关信息打包到APP中,然后利用itunes把APP安装到手机里。这种 效率低。 2、 苹果官方软件测试平台TestFlight 用法:https://www.jianshu.com/p/4be185e4069c 3、 使用最多的一种,开发打包,上传第三方应用平台,然后生成一个二维码,手机直接扫面二维码安装程序,这个用 的最多的。 a) 例如:蒲公英:https://www.pgyer.com
25、看你简历对app测试经验丰富,请问手机客户端APP常见错误点是什么?如何测试?
资源释放,网络,内存 易发生在启动、关闭APP,横竖屏切换,基站切换 可考虑将所有可打开功能均打开,进行横竖屏切换操作。在各种网络(电信,移动,联通,WiFi)覆盖和场景(地铁,公 交,室内,室外)覆盖下测试。Ps:网络可以切换测试,对应的电话卡就行。场景测试的少,基本都是办公室测试。
26、Fiddler如何抓取苹果手机包?描述下过程?
基于苹果手机抓包: 1、在Fiddler配置项中要设置勾选抓取HTTPS,自动下载HTTPS证书 2、开启网络服务监听端口:勾选Allow remote computers to connect,端口号可默认为8888 3、打开iphone浏览器,在地址栏输入http://ip(电脑的ip):8888(fiddler中默认的端口),点击 “FiddlerRoot certificate”安装证书 4、设置iphone代理:手机连接wifi后,打开wifi详情,滑动至屏幕底部的http代理,点击进入修改成“手动”,设 置ip(电脑的ip)及端口(fiddler中的8888)后保存启用证书方法:设置——通用——关于本机——证书信任设置
27、上家公司做性能测试么?哪里用到了性能测试?
这里做接口性能。使用jmeter。(如果遇相关性能就说公司不做性能测试就行,以下答案可勉强满足面试官的小欲望) 我们公司之前商城里有个一个限时抢购的功能,做过性能测试,通过jmeter做抢购接口的QPS测试,通过jmeter的 Constant Throughput Timer与聚合报告一起(需要了解聚合报告的各项参数代表什么)。
28、你们产品迭代时是如何进行测试的?
一、迭代开始之前 UI和测试需要过需求,了解迭代需要做哪些功能,有没有功能缺失的地方 二、迭代开始时 1、前期准备 进行需求宣讲-由产品将需求和这期需要做哪些功能,都是什么样的进行讲解。之后每个人进行需求反讲,将需求中有 遗漏缺失的地方再次补充完整。 开发拆分模块,把每部分代码提交的时间节点定下来(即上文项目整体计划排期) 测试根据开发定的时间节点确定哪天开始测试,每部分功能需要测试多少 时间进行时间规划,包括上线的时间全部 定下来 2、中期开发 在开发开始写代码时,测试需要做好测试计划,将test case写完,写完之后进行用例评审,查缺补漏。做好测试计划 后,通知给相关人员,包括上级,根据时间点,管开发要成果物 下次迭代的内容有可能在这个阶段进行需求评审 进入rc(RC=Release Candidate,含义是"发布候选版") 迭代进入rc之后,测试开始测试 对于修改bug的时间需要算在测试时间内,每天都要确定开发改bug的时间节点,如果时间溢出,需要说明原因为什么 溢出,不是为了追究责任,而是要总结原因,可以提高效率。 测试至少需要三轮才可以上线 在开发改bug时,测试需要配合下次迭代参加需求评审 直到本次迭代上线之后,开启下次迭代。 三、迭代结束(此答案算标准严格流程的迭代)
29、看你简历对app项目非常熟悉。可否针对app的安装功能写出下测试点?
(1)问题分析 考官主要想考察项目中APP的安装功能测试分析 (2)核心问题讲解 安装 1、 正常安装测试,检查是否安装成功。 2、 APP版本覆盖测试。例如:先安装一个1.0版本的APP,再安装一个高版本(1.1版本)的APP,检查是否被覆盖。 3、 回退版本测试。例如:先装一个2.0版本的APP,在安装一个1.0版本的APP,正常情况下版本是可以回退。 4、 安装时内存不足,弹出提示。 5、 安装过程中的意外强开(强行断电、断网、来电话了、查询信息)等等,检查会发生的情况。 6、 根据安装手册操作,是否正确安装。 7、 通过’同步软件’,检查安装时是否同步安装了一些文件。 8、 在不同型号、系统、屏幕大小、分辨率上的手机进行安装。 9、 安装时是否识别有SD卡,并默认安装到SD卡中。 10、 安装完成后,能否正常启动应用程序。 11、 安装完成后,重启手机能否正常启动应用程序。 12、 安装完成后,是否对其他应用程序造成影响 13、 安装完成后,能否添加快捷方式。 14、 安装完成后,杀毒软件是否会对其当做病毒处理。 15、 多进程进行安装,是否安装成功。 16、 在安装过程中,所有的提示信息必须是英文或者中午,提示信息中不能出现代码、符号、乱码等。 17、 安装之后,是否自动启动程序。 18、 是否支持第三方安装。 19、 在安装中点击取消,是否取消了安装。 (3)问题扩展 APP的卸载、更新等功能写出测试点 (4)结合项目中使用 项目中APP的安装功能写测试点
30、看你简历app测试经验丰富,请描述一个app项目,你是怎么做测试的,自动化是如何实现的?
一、APP功能测试: 1、 业务逻辑正确性测试:依据:产品文档->测试用例编写 二、兼容性测试: 1、系统版本:Android:官方版本,定制版本;IOS:官方版本提供 2、分辨率:7201280 10801920 3、网络情况:2G 2G 4G 5G WI-FI 三、异常测试 1、 热启动应用:应用在后台长时间待机;应用在后台待机过程中,手机重启 2、 网络切换和终端恢复:网络切换;中断恢复; 3、 电话信息终端恢复 四、升级、安装、卸载测试 1、 升级测试:临近版本升级(1.0 à1.1);跨版本(1.0 –>2.2) 2、 安装测试:首次安装;覆盖安装(同版本,不同版本覆盖);卸载后安装 3、 卸载安装:首次卸载;卸载安装后再卸载 五、健壮性测试 1、 手机资源消耗:CPU、内存 2、 流量消耗:图片、数据、视频 3、 电量测试 4、 奔溃恢复
31、看你简历有丰富的app次和web测试经验,请总结下app测试与web测试有哪些不同之处。
单纯从功能测试的层面上来讲的话,APP 测试、web 测试 在流程和功能测试上是没有区别的。 根据两者载体不一样,则区别如下: 一、系统结构方面 web项目,b/s架构,基于浏览器的;web测试只要更新了服务器端,客户端就会同步会更新。 app项目,c/s结构的,必须要有客户端;app 修改了服务端,则客户端用户所有核心版本都需要进行回归测试一遍。 二、性能方面 web项目 需监测 响应时间、CPU、Memory app项目 除了监测 响应时间、CPU、Memory外,还需监测 流量、电量等 三、兼容方面 (1)web项目: 1. 浏览器(火狐、谷歌、IE等) 2. 操作系统(Windows7、Windows10、Linux等) (2)app项目: 1. 设备系统:iOS(ipad、iphone)、Android(三星、华为、联想等) 、Windows(Win7、Win8)、OSX(Mac) 2. 手机设备可根据 手机型号、分辨率不同 四、相对于 Wed 项目,APP有专项测试 1. 干扰测试:中断,来电,短信,关机,重启等 2. 弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等) 3. 安装、更新、卸载 安装:需考虑安装时的中断、弱网、安装后删除安装文件等情况 卸载:需考虑 卸载后是否删除app相关的文件 更新:分强制更新、非强制更新、增量包更新、断点续传、弱网状态下更新。 4. 界面操作:关于手机端测试,需注意手势,横竖屏切换,多点触控,前后台切换 5. 安全测试:安装包是否可反编译代码、安装包是否签名、权限设置,例如访问通讯录等 6. 边界测试:可用存储空间少、没有SD卡/双SD卡、飞行模式、系统时间有误、第三方依赖(QQ、微信登录)等 7. 权限测试:设置某个App是否可以获取该权限,例如是否可访问通讯录、相册、照相机等 五、测试工具方面 自动化工具:APP 一般使用 Appium; Web 一般使用 Selenium 性能测试工具:APP 一般使用 JMeter; Web 一般使用 LR、JMeter
因篇幅有限,先列举这些面试题。
最后
为了帮助有需要的朋友在金3银4面试,近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备了一整套软件测试复习面试的刷题以及答案我希望在这里分享的这些面试题能够帮助到正在看这篇文章的那个迷茫的你! 我也就满足了!
内容涵盖:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等 16 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份 PDF 拿下众多大厂的 offer,今天在这里总结分享给到大家!
小编这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录,资料在文末自行拿取哦。
大厂软件测试岗经验分享
通过大数据总结发现,其实软件测试岗的面试都是差不多的。常问的有下面这几块知识点:
第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
第二部分,Linux( Linux基础+Linux练习题)
第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
第四部分,Web测试
第五部分,API测试
第六部分,App测试
第七部分,管理工具
第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
第九部分,Selenium相关
第十部分,性能测试
第十一部分,LordRunner相关
第十二部分,计算机网络
第十三部分,组成原理
第十四部分,数据结构与算法
第十五部分,逻辑题
第十六部分,人力资源
软件测试基础
软件测试的步骤是什么?
如何录制测试脚本?
应该考虑进行如何测试的测试方法
怎样估计测试工作量?
测试设计的问题
当测试过程发生错误时,有哪几种解决办法?
测试执行的问题
测试评估的目标
如何提高测试?
C/S模式的优点和缺点
B/S模式的优点和缺点
Linux
grep和find的区别? grep 都有哪些用法?
查看IP地址?
创建和删除一个多级目录?
在当前用户家目录中查找haha.txt文件?
如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
动态查看日志文件?
查看系統硬盘空间的命令?
查看当前机器listen 的所有端口?
Python
统计python源代码文件中代码行数,去除注释,空行,进行输出?
python调用cmd并返回结果?
冒泡排序
1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
判断 101-200 之间有多少个素数,并输出所有的素数
一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
…
MySQL
你用的Mysql是哪个引擎,各引擎之间有什么区别?
如何对查询命令进行优化?
数据库的优化?
Sql注入是如何产“生的,如何防止?
NoSQL和关系数据库的区别?
MySQL与MongoDB本质之间最基本的差别是什么
Mysql数据库中怎么实现分页?
Mysql数据库的操作?
优化数据库?提高数据库的性能?
什么是数据的完整性?
…
Web
Web测试和app测试区别?
WEB测试环境搭建和测试方法
WEB测试教程
WEB测试要点及基本方法
Web测试页面总结
…
接口测试
什么是接口
如果模块请求http改为了https,测试方案应该如何制定,修改?
常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
描述TCP/IP协议的层次结构,以及每一-层中重要协议
jmeter,一个接口的响应结果如下:
接口产生的垃圾数据如何清理
依赖第三方的接口如何处理
测试的数据你放在哪?
什么是数据驱动,如何参数化?
…
性能测试
你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
服务端性能分析都从哪些角度来进行?
如何理解压力测试,负裁测试以及性能测试?
如何判断是否有内存泄漏及关注的指标?
描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
简述什么是值传递,什么是地址传递,两者区别是什么?
什么是系统瓶颈?
…
selenium
如何开展自动化测试框架的构建?
如何设计自动化测试用例:
webdriver如何开启和退出一个浏览器?
什么是自动化测试框架?
Selenium是什么,流行的版本有哪些?
你如何从命令行启动Selenium RC?
在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
什么是Selenium Server,它与Selenium Hub有什么不同?
你如何从Selenium连接到数据库?
你如何验证多个页面上存在的一个对象?
XPath中使用单斜杠和双斜杠有什么区别?
如何编写SeleniumIDE/ RC的用户扩展?
如何在页面加载成功后验证元素的存在?
你对Selenium Grid有什么了解?它提供了什么功能?
如何从你的Java Class启动Selenium服务器?
Selenium中有哪些验证点?
什么是XPath?什么时候应该在Selenium中使用XPath?
…
计算机与网络
一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
请简述DNS、活动目录、域的概念。
10M兆宽带是什么意思?理论下载速度是多少?
什么是IP地址?
OSI七层网络模型的划分?
TCP和UDP有什么不同?
HTTP属于哪一层的协议?
HTTP和HTTPS的区别?
cookies和session的区别?
HTTP的get请求和post请求的区别?
HTTP1.0和HTTP1.1有什么区别
TCP的连接建立过程,以及断开过程?
客户端使用DHCP获取IP的过程?
写出某个网段的网络地址和广播地址?
…
人力资源
你的测试职业发展是什么?你自认为做测试的优势在哪里?
你找工作时,最重要的考虑因素为何?
为什么我们应该录取你?
请谈谈你个人的最大特色。
一个测试工程师应具备那些素质和技能?
还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
为什么选择测试这行?
如果我雇用你,你能给部门带来什么贡献?
文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群自行领取即可,拿走不谢。