测试工程师面试题目(三)

Apipost官方支持 测试技术 2021-09-01

1、什么是兼容性测试?兼容性测试侧重哪些方面?



主要检验的是软件的可移植性,检查软件在不同的硬件平台软件平台上是否可以正常的运行。细分会有:平台的兼容,网络兼容,数据库兼容,数据格式的兼容等。



2,常用的测试方法有哪些?



黑盒测试,白盒测试,静态测试和动态测试,手工测试和动态测试,回归测试,公测。



3,白盒测试和黑盒测试的区别?



黑盒测试是功能性测试,一般采用穷举输入测试,不会考虑内部的逻辑和实现。兼容性,安全性测试,压力测试,性能测试。



白盒测试是结构测试,一般是穷举路径测试,检测内部逻辑驱动结构。 – 语句覆盖 – 判定覆盖 – 条件覆盖 – 判定-条件覆盖 – 条件组合覆盖 – 路径覆盖。



4,静态测试和动态测试有什么区别?



静态测试是指不运行程序本身,仅通过分析程序文档结构,软件执行过程,检测程序的正确性,主要有变量,借口,递归等。



动态方法是指运行程序,检查运行结果与预期结果对比差异,并分析抗压性,健壮性等,这种测试包括三部分:构造测试实例,执行程序,分析程序输出结果。



区别一:静态测试是用于预防的,动态测试是用于矫正的

区别二:多次的静态测试比动态测试要效率和效益高

区别三:静态测试综合测试程序代码

区别四:在相当短的时间里,静态测试的覆盖度能达到100%,而动态测试经常是只能达到50%左右,原因动态测试发现的bug大部分只是在测试实际执行的那部分代码

区别五:动态测试比静态测试更花时间

区别六:静态测试比动态测试更能发现 bug

区别七:静态测试的执行可以在程序编码编译前,动态测试只能在编译后才能执行

区别八:静态测试能发现动态测试所不能发现的一些:“Syntax error,code that hard to maintain,code that hard to test,code that does not confirm to coding standard, and ANSI violations”



5、正交表测试用例设计方法的特点是什么?



参考答案:



用最少的实验覆盖最多的操作,测试用例设计很少,效率高,但是很复杂;



对于基本的验证功能,以及二次集成引起的缺陷,一般都能找出来;但是更深的缺陷,更复杂的缺陷,还是无能为力的;



具体的环境下,正交表一般都很难做的。大多数,只在系统测试的时候使用此方法。



6、什么是bugzilla?



是一套开源的bug追踪系统,可以管理软件开发中bug的提交,指派,修复,关闭等功能管理。提高测试和开发人员沟通效率。



7、测试用例设计的完整过程?



1,需求分析,



2,根据需求分析,得出测试需求



3,设计测试方案



4,评审设计方案,



5,通过后设计测试用例,



6,测试用例评审



7,测试



8、什么是loadrunner



是一个自动化负载测试工具,通过模拟上千万用户实施并发负载及实时性能检测,他能预测系统行为并评估系统性能,原理是通过代理方式获得客户端与服务器端的数据流。分为用户动作设计,场景设计,测试数据设计三个部分。



9、Beta测试与Alpha测试有什么区别?



Beta是用户实际使用的测试,没有开发者在场,Alpha测试是公司内部测试,有开发者监控。



10、工作版本的定义



一般一个软件在不断的升级优化中会产生不同的版本号,每一次变化较大或有重大特点出现的时候,会升级版本号第一个号,比如1.x,2.x,版本发布后一般会有bug修复的版本,这时候就是1.x,2.x等。



11、什么是桩模块?什么是驱动模块?



集成测试前要为被测模块编辑一些模拟其下级功能的子模块的替身,以代替被测模块的借口,接受或者传递数据,这些假模块被称为桩模块。



驱动模块一般为主程序,它接收测试数据并将这些数据传递到被测试模块。



12、什么是扇入和扇出?



扇入是指该模块被调用的次数,扇入大,说明该模块的复用性好。



扇出是指该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。



13、你认为做好测试工作的的关键是什么?



目的,管理,规范。



明确测试的目标,增强测试计划的实用性,2.坚持“5W”规则,明确内容与过程

3.采用评审和更新机制,保证测试计划满足实际需求,4. 分别创建测试计划与测试详细规格、测试用例



14、简述一下缺陷的生命周期?



提交->确认->分配->修复->验证->关闭



15,、软件的安全性应该从哪几个方面去测试?



1,用户认证机制,



2,加密机制



3,安全防护策略,安全日志等,



4,数据备份和恢复



