掌握这些测试面试题,还怕拿不到offer?

时间:2021-12-01 15:15来源:未知 作者:中博IT教育

今天给大家带来的是软件测试工程师在面试过程中,出现频率最大的10道面试题~ 自我介绍 面试问题第一问,95%都会是:请简单的做个自我介绍吧~ 分以下几点说明。 1、个人的基本信息
今天给大家带来的是软件测试工程师在面试过程中,出现频率较多的面试题~
 
自我介绍
 
面试问题第一问,95%都会是:请简单的做个自我介绍吧~
 
分以下几点说明。
 
1、个人的基本信息,扬长避短
 
例子:面试官您好,我叫***,来自于哪里,从事软件测试工作有几年了。
 
例子:面试官您好,我叫***,来自于哪里,计算机专业毕业后,从事软件测试工作有几年了。
 
2、突出自己的工作经验
 
自己的项目经验(重点突出跟你面试公司相关或者同类型的项目)。
 
比如公司从事的主要是web项目:以前主要是从事web系统的项目,做过不少的项目,也积累了不少的测试经验,能够独立完成产品的测试。
 
比如公司从事的主要是app项目:以前主要是从事的web与app的项目,最近做的项目主要是app为主,做过不少的项目,也积累了不少的测试经验,能够独立完成产品的测试。
 
3、突出自己的技能
 
结合自己的参与过的项目, 主要从以下几个方面阐述自己的技能。
 
测试流程
测试需求分析
linux系统
数据库
接口测试
性能测试
自动化测试
安全测试
编程语言
 
4、总结并结束
 
简单概括自己的测试经历及收获, 可以重点突出自己较强的技能点。
 
什么是软件测试
 
1、正向思维
 
出发点:使自己确信产品是能够正常工作而评价一个系统或者程序的过程,确定程序或者系统能否达到实际的结果需求,软件测试就是以此为目的的。(第一视角会认为产品是没有问题的,在此基础之上,再来发现缺陷)
 
2、反向思维
 
出发点:测试是为了发现错误而去执行程序或者系统的过程。测试是为了证明程序有错,而不是证明程序没有错误。一个成功的测试是能够发现以前未发现的错误。
 
3、IEEE(电气电子工程师协会)定义
 
软件测试就是在规定条件(测试环境)下运行系统(软件整体)或者构件(软件中的某个功能模块)的过程:观察和记录结果,对系统或者构件给出对应的评价(分析整个项目的运行过程,看实际结果和预期结果是否一致)
 
4、广义的软件测试定义(来源于测试经验的总结)
 
软件测试是对软件在整个形成的过程中所有相关的产品(程序+数据+文档)进行测试,不仅仅只测程序,包括还有各种和程序相关的数据,以及文档-->需求文档,设计文档,用户手册等等。
 
测试发现了Bug,开发不认为是Bug,怎么办
 
首先,将问题提交到缺陷管工具中;
 
然后,要获取判断的依据和标准:
 
根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据;
 
如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 根据用户的一般使用习惯,来确认是否是缺陷; 与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;
 
合理的论述,向开发经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。
 
等待开发经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并由上级做出决定。
 
目前主要的测试用例设计方法是什么
 
白盒测试:
逻辑覆盖、循环覆盖、基本路径覆盖(逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖)
黑盒测试:
等价类划分、边界值分析法、因果图法、状态图法、测试大纲法、随机测试、场景法。
 
什么是软件缺陷
 
1、软件未实现产品说明书要求的功能
2、软件出现了产品说明书指明不应该出现的错误
3、软件实现了产品说明书未提到的功能
4、软件未实现产品说明书虽未明确提及但应该实现的目标
5、软件难以理解、不易使用、运行缓慢或者(从测试的角度看)最终用户会认为不好。
 
总结:所有不满足需求或者超出需求的都是缺陷;实际结果和预期结果不一致。
 
如何测试一个纸杯
 
功能测试:用水杯装水看漏不漏;水能不能被喝到;
 
安全性:杯子有没有毒或细菌;
 
可靠性:杯子从不同高度落下的损坏程度;
 
可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用;
 
兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等;
 
易用性:杯子是否烫手、是否有防滑措施、是否方便饮用;
 
用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述;
 
压力测试:将杯子盛上水放24小时检查泄漏时间和情况;盛上汽油放24小时检查泄漏时间和情况等;
 
探索性测试:用根针并在针上面不断加重量,看压强多大时会穿透…
 
软件测试的原则
 
1、所有测试的标准都是建立在用户需求之上 。
 
2、合理控制测试深度与广度,完全测试不可能,测试的投入与产出要均衡。
 
3、80-20原则,软件中80%的bug可以在分析、设计与评审阶段就能被发现与修正,16%的缺陷在系统的软件测试中发现,最后剩下的4%是用户长期使用的过程中才能暴露出来。
 
4、尽可能早的开展测试,越早发现错误,修改的代价越小。
 
5、发现错误较多的程序段,应进行更深入的测试。
 
6、软件项目一启动,软件测试也就是开始,而不是等程序写完,才开始进行测试。
 
7、软件开发人员即程序员应当避免测试自己的程序。
 
8、严格执行测试计划,排除测试的随意性,以避免发生疏漏或者重复无效的工作。
软件测试的目的
1、验证软件需求和功能是否得到完整实现
2、验证软件是否可以发布
3、尽可能多的发现软件中的bug
4、尽可能早的发现软件中的bug
5、对软件质量做出合理评估
6、预防下个版本可能出现的问题
7、预防用户使用可能出现的问题
8、发现开发过程中的问题和风险
如何划分缺陷严重程度
缺陷的严重程度:因缺陷引起的故障对软件产品使用的影响。
 
致命(Fatal):主要功能完全丧失,甚至造成人身危机,或者核心数据计算错误,app闪退,数据不可恢复。
 
严重(Critical):主要核心功能部分丧失,次要功能未实现,核心数据计算不精确,app闪退之后但是打开还可以恢复数据。
 
一般(bug):次要功能没有完全实现,提示信息不准确,用户界面差,操作时间过长。
 
较小(Minor 建议性缺陷):使用不方便,错别字,排版问题,但是不影响用户的使用和软件的执行操作。
 
详细描述一下测试活动的完整过程
 
1、项目经理通过和客户的交流,完成需求文档,由项目团队成员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。
 
2、开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。
 
3、测试人员根据修改好的需求文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档为测试人员设计和编写测试用例的补充文档。
 
4、测试用例完成后,项目团队成员需要对测试用例进行评审。
 
5、测试人员搭建环境。
 
6、开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现缺陷后提交到缺陷管理工具。
 
7、开发提交第二个版本,包括回归测试以及增加了部分功能,测试人员进行测试。
 
8、重复上面的工作,一般是3-4个版本后缺陷数量减少,基本满足需求的要求。
 
9、如果有客户反馈的问题,需要测试人员协助重现以及回归测试。
 
北大青鸟徐州中博Python全栈+人工智能、JavaEE+分布式开发、网络安全等热门学科,正在火热报名中,想从事互联网IT行业的同学,欢迎咨询或免费体验线上课程。
(责任编辑:中博IT教育)

苏公网安备 32030302000649号