测试常见问题合集
测试面筋合集
目录
- 1-测试基础知识
- 2-测试非技术类问题
- 3-测试用例设计
- 4-问题查找
======================================================================
1-测试基础知识
-
-
- 测试需求分析;测试计划;测试设计;测试执行;测试评估。(有点不靠谱的感觉..)
-
测试阶段与对应的文档
- 单元测试:详细设计文档
- 集成测试:概括设计文档
- 系统测试:系统设计文档
-
- V模型:与软件开发阶段呼应
- 软件开发:需求分析-->概要设计-->详细设计-->编码阶段
- 软件测试:单元测试-->集成测试-->系统测试-->验收测试
- 从基本流程的角度讲:
- 需求阶段:测试人员了解需求, 对需求进行分解, 得出测试需求
- 计划阶段:根据需求编写测试计划 / 测试方案
- 设计阶段:测试人员适当的了解设计, 对于设计测试用例是很有帮助的, 测试人员搭建测试用例框架, 根据需求和设计编写一部分测试用例
- 编码阶段:测试人员一般是不需要编码的, 但已经编码的模块, 专业的白盒测试人员可以计划执行单元测试, 完善, 细化测试用例以及调整测试计划和方案
- 测试阶段:测试阶段是软件测试人员最为重要的工作阶段, 根据测试用例和计划执行测试, 在执行的过程中记录, 管理缺陷, 测试完成后编写测试报告
- 运维阶段:测试人员需要参加项目的实施工作. 测试人员对项目产品的业务和操作非常了解, 加上测试人员的沟通表达能力一般都比较强, 所以测试人员可以参加用户使用软件的培训, 在试运行项目时收集问题并及时反馈给相关负责人.
- V模型:与软件开发阶段呼应
-
- 黑盒白盒灰盒;静态动态。
- 从是否关心软件内部结构和具体实现的角度划分,测试方法主要有白盒测试和黑盒测试。
- 白盒测试方法主要有代码检査法、语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。
- 黑盒测试方法主要包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。
-
- 注:边界值测试 -- 既可以用于黑盒,又可以用于白盒。
- 地铁售票找零功能:选择因果图最宜。
-
单元测试的策略
- 逻辑覆盖
- 循环覆盖
- 同行评审
- 桌前检查
- 代码走查
- 代码评审
- 静态数据流分析
-
单元测试的主要技术手段
- mock:对代码中某些不容易获取的对象创建虚拟对象来测试
- stub:桩函数是代替某些被调用了但是没有编写代码,一般再增量迭代自底向上的过程中不用编写。再自顶向下的过程中需要编写
- 驱动函数:调用被测函数,给被测函数传参
- 注:GUI测试是系统测试手段。
-
- 单元测试阶段、集成测试阶段,系统测试阶段,验收测试阶段。
-
功能测试与性能测试的区别]()
-
测试的维度/游戏的测试维度。
-
- 自动化测试:在一定的框架下,去开发一些自动化测试脚,本来实现手工测试所做不到的事情。
- 自动化测试主要有两个方面的作用:
- 一是模拟手工测试中重复且繁琐的步骤
- 一是模拟手工测试中无法实现的测试,如性能测试中的并发或穷举等,比如抽奖计算概率的测试。
- 自动化测试在游戏测试中主要的应用:
- 模拟重复且繁琐的手工测试;模拟手工测试无法或难以实现的性能测试、接口测试、穷举测试;UI测试等。
- 自动化测试流程:
- 分析自动化测试需求,一般在手工测试之后开始;
- 根据项目的特点、选择合适的自动化测试工具,并搭建测试环境
- 测试用例设计和开发:设计测试用例;或提取手工测试的测试用例,转化为自动化测试用例
- 开发自动化软件测试框架和测试脚本
- 执行:通过工具、代码实现自动化的构造输入、自动检测输出结果是否满足预期
- 生成自动测试报告
- 持续改进、脚本优化
-
varchar(256) 变为 varchar(1024)测试
-
在一个产品的周期中,你会怎么安排测试工作
-
App测试和Web测试的区别
======================================================================
2-测试非技术类问题
-
冲突解决办法
-
如果UI和开发消极怠工,怎么办
-
leader出错,同伴不配合怎么办
-
- 为什么想做测试、为什么不选研发?测试与开发本质区别
-
测试主要运用哪种语言
- Python和java
-
- 两方面:业务能力+技术能力,连接产品和研发,所以是很有难度的。
- 技术能力:计算机专业知识,编程能力、软件测试相关知识,自动化工具的使用,领域知识;
- 业务能力:沟通表达、自学、耐心、测试思维,能抓重点,考虑问题全面深入、坚持原则等
- 测试方法基础理论(测一个杯子等)
-
- 软件测试的意义:尽早、尽量用最少的测试发现尽可能多的问题,以保证软件产品的质量。
- 什么是测试工程师?
- 以软件开发为例,宏观上说测试工程师就是软件质量的把关者,在一个软件开发流程中测试人员要与开发人员一起对软件的研发进行负责,软件进行质量把关,开发进行功能实现,相辅相成。
- 测试又分为传统的测试工程师和测试开发工程师,测试开发工程师(以下简称测开)就要在上述的基础上最少在掌握一门脚本语言,两门及以上更好,脚本语言包括但不局限于Python,golang,shell等等因为测试开发工程师其实是造轮子的,换言之就是开发测试用的各种工具;测试工程师对代码要求较测开低一些,但不是一窍不通(我面试的时候都会遇到代码问题),不懂代码层次的问题的话其实就不好进行测试分析这个后面再解释为什么。
- 测试开发工程师的工作职责和内容
- 测试工程师简单点说就是找bug,然后反馈给开发人员,不要小看这个工作。
- 首先很明显的bug开发人员有时候自己就能找到,测试人员要有比开发人员更加全面的想法才能找到深层次的问题点,
- 其次,要端正一个态度就是测试人员不是一个电脑小白,相反国外顶级的测试开发工程师同时也是顶级的开发工程师甚至更厉害,所以作为一个测试工程师一定要有继续学习的精神和心态,然后明白测试工程师要会写测试用例,要会使用自动化工具,甚至白盒测试工程师要懂代码,要具备广阔的知识面。
-
开发测试工程师的工作职责和内容:
- 软件测试的意义,是尽早、尽量用最少的测试发现尽可能多的问题,以保证软件产品的质量。从宏观上说,在整个软件开发生命周期中,测试工程师就是软件质量的把关者,要与开发人员一起对软件的研发进行负责,软件进行质量把关,开发进行功能实现,测试保证软件产品的质量。开发测试工程师在传统的软件测试的基础上,加入了更多对自动化测试和开发测试工具等要求,以及对测试人员代码能力的要求。
-
- 初级测试工程师:测试计划、测试文档、测试执行、结果整理等,门槛不高。
- 测试开发工程师:核心-编程能力、自动化能力。
- 测试架构师:在整个测试架构上参与和管理测试,更强调测试流程管理和质量监管,以及白盒测试能力,对测试工具和平台的开发等
-
2年内的工作规划以及目标
- 半年-1年:重点是快速学习测试相关的知识和基本技能,如测试计划、测试文档、测试执行、结果整理等,并对软件测试行业有一个大致的了解和把握,在此基础上,快速学习公司项目中用到的相关自动化测试工具,并不断提高编程和脚本开发能力。
- 1年-2年:不断强化自动化测试能力,并形成系统的知识体系;同时不断提高编程能力,力求对公司项目有整体的认识,最好可以作为项目的小负责人,可以带领小团队。
之后的发展,可以从测试开发架构师或测试经理等方向发展。
-
测开相关的反问
- 部门主要工作内容
- 刚去的话,可能不太熟悉业务,会不会有人给一个相对清晰的指导,比如说,要通过做哪些事,达到什么目的,这样类似的清晰规划。
- 问进度:一般多久能有后续消息?
- 问学习建议:针对这个岗位,我需要重点补充哪方面的知识?
- 部门主要工作内容
======================================================================
3-测试用例设计
测试用例组成
- 主要构成:测试环境+测试内容+输入+预计输出+实际输出
- 具体分为9个方面:用例编号/测试项/测试标题/用例属性/重要级别/预置条件/测试输入/操作步骤/预期结果/实际输出
- 一般情况下分为以上几项可根据公司要求进行增删
测试用例模块
-
功能:
- 针对系统的功能需求展开测试,主要结合黑盒测试的思想。
- 对于既需要用户使用,又需要管理者使用的,从两方面进行测试。例如自动售货机,管理员要上货、定价等。
-
性能:
- 负载测试、压力测试、耗电测试、资源占用(cpu,内存等)、网络状态、相应时间等。
- 通过模拟业务压力或用户使用场景来测试软件系统的性能是否满足实际生产性能的要求
- 涉及实物:高温低温、最大某某操作次数、
- 用电物品:考虑电量
- 电子物品:弱网、无网、网络切换、打入电话等打断操作、耗电量、多人并发、响应时间、点击量、吞吐量等
-
兼容:
- 涉及实物:不同接口
- 电子物品:移动端与电脑端、不同系统、与同类软件的兼容,相同软件不同版本的兼容,页面类考虑不同浏览器..
-
安全:
- 涉及实物:考虑是否有毒、有害、破损情况下是否会对徒手用户造成伤害;大中型机器是否有自动断电的保险措施,是否有紧急制动的按钮操作等;
- 涉及账户:泄漏用户信息、账户的盗号问题、游戏的外挂..
-
界面:
- 涉及实物:考虑物体的外观、材质的,颜色,外形,重量,图案是否合理,是否有异味。
- 电子物品:布局合理清晰,设计风格是否一致,文字图标是否正确清晰,半屏全屏切换、横屏竖屏切换、界面清晰度、按钮标签进度条的可识别性...
-
易用性:
- 操作是否对用户友好、按钮快捷键进度条等是否易用、图像清晰度、错误操作时是否有有效的提示信息引导...
-
交互性:
- 针对多人软件如社交软件,相同好友消息、共同操作的交互
-
文档:
- 产品说明书对产品的参数和使用规则描述是否详细。
- 等。
考查点
-
注意跨天的测试,即仅限当天完成的动作,页面停留到第二天时能否正常操作的问题。
- 例如,签到功能,签到页面停留到第二天时,再点击签到算第二天的。
- 例如:ATM一天只能取一万元,取了8000后,页面停留到第二天,又从1万元的限额开始算,可以取10000元。
APP相关问题
登录相关问题
-
- 登录测试?弱网测试,无网测试怎么做?
- 如何测试用户登录界面
- 测试中如何模拟网络环境不好的条件 fiddler
- 如何测试一个登陆案例
- 给你一个QQ登录界面 有一个登录按钮一个自动记住密码的复选框 账号密码输入框,你怎么设计测试用例?
- 对抖音的界面进行测试
页面相关问题
-
- 抖音页面怎么测试
聊天相关问题
-
- 对收信发信进行测试
- 微信聊天功能测试、QQ聊天功能测试
发帖相关问题
- 一个发帖功能(可以发文字、图片、定位),你会测试哪些方面 功能测试,网络测试,平台测试
视频播放器相关测试
-
- 爱奇艺等视频APP,抖音等短视频APP,微信的小视频,等等
- 测试朋友圈发布视频功能,如果有一部分用户反馈APP的视频加载不出来,你会从哪里方面去定位问题
- 然后问我如果想要上新一个新尺寸的视频,我会想要测试什么。
小程序相关问题
-
一个手机小程序,只能输入1-100的数字,还有一个提交按钮,设计测试用例
-
怎么测试小程序的并发性的
微信相关问题
-
微信聊天发送的测试
-
微信图片发送测试用例设计
-
微信传文件
-
测试微信朋友圈
-
朋友圈功能:
- 下拉朋友圈(刷新;查看完整的相册封面);发朋友圈(图片文字;仅文字);朋友圈点赞;朋友圈评论(给博主评论和好友间互动)。
-
微信下拉朋友圈
-
- 为微信的点赞功能设计测试用例,假如点赞了但是点赞数没有加一,可能报错在哪里?
- 网络良好的情况下,发现数据传输过程出现404的情况,你认为是什么问题。
-
- 类似问题:给抖音的评论功能设计测试用例
-
各个APP的搜索框问题
-
- 头条搜索框测试用例
- 怎么测试微信的搜索功能。
微博相关问题
- 测试微博的刷新功能
二维码相关
-
注:针对扫码功能、针对扫码支付功能....
游戏相关
- 详见
实物操作相关
-
- 对对杯子、电梯系统、三角形等常规的测试用例总结
- 测试一个月饼礼盒。
- 测试一瓶水、测试一个矿泉水瓶
- 设计一个测试方案,生产好的矿泉水瓶要放到流水线上生产的测试方案。
- 测试商场的支付功能,设计测试用例
- 鼠标测试用例
======================================================================
4-问题查找
-
- 弱网络情况下,服务端响应不及时,可能倒是闪退。(网络异常引起的)
- 应用版本太低,会导致不兼容,造成闪退。(有些API在老版本中有,在新版本中没有,造成对象为空引起闪退)
- APP的SDK和手机的系统不兼容。
- 缓存垃圾过多:由于安卓系统的特性,如果长时间不清理垃圾文件。会导致越来越卡,也会出现闪退情况。
- 设计不合理,1个接口,拉取的数据量太大,请求结果会很慢,且占用大量内存,APP会闪退(比如,我们现在做的记录仪,进入相册列表时候,要拉取所有图片,拉取太慢了,就闪退了)
- 不同APP间切换,交互测试,可能会出现闪退。
- 权限问题。
-
- 带宽不足、硬件配置低、CPU或者是内存被占满。
- http请求次数太多。
- 接收数据时间过长,如下载资源过大。
- JS脚本过大,阻塞了页面的加载。
- 网页资源过多、接受数据时间长、加载某个资源慢。
- DNS解析速度。
-
- 带宽不足、硬件配置低、CPU或者是内存被占满。
- http请求次数太多。
- 接收数据时间过长,如下载资源过大。
- JS脚本过大,阻塞了页面的加载。
- 网页资源过多、接受数据时间长、加载某个资源慢。
- DNS解析速度。
-
web页面空白有哪些原因
-
测试工具loadrunner,postman,selenium用来测什么
- loadrunner:性能测试工具,通过模拟成千上万个用户实施并发操作,测试系统的性能,并且提供详细的测试结果分析,协助用户查找问题
- postman:接口测试,一款功能强大的网页调试与发送网页HTTP请求的Chrome插件
- selenium:Web应用程序测试的工具
-
分析一下少量联通用户反映刷抖音无法显示原因