5,防病毒系统。



16、单元测试,集成测试,系统测试的区别?



测试方法不同:单元测试属于白盒测试,集成测试属于灰盒测试,系统测试属于黑盒测试。



考察范围测试重点不同:单元测试注重单元内部的数据结构,逻辑控制,异常处理。



集成测试注重模块之间的接口及接口之间的数据传递,系统测试注重满足需求。



基准不同:单元测试主要的逻辑覆盖,集成测试主要是接口覆盖,系统测试是测试用例对需求规格的覆盖率。



17、用户文档包括哪些?



用户手册



安装设置



联机帮助,指南向导,



示例模板,



授权注册登记表



最终用户许可协议。



18、项目中碰到的需求问题,能够直接和客户沟通吗?



能,我在项目组中是对外接口人,我可以直接和客户方的代表开会进行沟通;不能\我们需要将问题整理到一起,由项目经理和测试经理作为接口人和客户进行沟通;我们的需求是产品线提的,关于需求问题我们直接找产品线。



19、需求确定中不确定的需求怎么解决?



项目组内讨论解决,如果还是得不到解决,需要找用户确认。



20、需求文档是谁编写的?



客户、产品线。



21、怎么进行需求测试?



会议讨论评审。



22、什么是测试点,测试点包含哪些内容?



就是针对功能细分的点,我们写的测试点类似于测试用例,是说什么功能的什么情况。



23、什么是测试方案,什么是测试策略?



方案是指导我们怎么测的问题,里面的主要内容是测试点。策略是指导我们要测什么方面,比如要进行功能测试,性能测试,兼容性测试等等,并指出需要依赖与什么工具。



24、测试方案是谁编写的?



有经验的测试工程师、分给谁谁写,自己写自己负责的那一部分,一般除了新员工都会写。



25、测试方案包含哪些内容?



业务功能的描述,对需求功能的理解,业务流程图,业务表,测试点等。



26、测试方案编写的输入条件是什么?



需求规格说明书,测试需求分析表。



27、测试用例设计方法有哪些?



等价类、边界值、错误推测法、场景法、因果图、判定表。



28、测试用例内容有哪些?



ID 、标题、 优先级、 预置条件 、操作步骤 、预期结果、 实际结果、测试人、测试时间。



29、什么是好的测试用例?



我觉得不遗漏的测试用例就是好的测试用例。



30、测试用例的颗粒度划分?



颗粒度的大小就是用例的粗细程度,每个项目组的尺度应该有所不同吧!



31、测试用例为什么需要有优先级,有哪一些优先级?



因为在不同阶段执行的用例数目是不同的,用例对应的功能的重要程度也是不同的,我们用的是高中低三级。



32、你们以前一天能够编写多少条测试用例?



30条左右吧,没怎么统计过,大概是这个数,没怎么统计过。



33、你们项目一共有多少条测试用例?



500-------到2000,具体项目具体分析,和项目大小颗粒度大小都有关系。



34、高中低优先级的测试用例的比例占多少?



3:4:3 的比例吧!



36、测试用例需要哪些人来评审?



测试组内评审的,因为我们的方案是全体项目组成员(PM/SE开发和测试)来评审的并且方案里的测试点写到了测试用例标题的程度。我们是项目组全体来评审的额,毕竟测试是保证软件质量的最后一个环节,测试用例是测试执行的依据,所以测试用例十分重要,项目组非常重视测试用例的评审,希望把漏测的降到最低,所以我们的测试用例是项目组全体成员来评审的。



37、一个项目需要写多少测试用例怎么估算?



这个在需求分析之后根据测试点来评估的,我们的测试点写的很细,所以测试用例的数目几乎等于测试点的数目。



38、测试用例是谁写的?



测试人员。



39、不能发现BUG的测试用例不是好的测试用例吗?



我不这样认为,我觉得在执行之前,每个用例都可能发现缺陷,好的测试用例是一套完整的不遗漏的测试用例,是能够被其他的测试人员执行的测试用例。不能因为是否找到BUG来说明用例是否好。



40、为什么要进行交叉测试?



因为自己执行自己设计的用例,会按照设计用例的思路来执行用例,可能会忽略一些偶然或异常的情况,交叉执行可能会发现新的BUG,当然如果用例已经写得很细,颗粒度很小吗,输入输出写得很全面交叉执行的结果都会差不多,无论谁来执行结果都是一样的。



41、测试环境是谁搭建的?



我们老大、CMO/测试人员



42、你们测试版本实在哪获取的?



开发搞定之后提交到SVN上,我们去SVN上获取。



