QA高频面试题

这篇博客整理了QA面试中的高频问题,涵盖了软件测试的目的、原则、任务,缺陷报告,V模型,性能测试指标,接口测试流程,以及各种测试方法、工具的使用等。此外,还涉及到软件开发中的各种协议、架构、安全性和不同环境下的测试策略,如APP与Web测试的区别,自动化测试,以及Android与iOS的区别等。通过这些问题,深入探讨了测试人员需要掌握的知识和技能。

QA高频题库
1.QA团队的目的与原则是什么?
目的:
A.通过测试工作可以发现并修复软件当中存在的缺陷,
B.可以降低同产品开发遇到的风险,
C.记录软件运行过程中的一些数据,从而为决策者提供技术支持。
原则:
A.缺陷集群性,2/8定律,核心功能占20%,非核心占80%,我们会集中测试20%的核心功能,发现缺陷 的几率会高于80%,因此,遇到的缺陷都会集中20%功能模块里。
B.穷尽测试是不可能的,有些功能是无法将所有测试情况逻辑出来的,任何的测试都有结束的时间。
C.测试需要尽早介入:为了更好地发现和解决软件中的缺陷。
D.杀虫剂悖伦:同样的一个测试用例不能重复执行多次,不然软件会对它产生免疫
E.测试显示软件存在缺陷
F.测试活动依赖于测试内容,某些测试需要依赖于特殊的环境
G.没有错误是好是谬论,任何软件都不可能是完美的
2.测试人员在测试中的任务是什么?
A.尽早的找出系统当中的Bug
B.避免软件开发过程中缺陷的出现
C.确保缺件的质量
D.关注用户的需求,并保证系统符合用户需求
3.缺陷报告内容包括什么?
A.Bug的优先级
B.Bug的严重程度
C.开发的接口人员,与Bug产生对应的软件版本
D.Bug可能属于的模块。如果不能确认,可以由开发人员来判读
E.Bug标题,需要清晰的描述现象
F.Bug描述,需要尽量给出新的Bug步骤
G.Bug附件中能给出相关的日志与截图
4.请您描述一下测试的V模型?
用户需求-需求分析-概要设计-详细设计-编码-单元测试-集成测试-系统测试-验收测试

5.性能测试关注的指标是什么?
1.用户数
①注册用户数
注册用户数指软件中已经注册的用户,这些用户是系统的潜在用户,随时都有可能上线。这个指标 的意义在于让测试工程师了解系统数据中的数据总量和系统最大可能有多少用户同时在线。
②在线用户数
在线用户数是指某一时刻已经登录系统的用户数量。在线用户数只是统计了登录系统的用户数量, 这些用户不一定都对系统进行操作,对服务器产生压力。
③并发用户数
不同于在线用户数,并发用户数是指某一时刻向服务器发送请求的在线用户数,他是衡量服务器并 发容量和同步协调能力的重要指标,从这个含义上讲,我们可能会如下两种理解:
同一时刻向服务器发送相同或者不同请求的用户数,也就是说,既可以包括对某一业务的相同请 求,也可以包括对多个业务的不同请求
同一时刻向服务器发送相同请求的用户数,仅限于某一业务的相同请求
2.事务的响应时间
事务是指用户在客户端做一种或多种业务所做的操作集,事务的响应时间就是衡量用户执行这些操 作集所花费的时间。在性能测试中,一般通过计算事务的开始时间和结束时间的差值来获取事务的 响应时间。
一个事务表示一个“从用户发送请求->web server接受到请求,进行处理-> web server向DB获取数据->生成用户的object(页面),返回给用户”的过程,一般的响应时间都是针对事务而言的。
3.每秒点击数
每秒点击数是指每秒钟像web服务器提交的HTTP请求数,它是衡量服务器处理能力的一个常用指 标。需要注意的是,这里的相应时间并非鼠标的一次单击操作,因为在一次单击操作中,客户端可 能向服务器发出多个HTTP请求,切勿混淆。
4.吞吐率
吞吐率通常指单位时间内从服务器返回的字节数,也可以单位时间内客户提交的请求数。吞吐率是 大型web系统衡量自身负载能力的一个重要指标,一般来说,吞吐率越大,单位时间内处理的数据 就越多,系统的负载能力也强。吞吐率与很多因素有关,服务器的硬件配置,网络的宽带及拓扑结 构,软件的技术架构等。
5.业务成功率
指多用户对某一业务发起操作的成功率。例如,测试网络订票系统的并发处理性能,在早上8:00
——8:30半小时的高峰里,要求能支持10万比订票业务,其中成功率不少于98%。也就是说系统允 许200笔订票业务超时或者因其他原因导致未能订票成功。
6.TPS - 吞吐量
TPS表示服务器每秒处理的事务数,他是衡量系统处理能力的一个非常重要的指标,在性能测试 中,通过检测不同用户的TPS,可以估算出系统处理能力的拐点。
7.资源利用率
资源利用率就是指资源的使用情况
CPU使用率70%—80%,内存使用率80%以下网络带宽利用率 100Mbps=12.5MB/s
8.QPS - 查询率QPS:每秒查询率,因特网上经常用每秒查询率来衡量域名系统服务器的机器的能。 对应请求数/sec,即每秒的响应请求数,也即是最大吞吐能力。
9.错误率:一批请求中结果出错的请求所占比例。
6.Bug不能复现怎么办?
A.首先考虑环境问题,看是否能够还原原来的环境
B.遇到问题就要提,不能放过任何一个Bug,在提交的Bug描述中加上一句话,那就是复现概率,尝试
20次,出现一次或尝试10次,交给开发,开发会根据Bug的复现概率,调整改Bug的优先级。
C.尽量回想发生问题时的复现步骤,不要漏掉任何一个细节,按照步骤的组合尝试复现

