前阵子一位读者告诉我,某位大厂HR给他发了我之前做的面试题答案合集。
这个消息让我开心了一整天,因为这说明我之前做的面试题系列真的能帮助到部分测试同学,也算是侧面得到了一种认可吧。
坚持可是我们程序员家族的优良传统
今天写的这份面试题我之前就整理分享过,但当时有一部分是没有参考答案的。断断续续总有读者来问我要答案。所以今天吃完饭抽空把遗漏的给补上了,分享给出来,希望能帮到大家。
在这里也预祝大家面试顺利!
标签:百度腾讯阿里抖音滴滴京东快手测试开发面试题
开始正文:
排查问题的思路
Q: 页崩溃的原因是什么/strong>
1. 内存泄漏
2. 页代码复杂和浏览器bug
3. 页数据过多
4. Ajax的Web服务漏洞
Q:有个用户反馈上传头像失败,分析原因/strong>
Q:app闪退的原因/h3>
Q:偶然闪退的排查/h3>
-
一般成熟的团队都会有 crash 的监控平台,可以从 crash 平台上去查看 crash 发生位点。
-
手工尝试复现 crash,一般偶然的闪退,都不会特别容易复现,可能需要适当施加一些比较苛刻的条件(弱 、断 、快速点击、快速划动等等)。
-
查看 crash 日志,比如 Android APP 可以用 adb 命令去查看:
-
执行 Monkey 或遍历测试,暴力操作手机,尝试复现 bug。
Q: 页卡顿的原因是什么/h3>
一般成熟的团队都会有 crash 的监控平台,可以从 crash 平台上去查看 crash 发生位点。
手工尝试复现 crash,一般偶然的闪退,都不会特别容易复现,可能需要适当施加一些比较苛刻的条件(弱 、断 、快速点击、快速划动等等)。
查看 crash 日志,比如 Android APP 可以用 adb 命令去查看:
执行 Monkey 或遍历测试,暴力操作手机,尝试复现 bug。
原因一:http 请求次数太多
解决:规范接口设计,减少 http 请求次数。
原因二:接收数据时间过长,如下载资源过大
解决:对 HTTP 传输进行压缩,可采用 gzip 无损压缩,压缩效果最佳。
原因三:JavaScript 脚本过大,阻塞了页面的加载
解决:将 JavaScript 脚本放在标签前。script 没有 async 和 defer 时,JS 文件将在下载后立即执行。这种情况下,script 放在顶部会阻塞页面呈现,在 速慢的情况下会导致“白屏”,直到脚本下载完毕才继续呈现页面。因此,script 放在底部可以让页面尽快呈现。
原因四:CSS、JavaScript、图片等需要重复加载
解决:静态资源统一放在一个静态域名上,减轻重复下载静态资源的负担。
原因五:cookie 影响
解决:减小 cookie 的影响 。去除没有必要的 cookie,如果 页不需要 cookie 就完全禁掉。此外,对 cookie 瘦身和设置合适的 cookie 过期时间,也能削弱 cookie 的影响。
原因六: 页资源过多
解决:使用 CDN 部署 络以提高下载速度,可以先通过免费的 CDN 供应商来分发 页资源。
https://blog.csdn.net/zhouziyu2011/article/details/71453126
Q:10%的用户反馈用不了功能,你讲如何排查/h3>
-
APP 版本影响,可能是接口改动没有考虑版本控制,对低版本用户造成影响。
-
操作系统版本,可能是用户的操作系统过高或过低,没有做好兼容。
-
灰度测试或 AB 测试,可能是功能缺陷导致对部分灰度用户产生影响。
-
跟会员用户有关,可能是一些功能仅仅只对 VIP 会员开放,然而这部分功能有缺陷。
-
跟用户分布地域有关,比如说:有些地区没有开放功能,但是也给这些用户展示了入口。
Q:登录的按钮不能点击,如何排查问题/h3>
APP 版本影响,可能是接口改动没有考虑版本控制,对低版本用户造成影响。
操作系统版本,可能是用户的操作系统过高或过低,没有做好兼容。
灰度测试或 AB 测试,可能是功能缺陷导致对部分灰度用户产生影响。
跟会员用户有关,可能是一些功能仅仅只对 VIP 会员开放,然而这部分功能有缺陷。
跟用户分布地域有关,比如说:有些地区没有开放功能,但是也给这些用户展示了入口。
登录按钮不能点击,大概率前端会有问题:
-
前端没有响应用户点击事件,导致请求发不出去。
-
前端发起 HTTP 请求,但是后端接口返回异常,前端捕获异常之后,没有处理。
-
络异常,发不出去请求,但是前端也没有作出提示。
-
内存不够,导致页面卡死
Q:压测的时候,QPS一直上不去,你会怎么排查/h3>
-
看被测服务器的性能,看是否资源被打满,导致请求无法连接 解决办法:被测服务器扩容。
-
看接口是否出现 错,以及响应时间是否变慢 解决办法:接口性能优化。
-
看压测机器的性能,是不是 络 IO 占满,并发数达不到 解决办法:多台压测机器并发。
-
看压测工具是否支持并发请求 解决办法:采用多线程或协程的方式去并发请求
Q:APP提示无法连接 络,你会如何排查/h3>
看被测服务器的性能,看是否资源被打满,导致请求无法连接 解决办法:被测服务器扩容。
看接口是否出现 错,以及响应时间是否变慢 解决办法:接口性能优化。
看压测机器的性能,是不是 络 IO 占满,并发数达不到 解决办法:多台压测机器并发。
看压测工具是否支持并发请求 解决办法:采用多线程或协程的方式去并发请求
第一步:检查 络环境
-
检查 4G 和 Wifi 是否可用,可以先看手机 络连接图标状态,有无信 ,是否弱 ,并且可以切换其他 APP,测试 络是否可用。
-
检查是否有 络限制,比如仅公司内 可用的 APP,你在别的 络环境是无法连接的。
-
检查是否连接了代理或代理连接是否出现异常,手机连接电脑代理之后,如果不安装证书,发起 https 的请求将出现异常。
第二步:检查 APP 的 络请求
-
抓包,检查 APP 请求的域名是否正确
-
抓包,检查后端接口是否响应超时
-
抓包,检查后端接口是否返回异常,而 APP 没有做相关的异常提示。
Q:怎么判断一个BUG到底是前端的BUG还是后端的BUG/h3>
-
样式和交互层面的 Bug,大概率都是前端的 Bug
-
数据和文案相关的 Bug,大概率都是后端的 Bug
样式和交互层面的 Bug,大概率都是前端的 Bug
数据和文案相关的 Bug,大概率都是后端的 Bug
拿移动端来说,最简单但是又最实用的办法是对比测试,即 Android 和 iOS 对比测试,
假如说 Android 和 iOS 都有问题,可能是后端 Bug;
假如说 Android 和 iOS 有一端有问题,则可能是 Andorid 或者 iOS 某一终端的 Bug,但也不一定绝对,也有可能是后端的 Bug。
实战案例
Q:微博发动态,设计一下测试点
虽说是发动态,但是测试时不能只是关注发动态这一操作的功能,发完动态之后,我们要确保动态要对外可见(对关注的人可见),单单测试发动态这个操作,实际上意义是不大的,毕竟只测发动态,不能实现测试闭环。
所以测试用例一定要把整个使用流程的case都要涉及到,避免漏测。
Q:对一台自动售货机进行测试用例设计
对于针对于这个测试点,还可以用去求解
https://wenku.baidu.com/view/8ed3ce7db94ae45c3b3567ec102de2bd9605de87.html
Q:设计微信发红包测试用例
Q:设计抖音直播功能测试用例
除了下图列举的一些测试点之外,还需要考虑的测试,譬如:、、等等
Q:设计微信扫码支付的测试用例
Q:设计百度首页的测试用例
测试用例设计,除了常规的功能测试之外,还有很多切入点值得考虑,比如:界面测试、性能测试、接口测试、安全测试等等。
界面测试
-
页面布局是否合理
-
字体大小, 粗细设计是否合理
-
页面中间的”Baidu 百度” 是否可以正常显示
-
界面颜色搭配是否合理
-
页面上方的链接是否都可以正常显示, 是否可以点击
-
当鼠标放置到链接上 / 百度搜索框上, 是否会从黑色变成蓝色
-
百度热榜上1, 2, 3 分别显示不同的颜色
-
百度热榜第一后显示一个 “热” 字
-
热榜上的每一条新闻是否都可以点击
-
百度热榜右侧显示 “换一换”, 是否可以点击
-
百度搜索框中的”相机图标”是否可以正常显示
-
页面右下方显示二维码图标
-
页面最下方显示百度反馈信息以及公司信息
功能测试
-
点击”设置”, 是否会展示下拉框进行一个设置选择
-
点击”登录”, 是否可以跳转到登录页面
-
点击界面上所有的链接, 是否可以跳转到相应的界面
-
点击”换一换”, 是否可以刷新百度热榜的词条
-
百度搜索框
-
什么都不输入, 刷新百度界面
-
是否可以输入汉字, 英文, 特殊符 (空格, “%”, “#”, “@”…)等
-
是否有输入字符长度限制
-
如果超出了这个长度限制, 是否还可以继续输入
-
如果输入一串空格之后再输入其他字符是否可以正常搜索
-
点击百度搜索框, 是否可以显示历史搜索
-
是否可以清除历史搜索
-
是否可以采用复制粘贴的方式进行搜索
-
-
是否可以通过直接输入 URL 进行搜索
-
是否可以自动提示和搜索相关的内容
-
如果搜索的内容不存在, 显示”你想要的搜索的是不是 …”
-
点击相机, 是否可以传入图片
-
是否可以在手机端和 PC 端同时登录一个百度账
-
手机端搜索的内容, 是否可以在 PC 端的历史记录中看见. 反之, PC端搜索的内容, 是否 可以在手机端看见
性能测试
-
点击链接跳转到相应界面的响应时间
-
如果使用图片搜索, 图片加载的响应时间
-
不同 速下, 搜索到跳转至搜索页面的跳转时间是多少
-
使用百度搜索, CPU和内存的利用率是多少
-
使用搜索框, 耗电量是多少
安全性, 易用性测试
-
如果搜索内容中包含一些敏感信息, 百度是否可以将其过滤掉
-
别人登录百度, 是否可以查看到你的历史搜索
-
如果有 sql 注入时, 是否还可以进行搜索
-
使用不同的浏览器, 是否会显示相同的历史记录
-
如果不小心打错了字, 是否有容错机制
-
是否可以显示历史搜索
-
是否可以使用回车键代替点击”百度一下”
-
可以使用扫码的方式直接登录百度
兼容性测试
-
是否可以在不同的浏览器上正常运行
-
Chrome, Firefox, IE, Edge…
-
-
是否可以在不同操作系统的电脑上正常运行
-
Windows 电脑
-
MAC 电脑
-
-
是否可以在手机上正常运行
-
是否可以在不同的手机系统上正常运行
-
安卓系统
-
苹果系统
-
-
对于不同的手机版本也要进行测试
其他测试
-
如果在运行的时候忽然断 / 断电, 是否还能正常运行
-
搜索的时候 络断开后又连接, 是否还可以恢复加载
-
搜索时, 电脑强制关机 / 重启, 是否会进行保存, 等回复正常后又继续运行
https://blog.csdn.net/HHHuYYYue/article/details/108416073
Q:微信的点赞功能怎么测试/p>
功能测试
1.点赞后,点赞数+1,点赞蓝显示点赞人的人头像
2.点赞后,共同好友在点赞区应能看见点赞人
3.点赞后,非共同在点赞区不能看见点赞人
4.点赞后,通知该用户
5.取消点赞,不通知该用户
6.第一次点赞,通知该用户,取消点赞,再点赞,不通知该用户
7.点赞后,通知该用户和点过赞的用户
8.多人同时点赞,点赞数正常
9.通过点赞区名字,点击名字进入个人界面
10.最多显示多少个赞——边界值
11.最多显示多少点赞人的名字——边界值
12.点赞是否按时间顺序显示
13.点赞后,取消点赞,再点赞,是否按最后点赞时间排序
14.点赞前是否能正常评论
15.点赞后是否能评论
16.反复点赞、取消点赞,功能是否正常
APP测试
1.弱 测试,弱 情况下点赞是否实时更新
2.点赞时,有干扰(电话和短信),是否显示点赞情况
3.耗电量和流量是否正常
性能测试
1.大量用户并发点赞,接口的响应时间,最大承受的qps
2.大量用户并发点赞,此时界面点赞,功能是否正常
兼容性测试
1.不同手机型 、oppo 移动版和全 通
2.不同手机版本,OPPO r7,r10 ios 7,8
3.不同系统,安卓,iOS
UI测试
1.根据UI图显示位置,颜色,图标,字体是否显示正常
2.未点赞时,是否显示灰色
3.点赞后,是否图标点亮
4.点赞后,点赞人的名字,位置,图标,颜色,字体是否正常
5.取消点赞后,是否显示灰色
https://blog.csdn.net/weixin_43091665/article/details/107618023
Q:微信红包是先计算每个人能获得的钱还是当这个人点了再计算。
当这个人点了抢红包再进行实时计算,
目的:预先算好每个人获得的钱,会占用大量存储空间,而采用红包算法进行纯内存计算,不需要预算空间存储,节约成本。
Q:微信朋友圈评论功能怎么测试/h3>
功能测试
-
是否可以评论
-
是否可以进行图片或者表情包或者语音评论
-
删除评论
-
多次评论会出现什么情况:是否可以都显示,是否可以按照时间顺序显示
-
是否可以与评论的好友正常回复消息
-
多人评论时的顺序是否按照时间顺序进行排列
-
评论是否显示头像和名称
-
评论之后退出该页面,再次进入朋友圈评论消息是否还存在
-
多用户评论,再次打开朋友圈是是否可以按照顺序看到是谁谁谁赞了我
接口测试
-
评论之后相同好友是否收到提示信息
-
相同好友处的提示信息是否按照时间顺序
-
相同好友处的评论是否显示头像和名称
-
相同好友是否可以相互回复消息,交叉回复消息
兼容测试
-
电脑端和手机端是否都可以进行评论功能
-
不同的移动端是否都可以进行评论功能(包括苹果,安卓)
可用性测试
-
弱 的时候进行评论是什么情况
-
络断开时是否可以评论
-
评论时有短信或电话进来,能否显示点赞情况
-
用户评论几秒后可以看到评论显示成功,取消同理
-
多用户同时给我评论时,我是否可以全部接收到提示消息
安全性测试
-
评论是否会泄漏微信用户相关信息
https://www.cnblogs.com/anliux/p/12571624.html
Q:测试微信换头像功能,设计测试用例
1,点击头像可以放大观看
2,查看头像是否支持放大,缩小
3,刚创建账 时是否显示默认头像
4,查看头像之后点击其它区域自动退出
5,头像支持的图片格式,图片大小
6,支持相机拍摄的图片和从 上下载的图片
7,选择完图片后是否有一个定框
8,选择相片—从手机相册获取
9,选择相片—用照相机拍照
10,头像显示的是方形还是圆形
11,选择图片范围时图片是否支持放大/缩小
12,选择好图片区域后保存,头像是否居中显示,还是只显示选择图片区域的某个角落
13,保存完图片后是否会有提示更换头像成功
14,修改头像后去app其它模块时是否马上刷新显示最新的头像
15,进入更换头像界面时可以取消更换头像
16,选择从相册选取图片还是从照相机时都能取消,返回到修改头像界面
17,头像是否支持本地缓存,断开 络之后是否还能显示头像
18, 络异常时,修改头像失败,会有提示
19,更换头像后,测试好友是否能及时看到更改的头像
20,不同 速下更换头像,是否都能更换成功
Q:抖音视频的安全性测试,测试点有哪些/h3>
Q:设计输入框测试用例/h3>
普通输入框字段校验测试
1. 不输入,空内容
2. 输入1个字符
3. 若输入框有长度限制为N个字符,测试N-1个字符,N个字符,N+1个字符,N+N+…(超长)这几个边界值
4. 还需要测试下通过复制大于长度的值粘贴进去看是否能输入
5. 输入半角/全角空格
6. 输入半角/全角,大写/小写英文字符
7. 输入半角/全角数字
8. 输入简体中文字符(默认全角)
9. 输入繁体中文字符(默认全角)
10. 输入半角特殊字符:!@#¥%……&*()
11. 输入全角特殊字符:!@#$%^&*()
12. 输入html字符保持:空格的转义字符;<scrīpt></scrīpt>;<br>;<tr>;<td>;< /tr>;</td>;</html>;</body>;</table>
13. 输入Javascrīpt函数:<b>Hello</b>,<scrīpt> alert(“hello”)</scrīpt>
14. 在需要密码验证,或者需要二次输入确认的地方,通过复制粘贴第一次的输入内容
15. 应该是不能通过的
16. 高危词,违禁词,敏感词
17. 输入正常内容的前,后,中间加入多个空格,看保存时是否会过滤掉或过滤为一个,是否会引起保存问题,是否算入长度计算
18. 输入日文字符
19. 输入html的标签会出现哪些问题入<;html>;会出现什么问题呢/p>
邮箱输入框字段校验测试
1. 输入合理的英文及数字字符组成的正确格式
2. 格式正确的前提下输入第一部分中的异常字段校验
3. 输入无@的格式,如:ab.com
4. 输入@前无内容的格式,如@b.com
5. 输入@后无内容的格式,如a@
6. 输入@前后均没有内容的格式,如@
7. 输入没有域名的格式,如a@b.,a@b
8. 输入email中有多个@的,如a@@b.com,a@b@c.d
9. 输入@后面直接跟域名的,如a@.com
10. 输入@后面有多个分隔符的,如a@b.c.d,a@b.c.d.e
11. 输入@前面有分隔符的情况,如a.b@c.d,a.b.c@d.e,a.b@c,a.b.c@d
验证码输入框字段校验测试
ps:假设是4位数字
1. 不输入,空内容
2. 空格输入
3. 输入空格+正确验证码,空格出现在开头,中间,结尾均需要测试
4. 输入4位其他非数字内容
5. 输入第一部分中的异常字段校验
6. 输入前3位或后3位验证码正确数字
7. 输入4位正确验证码+其他数字
8.输入法键盘自动带入短信验证码(不多输、不漏输)
手机 码输入框字段校验测试
ps:假设限制11个字符,只能输入数字
1. 不输入,空内容
2. 空格输入
3. 输入空格+数字,空格出现在开头,中间,结尾均需要测试
4. 输入其他非数字内容
5. 输入第一部分中的异常字段校验
6. 输入1个数字
7. 输入11位数字
8. 输入超过12位数字
9. 输入超长全数字测试
10. 输入空格+数字,空格出现在开头,中间,结尾均需要测试
Q:编写一个登录界面的测试用例/h3>
「功能测试」
-
输入正确的用户名和密码,点击提交按钮,验证是否能正确登录。
-
输入错误的用户名或者密码,验证登录会失败,并且提示相应的错误信息。
-
登录成功后能否能否跳转到正确的页面
-
用户名和密码,如果太短或者太长,应该怎么处理
-
用户名和密码,中有特殊字符(比如空格),和其他非英文的情况
-
记住用户名的功能
-
登陆失败后,不能记录密码的功能
-
用户名和密码前后有空格的处理
-
密码是否非明文显示显示,使用星 圆点等符 代替。
-
牵扯到验证码的,还要考虑文字是否扭曲过度导致辨认难度大,考虑颜色(色盲使用者),刷新或换- -个按钮是否好用
-
登录页面中的注册、忘记密码,登出用另-帐 登陆等链接是否正确
-
输入密码的时候,大写键盘开启的时候要有提示信息。
-
什么都不输入,点击提交按钮,检查提示信息。
「界面测试」
-
布局是否合理,testbox 和按钮是否整齐。
-
testbox和按钮的长度,高度是否符合要求。
-
界面的设计风格是否与UI的设计风格统一-。
-
界面中的文字简洁易懂,没有错别字。
「性能测试」
-
打开登录页面,需要的时间是否在需求要求的时间内。
-
输入正确的用户名和密码后,检查登录成功跳转到新页面的时间是否在需求要求的时间内。
-
模拟大量用户同时登陆,检查一定压力下能否正常登陆跳转。
「安全性测试」
-
登录成功后生成的Cookie,是否是httponly(否则容易被脚本盗取)。
-
用户名和密码是否通过加密的方式,发送给Web服务器。
-
用户名和密码的验证,应该是用服务器端验证,而不能单单是在客户端用javascript验证。
-
用户名和密码的输入框,应该屏蔽SQL注入攻击。
-
用户名和密码的的输入框,应该禁止输入脚本(防止 XSS攻击)。
-
防止暴力破解,检测是否有错误登陆的次数限制。
-
是否支持多用户在同一机器上登录。
-
同一用户能否在多台机器上登录。
「可用性测试」
-
是否可以全用键盘操作,是否有快捷键。
-
输入用户名,密码后按回车,是否可以登陆。
-
输入框能否可以以Tab键切换。
「兼容性测试」
-
不同浏览器下能否显示正常且功能正常
-
同种浏览器不同版本下能否显示正常且功能正常。
-
不同的平台是否能正常工作,比如Windows、Mac
-
移动设备上是否正常工作,比如iPhone、Andriod。
-
不同的分辨率下显示是否正常。
「本地化测试」
-
不同语言环境下,页面的显示是否正确。
Q:对一个接口编写测试用例
大多数接口测试,都习惯把接口当作进行测试,「如下图的测试用例也是按的测试方式去设计」。
但是,接口测试也可以多关注接口本身的编码。
没错,可利用的手段,进行必要的单元测试和Code Review,覆盖业务代码逻辑,关注上下游服务之间的调用,这样能够更好的保证接口质量。
Q:搜索功能怎么测试/h3>
搜索服务有以下的功能点,基本上还是按:功能测试、性能测试、接口测试、安全测试、算法测试、数据测试等角度去拓展即可。
END
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联 程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!