43、什么叫预测试,预测试是怎么进行的,预测试一般为多长时间?



预测试就是开放刚刚开发完成,测试环境刚搭建起来,这时我们要对系统的各种功能能不能跑通,业务流程能不能完成进行测试,就是冒烟测试,这就是转测试,我们转测试大概需要一天的时间。



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



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



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



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



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



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



47、测试的目的是什么?



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



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



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



49、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。



有黑盒和白盒两种测试种类。

黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。

白盒有逻辑覆盖法,循环测试路径选择,基本路径测试。



例子:在一次输入多个条件的完整性查询中。利用等价类划分法则和边界分析法则。

首先利用等价划分法,可以一个或多个结果是OK的测试用例,

然后确认多个NG的测试用例,

然后利用边界值分析法,可以对结果分别是OK和NG的测试用例进行扩展和补充。



50、您认为做好测试用例设计工作的关键是什么?



测试用例设计工作的关键是对可行的和不可行的都要考虑。

1,输入2,详细的操作步骤3,预期输出4,实际输出。



51、您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。



有使用过LoadRunner,该工具能够录制测试人员的操作步骤,然后对这个操作步骤模拟出多个用户来播放出来。



1、Visural UserGenertor创建脚本,选择协议,录制操作,编辑操作。

2、中央控制器(Controller)调度虚拟用户,创建场景,选择脚本,建立虚拟用户,设计shedual,设置ip spoofer。

3、运行脚本。分析shedual。

4、分析测试结果。



52、您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?



性能测试工作的目的是检查系统是否满足在需求说明书中规定的性能,性能测试常常需要和强度测试结合起来,并常常要求同时进行软件和硬件的检测。性能测试主要的关注对象是响应时间,吞吐量,占用内存大小(辅助存储区),处理精度等。



53、在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?



检测时间,系统环境,硬件环境,严重程度,程式版本,确认人,功能模板,问题描述,详细操作步骤,是否会重现。

问题描述和详细操作步骤要尽可能详细。

Bug应该尽量用书面语,对于严重程度比较高的缺陷要在相同环境下测试一遍。

在C\S模式下,如果条件满足可以使用替换法来确认是client端的问题还是server端的问题。



54、你对测试最大的兴趣在哪里?为什么?



最大的兴趣就是具有挑战性。因为我并不知道哪里会出现bug,在找到一个bug后会很高兴。

并且测试需要很强的耐心和细心。我可以很容易的找到一些细节问题。



55、测试活动中,如果发现需要文档不完善或者不准确,怎么处理?

要及时的与项目经理进行沟通协调。要在邮件中详细的把不完善不准确的地方描述出来,并提出自己的意见。

56、你认为做好测试计划工作的关键是什么?



首先,要有一个明确的目标,详细的阅读需求文档说明。

其次,要对整个测试人员、测试时间、测试进度进行一个预估,并预先进行管理。

最后,要对整个测试流程设定一个规范,所有测试人员都按着规范做事,不能随心所欲的测试。



57、软件配置管理工作开展的情况和认识?



拿到一台裸机过后要安装客户需要的操作系统,并且安装一些所必须的软件。



58、你觉得软件测试通过的标准应该是什么样的?



测试用例完全执行,测试用例覆盖到所有的测试点,并且缺陷的密度达到客户的需求。



59、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统的用户文档包括哪些?



用户安装文档、用户配置文档、用户使用手册、联机指导等。



60、简述软件系统中用户文档的测试要点?



完整性:用户文档中功能的描述要完整的。不能让用户产生疑问。

一致性:用户文档中的功能描述要与实际软件中的功能一致。不能描述过盛。易使用性:用户文档描述的内容要方便用户阅读并且能够让用户很清楚的知道如何操作。

图表:有的时候用图表描述会很明了。



61、什么是系统瓶颈?



系统瓶颈就是软件在一定的并发量、访问量下无法达到用户的需求。比如说用户需要在10s内完成一个访问,但是每一次都要12s才能完成,这个就是性能瓶颈,有可能是程序本身的问题,也有可能和操作系统、软件相关。



62、没有产品说明书和需求文档地情况下能够进行黑盒测试吗?



可以。这个情况下我们就要进行探索性测试,把软件当成用户需求,一步步进行测试。凭借经验判断功能正确与否,有的时候还可以与项目经理、开发人员一起进行交流沟通,从而进行更好的测试。



63、为什么尽量不要让时间富裕的员工去做一些测试?



首先,专业的测试人员是有一定的技能和耐心对软件一步一步进行测试。