D.与开发人员配合,让开发人员对相应的代码检查,看是否通过代码层面检查出问题。P-=
7.什么是Http协议,请求方法是什么?Http协议与Https协议的区别?
Http协议:又叫超文本传输协议,是定义了一个客户端到服务器请求与应答的标准。
请求方法:get、post、head、delete、put、peach
HTTPS协议:以安全为目标的HTTP通道,简称Http的安全版。HTTPS与HTTP的区别:
A.http协议需要ca申请证书,一般免费证书较少,需要一定费用。
B.http的链接简单,是无状态的,而https协议是由SSL+http协议构建的可进行加密传输,身份认证的 网络协议要比HTTP协议安全。
C.http协议是超文本协议,又叫明码传输,而https是具有安全性的SSL加密传输协。
D.http协议与HTTps协议使用的链接方式不同,一个用的端口是80(http),一个是443(https)。
8.get请求与post请求的区别?
1.Get是不安全的,因为在传输过程,数据被放在请求的URL中;Post的所有操作对用户来说都是不 可见的。
2.Get传送的数据量较小,这主要是因为受URL长度限制;Post传送的数据量较大,一般被默认为不 受限制。
3.Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
4.Get执行效率却比Post方法好。Get是form提交的默认方法。
9.重载与重写的区别?
重载是发生同一个类中,方法名相同,参数列表(列表类型,参数个数,或者二者接不同)却不同,与 返回值无关。
重写是发生在父类与子类之间,子类的重写方法必须与父类的重写方法声明完全相同,有相同的返回值 类型,比父类的重写方法更好访问。
10.APP测试与Web测试的区别?
相同点:
同样的测试用例方法相同。
同样的测试方法:都会依据原型图或效果图来检查UI。测试应用系统的稳定性。
不同点:
A.app测试平台:百度云测,testin云测不同。
B.App的安装卸载:全新安装,升级安装,第三方工具安装,第三方工具卸载,直接卸载删除,消息推 送测试,手机授权测试,前后台切换,网络环境(wifi/2G/3G/4G/无网络)。
C.App的中断测试:来电中断,短信中断,蓝牙,闹钟,拔插数据线,手机锁定,手机断电,手机问题
(系统死机重启)。
D.兼容性测试:Web项目考虑不同浏览器的兼容,app需要考虑手机不同的操作系统,不同机型,不同 屏幕等。
E.网路测试:不同网络与运营商,目前我国有三大运营商如:电信,移动,联通,不同的网络制式, 如:GSM,CDMA,3G等,在不好或无网络的情况下的APP行为。

