软件测试岗常问的超高频面试题目,2024最强版,附答案

1、你的测试职业发展是什么?

测试经验越多,测试能力越高。所以我的职业发展是需要时间积累的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年积累测试经验,按如何做好测试工程师的要点去要求自己,不断更新自己改正自己,做好测试任务。

优势在于我对测试坚定不移的信心和热情,虽然经验还不够,但测试需要的基本技能我有信心在工作中得以发挥。

2、你认为测试人员需要具备哪些素质

做测试应该要有一定的协调能力,因为测试人员经常要与开发接触处理一些问题,如果处理不好的话会引起一些冲突,这样的话工作上就会不好做。还有测试人员要有一定的耐心,有的时候做测试很枯燥乏味。除了耐心,测试人员不能放过每一个可能的错误。

3、你为什么能够做测试这一行

虽然我的测试技术还不是很成熟,但是我觉得我还是可以胜任软件测试这个工作的,因为做软件测试不仅是要求技术好,还有有一定的沟通能力,耐心、细心等外在因素。综合起来看我认为我是胜任这个工作的。

4、测试的目的是什么?

测试的目的是找出软件产品中的错误,是软件尽可能的符合用户的要求。当然软件测试是不可能找出全部错误的。

5、测试分为哪几个阶段?

一般来说分为5个阶段:单元测试、集成测试、确认测试、系统测试、验收测试

6、单元测试的测试对象、目的、测试依据、测试方法?

测试对象是模块内部的程序错误,目的是消除局部模块逻辑和功能上的错误和缺陷。测试依据是模块的详细设计,测试方法是采用白盒测试。

7、怎样看待加班问题

加班的话我没有太多意见,但是我还是觉得如果能够合理安排时间的话,不会有太多时候加班的。

8、结合你以前的学习和工作经验,你认为如何做好测试。

根据我以前的工作和学习经验,我认为做好工作首先要有一个良好的沟通,只有沟通无障碍了,才会有好的协作,才会有更好的效率,再一个就是技术一定要过关,做测试要有足够的耐心,和一个良好的工作习惯,不懂的就要问,实时与同事沟通这样的话才能做好测试工作。

9、你为什么选择软件测试行业

因为之前了解软件测试这个行业,觉得他的发展前景很好。

10.软件测试级别?

单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。(测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试)