如果让时间充裕的员工去测试的话,他可能心思并不在测试上面。会很随意的、没有目标的进行测试。

这样子的话测试并不完整,有的时候甚至很重要的bug都没法找出。所以还是需要专业的测试人员来进行测试的。



64、完全测试程序是可能的吗?



不可能测试人员对程序进行测试,只能找出程序中的bug,但是并不能保证程序是没有bug的。

完全的测试要花费很多的人力财力,并且测试的数据量过大,很浪费时间。

测试的结果还很多,有的都是类似的,没有必要进行相同的测试。

所以完全测试是不可能的。



65、软件测试的风险主要体现在哪里?



主要体现在没法完全测试。

有些问题可能隐藏在没有测到的地方。这样子就被忽略了。

客户使用的时候并不熟悉软件是如何操作的。

可能有的时候会误点点出问题。这样子的话我们就要承担很大的风险了。



66、发现的缺陷越多,说明软件缺陷越多吗?

是的,通常如果发现一个缺陷的话,有的时候会发现很多类似的缺陷,

因为由于开发人员的习惯,可能一个地方有错误,另外一个地方就会有相同的错误。



67、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?



从理论上来说所有的缺陷都是可以修复的,但是并不是所有的缺陷都要修复。一些对于软件没有影响的、不影响使用的缺陷我们可以不用修复。

因为修复些细小的缺陷也是需要花费很多时间。

项目上面可能会因为时间问题而先忽略这些小缺陷。



68、开发人员老是犯一些低级错误怎么解决?



要在开发的前期就制定好一些编码规范,这样子可以减少很多因为个人习惯引起的错误。

同时,测试人员在发现开发人员犯一些低级错误的时候不可以指责他们,要耐心的给他们指出错误所在。

然后可以有开发人员自己进行测试,找出一些一眼看得出来是错误的地方。



69、您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?



我一般都是做的Web测试,搭建测试环境,对于一个程序进行集成测试,系统测试,回归测试等。

还要编写测试用例以及一些文档,用户使用手册,功能测试文档等等。

最擅长的是功能测试。



70、开发人员说不是bug时,你如何应付?



首先把自己的理由告诉开发人员。

在同开发人员沟通到底是不是bug,但是如果开发人员还是认为不是bug的话,就把这个问题提到项目经理处,同时附上自己的理由。

有项目经理决定是否为bug。



71、软件测试项目从什么时候开始为什么?



一般软件测试越早展开越好,一般是从需要阶段就要进行软件测试。

软件测试不仅是测试功能,对于需求文档一类的也要进行测试。

越早的找出bug,就会减少后续开发人员修改程序的次数,并且可以降低成本,如果等整个软件开发的差不多了发现一个致命的错误的话,是需要花费很多时间和人力来重新修改的。

如果在一开始就发现的话就不会出现这种情况了。



72、你能不能说下你的3-5年的职业规划?



首先,要巩固自己的测试基础知识,在基本知识扎实的情况下提高理解需求文档地能力。

其次,学习自动化测试工具,并将它运用到测试中。

然后,在测试技术达到一定程度后,要学会如何带领一个测试团队。

最后,争取在最快的时间内达到测试经理的水平。



73、功能测试用例需要详细到什么程度才是合格的?



测试用例覆盖到所有的测试点。



74、一个缺陷测试报告的组成?



缺陷编号、缺陷标题、缺陷描述、缺陷的优先级、缺陷的重要程度、缺陷所述的模块、缺陷所属的版本、缺陷所属的开发人员、输入数据、输出结果、缺陷分析等。



75、测试用例通常包括哪些内容?



用例编号、测试环境、用例标题、输入数据、预期结果等



76、你都用什么测试方法?



根据不同的系统和模块有不同的方法。主要是黑盒测试和白盒测试。



77、软件的评审一般由哪些人员参加?其目的是什么?



参加人员:客户、项目经理、开发人员、测试人员

目的:查看软件在未正式投入运行前是否还存在问题。

对于不同软硬件平台能否正常运行,是否有与客户理解不一致的地方,

同时可以对一些可以改进的地方再多加改进。



78、什么是软件测试,软件测试的目的?



软件测试是通过人工或者自动化的操作进行还没有商业化用途的程序,查看他们的功能是否满足客户需求。

目的:在最短时间内找出尽可能多的软件缺陷。



79、什么是兼容性测试?



兼容性测试是检查软件在不同软件平台,硬件平台上是否可以正常运行的测试。

主要查看软件在不同操作系统、浏览器、数据库中是否运行正常。



80、什么是软件测试?



为了发现程序中的错误而执行程序的过程