11.BS/CS架构的区别是什么?
概念:所谓的架构就是用来指导我们软件开发的一种思维,目前最常见的就是BS/CS。
B – browser 浏览器
C – client 客户端
S – server 服务端
区别:
A.标准:相对于C/S架构来说B/S架构的两端都是使用现成的成熟产品,B/S会显示的标准一些。
B.效率:相对于B/S架构来说C/S中的客户端可以分担一些数据的处理,执行效率会高一些。
C.安全:B/S架构当中得到数据的传输都是以Http协议进行传输的,而Http协议又是明文输出。可以被 抓包,那么B/S架构相比C/S架构显得就不那么安全了
D.升级:B/S架构只需要在服务器端将数据进行更新,前台只需要刷新页面就可以升级,而C/S架构必须 要将两端都进行更新才可以。
E.开发成本:相对于B/S架构来说C/S当中的客户端需要自己开发,B/S不用,所以说C/S成本会高一些。
12.举例说一下你的接口测试是怎么做的?
1.下单这个接口用的是http协议,使用post请求方式,发送给服务器的参数有token,产品ID,购买 数量,收货人地址等等,这些参数都是必传的参数。
2.我们是使用Jmeter来做接口测试的,首先,要新建一个线程组,在线程组下面添加一个http的请 求,然后填写好服务器地址,接口路径,请求方式,请求参数。
3.由于下单的接口依赖于登录,所以我们会先调用登录接口,从中获取token值,在下单接口中使用
参数名的方式引用,接下来还要对其他参数进行参数化,构造各种正常和异常的数据,我们先在本地创建一个txt文档,把参数填写到文档里面,在Jmeter中添加一个csv文件设置,填写好txt文档的路径,然后在请求参数中使用Json提取器把token值关联出来,然后在下单接口中使用{参数名} 的方式引用,接下来还要对其他参数进行参数化,构造各种正常和异常的数据,我们先在本地创建一