集成测试:(集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。主要目的是检查软件单位之间的接口是否正确。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

系统测试:将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。系统测试的目的是对最终软件系统进行全面的测试,确保最终软件系统满足产品需求并且遵循系统设计。测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

验收测试:验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。总结验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务,即软件的功能和性能如同用户所合理期待的那样。测试内容:同系统测试(功能...各类文档等)

11.软件测试类型?

功能测试:也叫黑盒测试,功能测试指测试软件各个功能模块是否正确,逻辑是否正确。对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接收、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面(GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。

性能测试:指验证软件的性能可以满足系统规格给定的指定要求的性能指标。性能测试是一个比较大的范围,可以进一步衍生出负载测试、强度测试、压力测试、稳定性测试。通过自动化测试工具模拟多种正常、异常、峰值条件,对系统各项性能指标测试

配置测试:用硬件来测试软件运行情况,1.软件在不同主机上运行的情况(Apple和Dell)2.在不同组件上运行情况(开发的拨号程序要测试不同厂商生产的Moden上运行情况)3.不同的外设、接口、内存的运行情况

强度测试:强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。

负载测试:通过在被测系统上不断加压,直到性能指标达到极限,例如"响应时间"超过预定指标或都某种资源已经达到饱和状态。负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

压力测试:压力测试方法测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。测试出系统所能承受的最大极限。是指系统在极限下的压力情况,系统在什么样的压力下会导致系统得到失效,无法正常运行。100个用户连续访问1小时可以看做是压力测试,连续访问10小时可以认为是负载测试

稳定性测试:压力测试方法测试系统在一定饱和状态下,例如cpu、内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误。一般是稍大于业务量的一个负载,对系统进行的一个持续的,长时间的测试,比如24*3,连续3天的施加压力,确定系统在较长运行时间的情况下,系统的稳定性情况

网络测试:wifi、4G、3G、不同运营商网络测试、

UI界面测试:UI测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等。

分辨率测试:测试在不同分辨率下,界面的美观程度,分为800600,1024768,1152864,1280768,12801024,12001600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。

安装测试:安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。

内存测试:CPU测试、响应时间测试、唤醒率测试等,都属于性能测试。还有强度测试、容量测试、基准测试等。

文档测试:文档测试是检验样品用户文档的完整性、正确性、一致性、易理解性、易浏览性。包括用户手册、使用说明、用户帮助文档等

可靠性测试:这个主要是硬件方面的,比如高低温测试、防水防尘等测试

安全测试:对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网管、关来访问。比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?

兼容测试:检查软件在不同软件、硬件平台是否可以正常运行。 主要查看在不同操作系统、浏览器、数据库、不同版本是否正常运行、向前兼容和向后兼容、、数据共享兼容

浏览器兼容性测试:测试软件在不同产商的浏览器下是否能够正确显示与运行、比如测试IE,Natscape浏览器

操作系统兼容性:测试软件在不同操作系统下是否能够正确显示与运行;比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?

硬件兼容性

测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用。比如在INTER,舒龙CPU芯片下系统是否能够正常运行?

并发测试:并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用、同一个模块或者数据记录时是否存在死锁或其者他性能问题。也就是说,这种测试关注点是多个用户同时(并发)对一个模块或操作进行加压。

12.测试方法:动态测试、静态测试;黑盒测试、白盒测试、灰盒测试。

、黑盒测试方法:

1>等价类划分:等价类划分是将系统的输入域划分为若干部分,然后从每个部分选取少量代表性数据进行测试。等价类可以划分为有效等价类和无效等价类,设计测试用例的时候要考虑这两种等价类。

2>边界值分析法:边界值分析法是对等价类划分的一种补充,因为大多数错误都在输入输出的边界上。边界值分析就是假定大多数错误出现在输入条件的边界上,如果边界附件取值不会导致程序出错,

那其他取值出错的可能性也就很小。

边界值分析法是通过优先选择不同等价类间的边界值覆盖有效等价类和无效等价类来更有效的进行测试,因此该方法要和等价类划分法结合使用。

3>错误猜测法:错误猜测法主要是针对系统对于错误操作时对于操作的处理法的猜测法,从而设计测试用例

3、白盒测试方法:

1>语句覆盖:就是设计若干个测试用例,运行被测程序,使得每一个可执行语句至少执行一次。

2>判定覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次。

3>条件覆盖:条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,判定中每个条件的所有可能结果至少出现一次,但未必能覆盖全部分支

4>判定条件覆盖:判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能判断结果至少执行,即要求各个判断的所有可能的条件取值组合至少执行一次。

5>条件组合覆盖:在白盒测试法中,选择足够的测试用例,使所有判定中各条件判断结果的所有组合至少出现一次,满足这种覆盖标准成为条件组合覆盖。

6>路径覆盖:是每条可能执行到的路径至少执行一次

灰盒测试

定义:介于黑、白盒测试之间的,关注输出对于输入的正确性,同时也关注内部表现

静态测试

1,静态测试是指无需执行被测程序,而是通过评审软件文档或代码,度量程序静态复杂度,检查软件是否符合编程标准,借以发现编写的程序的不足之处,减少错误出现的概率

动态测试

1,动态测试是指通过运行被测程序,检查运行结果和预期结果的差异,并分析运行效率,正确性和健壮性等

2,静态(看外观)和动态(发动车走一段路)可以用买车来说明

手工测试

由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。

更适用针对深度的测试和强调主观判断的测试

比如:众包测试和探索式测试

自动化测试

1.适用单独的测试工具软件控制测试的自动化执行以及对预期和结果进行自动检查。

2.手工测试和自动化测试的区别?

手动测试:优点:易发现缺陷、容易实施、灵活性 缺点:覆盖量低、重复测试效率低、可靠性低、人力资源依赖

自动化测试:优点:高效率,速度快、高复用性、覆盖率高、准确可靠、不知疲劳 缺点:机械发现缺陷率低、一次性投入大

安全测试

安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。

Findyou觉现在对安全知识的普及,大家意识都提上来了。比如现在越来越多的不支持HTTP协议,转用HTTPS等。

探索性测试

探索性测试可以是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略

随机测试

随机测试主要是根据测试者的经验对软件进行功能和性能抽查。

根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例(TestCase)没有覆盖到的部分。

冒烟测试

关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。冒烟测试目的是确认软件基本功能正常,现基本执行对象为测试人员,在正规测试一个新版本之前,投入较少的人力和时间验证基本功能,通过则测试准入。

α测试

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成。

β测试

Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个客房场所进行。

13.alpha测试和beta测试的区别

1、测试时间不同:

Beta测试是软件产品完成了功能测试和系统测试之后,产品发布之前所进行的软件测试活动,它是技术测试的最后一个阶段。

alpha测试简称"α测试",可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

2、测试的目的不同:

α测试的目的是评价软件产品的(即功能、局域化、可用性、可靠性、性能和支持)。尤其注重产品的界面和特色。α测试即为非正式验收测试。

Beta测试是一种验收测试,通过了验收测试,产品就会进入发布阶段。

测试人员及场所不同:

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序员或测试员完成。α测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。

Beta测试由软件的最终用户们在一个或多个客户场所进行。开发者通常不在Beta测试的现场,因Beta测试是软件在开发者不能控制的环境中的"真实"应用。

14.测试设计方法:

等价类划分、边界值、因果图划分、正交、场景、随机、错误推断、测试大纲

等价类划分法: : 1:有效等价类: 2:无效等价类:

案例:比如一个登陆输入框,规定只能输入中文,同时长度为6-10,

通过等价类设计测试用例:

测试用例中重要的三步: 输入 操作 预计结果 如果与预期结果不符合就是bug

有效等价类: 输入:输入长度为6的中文,输入的为王小明,这就是有效等价类

无效等价类:

1: 输入长度为4的中文,输入位小名,点击登录,预计结果长度不符合要求

2: 输入长度为6,但是是英文的,点击登录,预计结果 请输入中文

3: 输入长度为4,而且不是中文的,是数字,1234,点击登录,预计结果请输入中文并且长度为6-10位

4:输入长度为12而且不是中文的,比如qwertyuiopas,点击登录,预计结果请输入中文并且长度为6-10位

二:边界值法:

应用场景:边界值往往和等价类划分法一起使用,形成一套更为完善的测试方案,找到有效数据和无效数据的分界点,

注解边界值一般和有效等价类划分法配合使用:

上面输入框的边界的:如果固定大于等于6,并且小于等于10,

那左边界就是 5和 6

右边界是:10 和 11

测试用例:

1:输入的为王小明,这就是有效等价类和边界值的结合使用

2:输入小名,这就是边界值为5,同时有效等价类

3:输入欧阳致远家,这就是边界值10,同时等价类有效

4:输入欧阳致远啦啦,这就是边界值为11,同时有效等价类

三:因果图及判定表法:

应用场景:在一个界面中有多个控件,如果控件之间有组合关系或者限制关系,不同的控件组合会产生不同的输入结果,为了弄清楚不同的输入组合会产生咋样的输出结果,可以使用因果图及判定表法:

判断是儿童还是青年还是成年人:

条件1:年龄 age

条件2:身高height

条件3:体重weight

输入年龄5,体重80公斤,身高170,查无此人

输入提高80,身高170,输入年龄20,成年人

输入年龄5,体重30,身高60,小孩

四:正交表:

应用场景:在一个界面中有多个控件,每个控件有多个取值,测试时考虑不同的控件不同取值之间的多种组合,但组合数量巨大(>20种,20种以下一般考虑判定表因果图),没有必要全部测试,如何从所有的组合中挑选最少、最优的组合进行测试,可以使用正交排列法。

正交表的测试思想特点:

1)使用每个控件的每个取值参与组合的次数是基本相等的(均匀的)

2)在所有的组合数据中,选取数据时,应该均匀的选取,而不能从局部选取。