81、软件测试的对象有哪些?



软件测试并不等于程序测试。

软件测试应贯穿于软件定义与开发的整个期间。

需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。



82、当测试过程发生错误时,有哪几种解决办法?



1)跳转到别的测试过程

2)调用一个能够清除错误的过程

3)退出过程,启用另一个退出过程和应用程序,重新启动Windows,在失败的地方重新开始测试



83、怎么才能够全面的测试到每一个点?



测试的全面性主要需要在设计测试计划的时候考虑,从测试策略,产品需求等等多个角度考虑从而定义全部的测试点。



84、开发与测试的关系?



开发和测试是一个有机的整体。

在产品发布之前,开发和测试是循环进行的,测出的缺陷要经开发人员修改后继续测试。

在开发的同时测试经理开始编写测试用例,测试文档要参考开发文档,所以开发和测试是不可分割的,少了任何一个都不能开发出产品。



85、测试活动中统计了哪些数据?



工作量bug数量



86、进行测试时产生了哪些文档或记录?



测试的整个过程有系统测试计划、系统测试用例、系统测试报告、缺陷报告、产品发布说明。

在执行测试的过程中只有缺陷报告,这个还是用在缺陷管理工具中进行的,最后在工具中导出缺陷报告。



87、怎样做好测试计划?



1)理解系统。从整个系统的高度了解被测系统必须满足的功能和非功能性需求。利用涉及整个系统的文档,形成对系统的整体了解。

2)及早介入。为了深入了解项目,测试人员应该在系统的开始阶段介入,可以增加对客户需求,客户问题,潜在风险以及最重要的功能方面的理解

3)测试期望。程序员的期望是什么?客户的期望是什么?销售对测试的期望又是什么?测试目标必须是绝对的,以免说不清是否达到目标。

4)吸取教训。把以前工作中学习到的经验教训运用过来,对确定测试策略很有作用。

5)工作量太小。完成测试需要多少工作量?需要多少人员?

6)技术选择。系统会采取什么技术?系统会采用什么架构?这些信息有助于确定测试策略和测试工具。

7)时间表。系统开发和测试分配的时间有多长?截止日期是什么时候?



88、测试用例如何设计的?



在测试用例的设计之前首先要仔细阅读开发的详细设计文档,充分了解产品的详细功能,不清楚的地方与开发人员进行沟通,搞懂每个功能,尽量详细到输入框、按钮等小功能,功能点清楚之后按照功能模块分类进行用例编写。

在具体的用例设计中会运用到等价类边界值等黑盒测试方法



89、简单概述缺陷报告,并说明包括哪些项?



现在缺陷报告一般不再使用纸质档文档编写,而是专用测试管理工具(如TestDirector),这样便于缺陷管理。

在这些工具中,每个缺陷作为一条记录输入指定的缺陷管理系统中。

缺陷报告包括:软件名称、版本号、功能模板、缺陷编号、对应的用例编号、编写时间、编写人、测试员、预期结果、实际结果、缺陷描述、严重级别、优先级别



90、什么是bug?



软件的bug指的是软件中(包括程序和文档)不符合用户需求的问题。

常见的软件bug分为以下三类:没有实现的功能完成了用户需求的功能,但是运行时会出现一些功能或性能上的问题实现了用户不需求的多余功能



91、开发人员修复缺陷后,如何保证不影响其他功能?



重新执行用例、看是否出现错误结果。并对周围的一些相关功能点追加新的测试用例。



92、什么时候功能测试?



功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。



93、请问功能测试和性能测试的区别是什么?



1)测试目的

功能测试:检测实际软件的功能是否符合用户需求,测功能是不是全部实现,某个实现是不是有BUG。

主要为了发现以下几类错误:

A、是否有不正确或遗漏的功能?

B、功能实现是否满足用户需求和系统设计的隐藏需求?

C、能否正确接收输入?能否正确输出结果?



性能测试:验证软件质量的三个质量特性,可靠性,正确性和效率。主要是测试产品的健壮性



2)测试方式

功能测试按照系用例,按照系统需求说明书和测试用例,对产品的功能一步步进行测试。找出产品功能是否全部实现



性能测试:一般都使用性能工具对产品的健壮性进行评估。通过创建场景和虚拟用户模拟真实环境,进行压力测试和负载测试。



94、为什么选择测试这行?



它是一个新兴的行业,有发展潜力,而且很锻炼人,需要掌握更多的技能,比做开发要更全面。

————————————————

版权声明:本文为CSDN博主「互联网叫兽」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_29914837/article/details/86521780

Apipost 私有化火热进行中

评论