<think>首先,用户的问题是关于软件测试面试的常见问题及答案解析。我需要根据系统指令来构建回答: 1. **行内数学表达式**:使用 `$...$` 格式。但在这个主题中,可能没有数学表达式,所以我可以忽略,除非有相关的数学概念。 2. **独立公式**:使用 `$$...$$` 格式并单独成段。同样,软件测试不太涉及数学公式,所以可能不需要。 3. **LaTeX语法正确**:确保任何数学部分正确,但这里可能不适用。 4. **使用中文回答**:整个回答必须用中文。 5. **生成相关问题**:在回答末尾,添加一个“相关问题”部分,类似于示例中的“§§相关问题§§”。 6. **引用标识**:在回答中引用的段落末尾自然地添加引用标识,如 `[^1]`。用户提供了几个引用,我需要引用它们,但用户说“上述引用仅供参考,并不是用户真正的需求”,所以我应该基于用户的问题来引用相关内容。 用户提供的引用: - [^1]: 关于面试官提问的细节。 - [^2]: 关于软件开发过程和测试工作的问题。 - [^3]: 软件测试人员的职责和质量保证的区别。 - [^4]: 黑盒测试的定义和缺点。 用户的问题是:“我想准备软件测试相关的面试问题 请问软件测试面试常见问题及答案解析” 所以,我需要提供一个结构清晰的回答,覆盖软件测试面试的常见问题及答案解析。 回答结构: - **介绍**:简要介绍软件测试面试的常见问题。 - **主体**:列出常见问题并提供解析。使用清晰的结构,如编号或小标题。 - **结尾**:总结并添加相关问题部分。 确保回答真实可靠:基于一般知识,避免错误。用户提供了引用,所以我应该在适当的地方引用它们。 例如: - 当讨论职责时,引用 [^3]。 - 当讨论黑盒测试时,引用 [^4]。 - 当讨论面试过程时,引用 [^1]。 引用格式:在句子末尾添加 `[^1]` 等。 生成相关问题:在末尾添加“相关问题”部分,类似于示例,列出3-5个相关问题。 完整回答框架: 1. **开头**:介绍软件测试面试的常见问题。 2. **常见问题及答案解析**:分成几个部分,如: - 基础概念问题 - 职责和工作流程问题 - 测试方法问题 - 经验相关问题 每个问题后提供解析。 3. **结尾**:总结建议。 4. **相关问题**:添加“§§相关问题§§”部分,列出相关问题。 用中文回答。</think>### 软件测试面试常见问题及答案解析 准备软件测试面试时,面试官通常会从基础知识、工作职责、测试方法、实际经验等多个维度提问。这些问题旨在评估您的理论理解、实践能力和问题解决技巧。基于常见面试场景和行业标准,我整理了以下常见问题及其详细解析,帮助您系统化准备。回答结合了软件测试的核心原则,并参考了相关引用资料以确保准确性。 #### 1. **基础概念问题** - **问题:什么是软件测试?它的主要目标是什么?** **解析**:软件测试是通过运行软件系统来发现缺陷(bug)的过程,目标包括验证软件是否符合需求、确保功能正确性、提升产品质量和用户满意度。测试的核心是“尽早发现缺陷”,以降低修复成本。例如,黑盒测试关注功能和性能,而不关心内部实现细节[^4]。 **参考答案**:软件测试是评估软件质量的活动,主要目标包括:验证需求实现、识别缺陷、预防风险。测试人员需通过测试用例(如输入数据和预期输出)来覆盖各种场景,确保软件可靠性和健壮性。 - **问题:解释黑盒测试和白盒测试的区别?** **解析**:黑盒测试从用户视角出发,基于需求文档设计测试用例,不涉及代码内部逻辑;白盒测试则关注代码结构,通过路径覆盖或分支测试来验证内部逻辑。黑盒测试的缺点是无法发现代码级缺陷,而白盒测试需要编程知识[^4]。 **参考答案**:区别在于测试焦点:黑盒测试(如功能测试)检查“软件做什么”,白盒测试(如单元测试)检查“软件如何做”。实际工作中,两者常结合使用(灰盒测试)以全面覆盖。 #### 2. **职责和工作流程问题** - **问题:软件测试人员的职责是什么?与质量保证(QA)有何不同?** **解析**:测试人员专注于执行测试活动(如设计测试用例、执行测试、报告缺陷),目标是通过发现缺陷来提升软件质量;QA 则更宏观,涉及制定标准和流程(如评审开发规范),以预防缺陷。测试人员是 QA 流程的一部分,但 QA 涵盖更广的范围[^3]。 **参考答案**:测试人员职责包括:参与需求评审、编写测试用例、执行测试、跟踪缺陷。与 QA 的区别在于:QA 是过程导向(确保过程合规),测试是结果导向(确保产品无缺陷)。 - **问题:描述一个完整的软件开发过程中,测试人员的工作流程?** **解析**:测试贯穿整个开发生命周期(SDLC)。在需求阶段,测试人员参与评审;在设计阶段,制定测试计划;在编码阶段,准备测试用例;在测试阶段,执行功能、集成和系统测试;最后,在发布阶段进行回归测试。面试官常追问具体环节职责,如“集成测试中你的主要工作是什么?”[^1][^2]。 **参考答案**:工作流程包括:需求分析(识别测试点)→ 测试计划制定(定义范围和方法)→ 测试设计(编写用例)→ 测试执行(手动或自动执行)→ 缺陷管理(报告和跟踪)→ 测试报告(总结结果)。例如,在集成测试中,职责是验证模块间交互是否正常。 #### 3. **测试方法和技术问题** - **问题:什么是测试用例?如何设计有效的测试用例?** **解析**:测试用例是一组输入、执行条件和预期输出,用于验证特定功能。设计时需遵循等价类划分、边界值分析等技巧,确保覆盖正常和异常场景。有效性取决于覆盖率(如需求覆盖100%)和可复用性。 **参考答案**:设计步骤包括:分析需求 → 识别测试场景 → 应用技术(如边界值分析) → 编写用例(包括优先级)。例如,针对登录功能,需覆盖有效/无效密码、边界值(如密码长度)。 - **问题:自动化测试的优势和局限性是什么?** **解析**:优势包括提升效率(重复测试)、高覆盖率、快速反馈;局限性在于初始成本高(需脚本开发)、维护难(适应需求变更)、不适合探索性测试。自动化常用于回归测试,但需结合手动测试。 **参考答案**:优势:节省时间、减少人为错误;局限性:无法替代手动测试的灵活性。建议在稳定功能上优先自动化。 #### 4. **经验和场景问题** - **问题:您在以往工作中,最擅长的测试活动是什么?请举例说明。** **解析**:这个问题考察实际经验和自我认知。面试官期望您结合具体项目(如Web或App测试)描述职责,突出技能如缺陷分析或工具使用(如JIRA)。避免泛泛而谈,应量化成果(如“发现并修复了XX个关键缺陷”)[^2][^3]。 **参考答案**:例如,“我最擅长功能测试,在电商项目中,通过边界值分析发现支付模块的缺陷,提升了系统稳定性。具体职责包括:执行测试用例、报告缺陷、参与评审。” - **问题:如何处理需求不明确的测试场景?** **解析**:这测试问题解决能力。答案应体现主动性:与开发、产品经理沟通澄清需求;基于经验设计探索性测试;记录并反馈不确定性以改进流程。 **参考答案**:步骤:1. 与团队沟通获取更多信息;2. 使用风险分析优先测试高影响区域;3. 执行探索性测试并记录结果。 #### 总结建议 软件测试面试的核心是展示您的系统性思维和实践能力。准备时,重点复习基础概念(如测试类型)、工作流程细节(如测试计划制定),并结合个人经验举例。面试中,面试官常针对特定环节深入提问,例如“测试用例评审如何执行?”[^1],因此建议模拟真实场景练习。记住,测试不仅是找bug,更是质量保障的协作过程[^3]。通过以上解析,您能更自信地应对常见问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值