3)如果时间允许,尽可能的多测一些组合

正交表:主要针对一个输入框里面可能有多个值,而且数量巨大

年龄 体重 省 市 县

比如:输入年龄 18,体重45,山西 大同 阳高

五:测试大纲法

适用场合:程序包含多个窗口,每个窗口中又有多个功能,这些功能之间又有一定的联系。为了梳理清楚窗口之间以及窗口不同功能之间的联系,使用测试大纲法。

六:场景法

适用场合:大多数的业务比较复杂的软件系统都适合使用场景法(便于将各个功能点串起来,便于形成完整的业务感觉)是一种基于软件业务的测试方法,把自己当成最终用户,尽可能的模拟用户在使用此软件的操作

案例:

场景一:比如买东西:输入袜子,点击查询,出现列表,点击七匹狼,点击进入详情,点击加入购物车,点击去购物车结算,点击收获地址,点击支付,支付成功

场景二:比如买东西:输入袜子,点击查询,出现列表,点击七匹狼,点击进入详情,点击加入购物车,点击去购物车结算,点击收获地址,点击取消支付

七: 错误推断法

基于经验和直觉推测程序中所有可能存在的各种错误 , 从而有针对性的设 计测试用例的方法

在进行灰盒测试的时候经常用到此方法

八:随机测试

随意测试,不考虑任何用例和需求,完全站在一个用户或者的角度对产品进行使用。

适用场景:

1) 所有之前设定的用例已经 执行完毕

2)海量的条件组合无法一遍 历的时候

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关推荐
Lee川13 小时前
优雅进化的JavaScript:从ES6+新特性看现代前端开发范式
javascript·面试
Lee川16 小时前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
晴殇i18 小时前
揭秘JavaScript中那些“不冒泡”的DOM事件
前端·javascript·面试
绝无仅有19 小时前
Redis过期删除与内存淘汰策略详解
后端·面试·架构
绝无仅有19 小时前
Redis大Key问题排查与解决方案全解析
后端·面试·架构
AAA梅狸猫20 小时前
Looper.loop() 循环机制
面试
AAA梅狸猫20 小时前
Handler基本概念
面试
Wect20 小时前
浏览器缓存机制
前端·面试·浏览器
掘金安东尼21 小时前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼21 小时前
Next.js 企业级落地
前端·javascript·面试