软件测试求职面试题目及答案大全

时间:2022-12-16 10:55:04 公文范文 来源:网友投稿

下面是小编为大家整理的软件测试求职面试题目及答案大全,供大家参考。

软件测试求职面试题目及答案大全

软件测试求职面试题目及答案大全

软件测试员协助工程师编写测试计划,测试用例,协助工程师对软件项目进行测试,做好错误记录并提交。今天小编整理了软件测试求职面试题目及答案供大家参考,一起来看看吧!

一、什么是软件测试?

IEEE中是这样描述的:使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

二、为什么要开展软件测试呢?

首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程的缺陷,以便及时改进。同时,这种分析也能帮助测试人员设计出游针对性的测试方法,改善测试的效率和有效性。

其次,没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法。

简单地说,测试的根本目的就是确保最终交给客户的产品符合用户的需求,在产品交给用户之前尽可能多地发现并改正错误。

三、我们怎么开展软件测试呢?

现代软件测试活动一般包括以下内容:

制定测试计划。

设计测试用例。

实施测试。

提交缺陷报告。

测试总结。

四、软件测试要达到什么目标呢?

软件测试一般要达到下列目标:

确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。

确保产品满足性能和效率的要求。使用起来系统运行效率低、用户界面不友好,用户操作部方便的产品不能说是一个有竞争力的产品。用户最关心的不是产品的技术有多先进,而是他能从这些技术中得到多少好处,使用是否得心应手。

确保产品是健壮的和适应用户环境的。健壮性即稳定性,是产品质量的基本要求。

五、测试和调试有什么不同?

测试调试

发现软件的错误(是否满足用户需求) 确定程序中可疑错误的原因和确切位置,对程序(设计或编号)进行修改,排除错误

贯穿整个软件生命周期(很多公司只在编码后期才进行测试) 主要在开发阶段

由测试人员和程序员参与程序员参与

可见,有些人认为测试和调试时一码事是错误的,实际上测试与调试有着本质的区别。简单地说,测试的主要工作是找缺陷,而调试的目的是解决缺陷。具体地讲,软件测试时在进行成功的软件调试后才开始进行的。

六、怎样才能成为一个优秀的测试工程师?

一个优秀的测试工程师必须具备的素质如下:

1、很强的责任心

2、良好的沟通能力

3、团队合作精神

4、耐心、细心、信心

5、时时保持怀疑态度,并且有缺陷防护意识

6、具备一定的编程经验

1、软件测试的策略是什么?

软件测试策略:在一定的软件测试标准、测试规范的指导下,依据测试项目的特定环境约束而规定的软件测试的原则、方式、方法的集合。

2、软件测试分为几个阶段?各阶段的测试策略和要求是什么?

和开发过程相对应,测试过程会依次经历单元测试、集成测试、系统测试、验收测试四个主要阶段:

单元测试:单元测试是针对软件设计的最小单位––程序模块甚至代码段进行正确性检验的测试工作,通常由开发人员进行。

集成测试:集成测试是将模块按照设计要求组装起来进行测试,主要目的是发现与接口有关的问题。由于在产品提交到测试部门前,产品开发小组都要进行联合调试,因此在大部分企业中集成测试是由开发人员来完成的。

系统测试:系统测试是在集成测试通过后进行的,目的是充分运行系统,验证各子系统是否都能正常工作并完成设计的要求。它主要由测试部门进行,是测试部门最大最重要的一个测试,对产品的质量有重大的影响。

验收测试:验收测试以需求阶段的《需求规格说明书》为验收标准,测试时要求模拟实际用户的运行环境。对于实际项目可以和客户共同进行,对于产品来说就是最后一次的系统测试。测试内容为对功能模块的全面测试,尤其要进行文档测试。

单元测试测试策略:

自顶向下的单元测试策略:比孤立单元测试的成本高很多,不是单元测试的一个好的选择。

自底向上的单元测试策略:比较合理的单元测试策略,但测试周期较长。

孤立单元测试策略:最好的单元测试策略。

集成测试的测试策略:

大爆炸集成:适应于一个维护型项目或被测试系统较小

自顶向下集成:适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。

自底向上集成:适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。

基于进度的集成 优点:具有较高的并行度;能够有效缩短项目的开发进度。

缺点:桩和驱动工作量较大;有些接口测试不充分;有些测试重复和浪费。

系统测试的测试策略:

数据和数据库完整性测试;功能测试;用户界面测试;性能评测;负载测试;强度测试;容量测试;安全性和访问控制测试;故障转移和恢复测试;配置测试;安装测试;加密测试;可用性测试;版本验证测试;文档测试

3、软件测试各个阶段通常完成什么工作?各个阶段的结果文件是什么?包括什么内容?

单元测试阶段:各独立单元模块在与系统地其他部分相隔离的情况下进行测试,单元测试针对每一个程序模块进行正确性校验,检查各个程序模块是否正确地实现了规定的功能。生成单元测试报告,提交缺陷报告。

集成测试阶段:集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。该阶段生成集成测试报告,提交缺陷报告。

系统测试阶段:将通过确认测试的软件,作为整个给予计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行全面的功能覆盖。该阶段需要提交测试总结和缺陷报告。

4、测试人员在软件开发过程中的任务是什么?

(1)尽可能早的找出系统中的Bug;

(2)避免软件开发过程中缺陷的出现;

(3)衡量软件的品质,保证系统的质量;

(4)关注用户的需求,并保证系统符合用户需求。总的目标是:确保软件的质量。

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

一条Bug记录最基本应包含:

bug编号;bug严重级别,优先级;bug产生的模块;首先要有bug摘要,阐述bug大体的内容;bug对应的版本;bug详细现象描述,包括一些截图、录像....等等;bug出现时的测试环境,产生的条件即对应操作步骤;高质量的Bug记录:

1)通用UI要统一、准确缺陷报告的UI要与测试的软件UI保持一致,便于查找定位。

2)尽量使用业界惯用的表达术语和表达方法使用业界惯用的表达术语和表达方法,保证表达准确,体现专业化。

3)每条缺陷报告只包括一个缺陷每条缺陷报告只包括一个缺陷,可以使缺陷修正者迅速定位一个缺陷,集中精力每次只修正一个缺陷。校验者每次只校验一个缺陷是否已经正确修正。

4)不可重现的缺陷也要报告首先缺陷报告必须展示重现缺陷的能力。不可重现的缺陷要尽力重现,若尽力之后仍不能重现,仍然要报告此缺陷,但在报告中要注明无法再现,缺陷出现的频率。

5)明确指明缺陷类型根据缺陷的现象,总结判断缺陷的类型。例如,即功能缺陷、界面缺陷、数据缺陷,合理化建议这是最常见的缺陷或缺陷类型,其他形式的缺陷或缺陷也从属于其中某种形式。

6)明确指明缺陷严重等级和优先等级时刻明确严重等级和优先等级之间的差别。高严重问题可能不值得解决,小装饰性问题可能被当作高优先级。

7)描述(Description),简洁、准确,完整,揭示缺陷实质,记录缺陷或缺陷出现的位置描述要准确反映缺陷的本质内容,简短明了。为了便于在软件缺陷管理数据库中寻找制定的测试缺陷,包含缺陷发生时的用户界面(UI)是个良好的习惯。例如记录对话框的标题、菜单、按钮等控件的名称。

8)短行之间使用自动数字序号,使用相同的字体、字号、行间距短行之间使用自动数字序号,使用相同的字体、字号、行间距,可以保证各条记录格式一致,做到规范专业。

9)每一个步骤尽量只记录一个操作保证简洁、条理井然,容易重复操作步骤。

10)确认步骤完整,准确,简短保证快速准确的重复缺陷,“完整”即没有缺漏,“准确”即步骤正确,“简短”即没有多余的步骤。

11)根据缺陷,可选择是否进行图象捕捉为了直观的观察缺陷或缺陷现象,通常需要附加缺陷或缺陷出现的界面,以图片的形式作为附件附着在记录的“附件”部分。为了节省空间,又能真实反映缺陷或缺陷本质,可以捕捉缺陷或缺陷产生时的全屏幕,活动窗口和局部区域。为了迅速定位、修正缺陷或缺陷位置,通常要求附加中文对照图。 附加必要的特殊文档和个人建议和注解如果打开某个特殊的文档而产生的缺陷或缺陷,则必须附加该文档,从而可以迅速再现缺陷或缺陷。有时,为了使缺陷或缺陷修正者进一步明确缺陷或缺陷的表现,可以附加个人的修改建议或注解。

12)检查拼写和语法缺陷在提交每条缺陷或缺陷之前,检查拼写和语法,确保内容正确,正确的描述缺陷。

13)尽量使用短语和短句,避免复杂句型句式软件缺陷管理数据库的目的是便于定位缺陷,因此,要求客观的描述操作步骤,不需要修饰性的词汇和复杂的句型,增强可读性。以上概括了报告测试缺陷的规范要求,随着软件的测试要求不同,测试者经过长期测试,积累了相应的测试经验,将会逐渐养成良好的专业习惯,不断补充新的规范书写要求。此外,经常阅读、学习其他测试工程师的测试缺陷报告,结合自己以前的测试缺陷报告进行对比和思考,可以不断提高技巧。

14)缺陷描述内容缺陷描述的内容可以包含缺陷操作步骤,实际结果和期望结果。操作步骤可以方便开发人员再现缺陷进行修正,有些开发的再现缺陷能力很差,虽然他明白你所指的缺陷,但就是无法再现特别是对系统不熟悉的新加入开发人员,介绍步骤可以方便他们再现。实际结果可以让开发明白错误是什么,期望结果可以让开发了解正确的结果应该是如何。

6、黑盒测试和白盒测试是软件测试的两种基本方法,请分别说明各自的优点和缺点!

黑盒测试的优点有:比较简单,不需要了解程序内部的代码及实现;与软件的内部实现无关; 从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;在做软件自动化测试时较为方便。

黑盒测试的缺点有:不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;自动化测试的复用性较低。

白盒测试的优点有:帮助软件测试人员增大代码的覆盖率,提高代码的质量,发现代码中隐 藏的问题。

白盒测试的缺点有:程序运行会有很多不同的路径,不可能测试所有的运行路径;测试基于代码,只能测试开发人员做的对不对,而不能知道设计的正确与否,可能会漏掉一些功能需求;系统庞大时,测试开销会非常大。

7、如何测试一个纸杯?

功能度:用水杯装水看漏不漏;水能不能被喝到

安全性:杯子有没有毒或细菌

可靠性:杯子从不同高度落下的损坏程度

可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用

兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等

易用性:杯子是否烫手、是否有防滑措施、是否方便饮用

用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述

疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等

压力测试:用根针并在针上面不断加重量,看压强多大时会穿透。

1白箱测试和黑箱测试是什么?什么是回归测试?

答题建议:简述下概念即可。

2单元测试、集成测试、系统测试的侧重点是什么?

答题建议:围绕重点简单概括即可。如下:单元测试的重点是系统的模块,包括子程序的正确性验证等。集成测试的重点是模块间的衔接以及参数的传递等。系统测试的重点是整个系统的运行以及与其他软件的兼容性。

3设计用例的方法、依据有那些?

答题建议:测试分为白盒测试和黑盒测试,回答时,要注意分开说。白盒测试用例设计有如下方法:基本路径测试、等价类划分、边界值分析、覆盖测试、循环测试、数据流测试、程序插桩测试、变异测试。依据就是详细设计说明书及其代码结构。黑盒测试用例设计方法:基于用户需求的测试、功能图分析方法、等价类划分方法、边界值分析方法、错误推测方法、因果图方法、判定表驱动分析方法、正交实验设计方法。依据是用户需求规格说明书,详细设计说明书。

4一个测试工程师应具备那些素质和技能?

答题建议:一个好的测试工程师,不仅要基础扎实,对自身的性格、责任心都有非常高的要求。具体如下:(1)掌握基本的测试基础理论;(2)本着找出软件存在的问题的态度进行测试,即客观,不要以挑刺形象出现;(3)可熟练阅读需求规格说明书等文档;(4)以用户的观点看待问题;(5)有着强烈的质量意识;(6)细心和责任心;(7)良好的有效的沟通方式(与开发人员及客户);(8)具有以往的测试经验;(9)能够及时准确地判断出高危险区在何处。

5集成测试通常都有那些策略?

答题建议:大致说四点即可,当然说全更好。集成测试有十种策略:(1)大爆炸集成;(2)自顶向下集成;(3)自底向上集成;(4)三明治集成;(5)分层集成;(6)基干集成;(7)基于功能的集成;(8)基于消息的集成;(9)基于风险的集成;(10)基于进度的集成。

面试是求职环节中,最重要的环节。每位面试者在接到面试通知时,都要做好充分的准备。除了对岗位专业知识和能力熟悉掌握的同时,行为举止、面试礼仪、企业信息等方面的了解也是必不可少。

软件测试面试题答案整理

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

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

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

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

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

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

4、测试的目的是什么?

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

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

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

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

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

7、怎样看待加班问题

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

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

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

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

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

10、根据你以前的工作或学习经验描述一下软件开发、测试过程,由哪些角色负责,你做什么

要有架构师、开发经理、测试经理、程序员、测试员。我在里面主要是负责所分到的模块执行测试用例。

11、根据你的经验说说你对软件测试/质量保证的理解

软件质量保证与测试是根据软件开发阶段的规格说明和程序的内部结构而精心设计的一批测试用例(即输入数据和预期的输出结果),并根据这些测试用例去运行程序,以发现错误的过程。它是对应用程序的各个方面进行测试以检查其功能、语言有效性及其外观排布。

12、软件测试的流程是什么?

需求调查:全面了解系统概况、应用领域、软件开发周期、软件开发环境、开发组织、时间安排、功能需求、性能需求、质量需求及测试要求等。根据系统概况进行项目所需的人员、时间和工作量估计以及项目报价。

制定初步的项目计划。

测试准备:组织测试团队、培训、建立测试和管理环境等。

测试设计:按照测试要求进行每个测试项的测试设计,包括测试用例的设计和测试脚本的开发等。

测试实施:按照测试计划实施测试。

测试评估:根据测试的结果,出具测试评估报告。

13、你对SQA的职责和工作活动(如软件度量)的理解?

SQA就是独立于软件开发的项目组,通过对软件开发过程的监控,来保证软件的开发流程按照指定的CMM规程(如果有相应的CMM规程),对于不符合项及时提出建议和改进方案,必要时可以向高层经理汇报以求问题的解决。通过这样的途径来预防缺陷的引入,从而减少后期软件的维护成本。SQA主要的工作活动包括制定SQA工作计划,参与阶段产物的评审,进行过程质量、功能配置及物理配置的审计等;对项目开发过程中产生的数据进行度量等等。

14、说说你对软件配置管理的理解

项目在开发过程中要用相应的配置管理工具对配置项(包括各个阶段的产物)进行变更控制,配置管理的使用取决于项目规模和复杂性及风险的水平。软件的规模越大,配置管理就越显得重要。还有在配置管理中,有一个很重要的概念,那就是基线,是在一定阶段各个配置项的组合,一个基线就提供了一个正式的标准,随后的工作便基于此标准,并只有经过授权后才能变更这个标准。配置管理工具主要有CC,VSS,CVS,SVN等,我只用过SVN,对其他的工具不是很熟悉。

15、怎样写测试计划和测试用例

简单点,测试计划里应有详细的测试策略和测试方法,合理详尽的资源安排等,至于测试用例,那是依赖于需求(包括功能与非功能需求)是否细化到功能点,是否可测试等。

软件测试面试题第一部分:

笔试题

1. 避免死锁的方法有哪些?

2. 内存有哪几种存储组织结构,请分别加以说明。

3.如果你是一个测试组长,你将怎么做计划,去测试一个ICEBOX。

4.测试结束的标准是什么?

5.测试用例的设计方法有哪些,描述一个具体的例子。

6.单元测试和集成测试,描述工作实际开展的情况。

7.工作中哪些需要改进,期望的工作环境。

软件测试面试题第二部分:

口述题

问题:软件的缺陷等级应如何划分?

答案:

A类—严重错误,包括以下各种错误:1.由于程序所引起的死机,非法退出2.死循环3.数据库发生死锁4.因错误操作导致的程序中断5.功能错误6.与数据库连接错误7.数据通讯错误

B类—较严重错误,包括以下各种错误:1.程序错误2.程序接口错误3.数据库的表、业务规则、缺省值未加完整性等约束条件

C类—一般性错误,包括以下各种错误:1.操作界面错误(包括数据窗口内列名定义、含义是否一致)2.打印内容、格式错误3.简单的输入限制未放在前台进行控制4.删除操作未给出提示5.数据库表中有过多的'空字段

D类—较小错误,包括以下各种错误:1.界面不规范2.辅助说明描述不清楚3.输入输出不规范4.长操作未给用户提示5.提示窗口文字未采用行业术语6.可输入区域和只读区域没有明显的区分标志

E类—测试建议

软件测试员面试题的目的,就是是为了尽可能多地找出错误,不同的机构会有不同的测试目的;相同的机构也可能有不同测试目的,回答好基本的面试题,以得到考官肯定的评价。

一. 为什么要在一个团队中开展软件测试工作?

因为没有经过测试的软件很难在发布之前知道该软件的质量,就好比ISO质量认证一样,测试同样也需要质量的保证,这个时候就需要在团队中开展软件测试的工作。在测试的过程发现软件中存在的问题,及时让开发人员得知并修改问题,在即将发布时,从测试报告中得出软件的质量情况。

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

我曾经做过web测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验测试。最擅长的是功能测试

三. 您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试 )

测试类型有:功能测试,性能测试,界面测试。

功能测试在测试工作中占的比例最大,功能测试也叫黑盒测试。是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。采用黑盒技术设计测试用例的方法有:等价类划分、边界值分析、错误推测、因果图和综合策略。

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试面试常见问题--软件测试工程师面试题(3篇)面试常见问题--软件测试工程师面试题(3篇)。

界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。而且设计良好的界面能够引导用户自己完成相应的操作,起到向导的作用。同时界面如同人的面孔,具有吸引用户的直接优势。设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反由于界面设计的失败,让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。

区别在于,功能测试关注产品的所有功能上,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注于产品整体的多用户并发下的稳定性和健壮性面试常见问题--界面测试更关注于用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的),是否美观(能否吸引用户的注意力),是否安全(尽量在前台避免用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)?做某个性能测试的时候,首先它可能是个功能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能测试

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

白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果

黑盒测试用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题

五. 请试着比较一下黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系。

黑盒测试:已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。

软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的.需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试或数据驱动测试。黑盒测试主要是为了发现以下几类错误:

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

在接口上,输入是否能正确的接受?能否输出正确的结果?

是否有数据结构错误或外部信息(例如数据文件)访问错误?

性能上是否能够满足要求?

是否有初始化或终止性错误?

软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑驱动测试。白盒测试主要是想对程序模块进行如下检查:

对程序模块的所有独立的执行路径至少测试一遍面试常见问题--软件测试工程师面试题(3篇)自我介绍对所有的逻辑判定,取 真 与取 假 的两种情况都能至少测一遍。在循环的边界和运行的界限内执行循环体。测试内部数据结构的有效性,等等。

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。

1.区别阶段评审的与同行评审

同行评审目的:发现小规模工作产品的错误,只要是找错误;

阶段评审目的:评审模块阶段作品的正确性可行性及完整性

同行评审人数:3-7人人员必须经过同行评审会议的培训,由SQA指导

阶段评审人数:5人左右评审人必须是专家具有系统评审资格

同行评审内容:内容小一般文档< 40页,代码< 500行

阶段评审内容:内容多,主要看重点

同行评审时间:一小部分工作产品完成

阶段评审时间:通常是设置在关键路径的时间点上!

2.什么是软件测试

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

3简述集成测试的过程

系统集成测试主要包括以下过程:

1.构建的确认过程。

2.补丁的确认过程。

3.系统集成测试测试组提交过程。

4.测试用例设计过程。

5.测试代码编写过程。

6. Bug的报告过程。

7.每周/每两周的构建过程。

8.点对点的测试过程。

9.组内培训过程。

4怎么做好文档测试

仔细阅读,跟随每个步骤,检查每个图形,尝试每个示例。P142

检查文档的编写是否满足文档编写的目的

内容是否齐全,正确

内容是否完善

标记是否正确

5白盒测试有几种方法

总体上分为静态方法和动态方法两大类。

静态:关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义

动态:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。

6系统测试计划是否需要同行审批,为什么

需要,系统测试计划属于项目阶段性关键文档,因此需要评审。

7Alpha测试与beta的区别

Alpha测试在系统开发接近完成时对应用系统的测试;测试后仍然会有少量的设计变更。这种测试一般由最终用户或其它人员完成,不能由程序或测试员完成。由一个或多个用户在开发环境下进行测试。

Beta测试当开发和测试根本完成时所做的测试,最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其它人员完成,不能由程序员或测试员完成。由一个或多个用户在用户实际环境下进行而是。

8比较负载测试,容量测试和强度测试的区别。性能测试从使用方便的角度来说,可以分为以下六种:负载测试、压力测试、容量测试、配置测试、基准测试和并发测试。

负载测试:在一定的工作负荷下,系统的负荷及响应时间。在一定的软件、硬件及网络环境下,运行一种或多种业务,在不同虚拟用户数量下,测试服务器指标是否在用户的要求范围内,以此确定系统所能承受的最大用户数,系统响应时间及资源利用率等。

压力测试:在一定的软件、硬件及网络环境下,模拟大量的虚拟用户向服务器产生负载,使服务器的资源处于极限状态下并长时间连续运行,以测试服务器在高负载情况下是否能够稳定工作。

强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。

容量测试:容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。容量测试的目的是使系统承受超额的数据容量来发现它是否能够正确处理。容量测试是面向数据的,并且它的目的是显示系统可以处理目标内确定的数据容量。在一定的软件、硬件及网络下,在数据库中构造不同数量级的数据记录,在一定虚拟用户下运行一种或多种业务,以获取不同数量级别的服务器性能指标,以确定数据库的最大容量及最佳容量。

配置测试:在一定软件、硬件及网络环境下,运行一种或多种业务,在一定数量的虚拟用户下,获得不能配置的性能指标。

基准测试:在一定软件、硬件及网络环境下,模拟一定数量的虚拟用户运行一种或多种业务,将测试结果作为基线数据,在系统调优或系统评测的过程中,通过运行相同业务场景比较测试结果,确定调优的结果是否达到预期效果或者为系统的选择提供决策数据。基准测试一般基于配置测试,通过配置测试得到数据,并将这个这个数据作为基准来比较每次调优后性能是否有所改善。

并发测试:通过模拟多个用户并发访问同一个应用、存储过程、数据记录或其他并发操作,测试是否存在死锁、数据错误等故障。

9测试结束的标准是什么?

用例全部测试。

覆盖率达到标准。

缺陷率达到标准。

其他指标达到质量标准

10描述软件测试活动的生命周期?

测试周期分为计划、设计、实现、执行、总结。其中:

计划:对整个测试周期中所有活动进行规划,估计工作量、风险,安排人力物力资源,安排进度等;从宏观上规划整个测试活动。测试包括文档目的,项目背景介绍,输入文档,系统运行环境(网络拓扑图、软硬件配置)、测试内容、资源安排(角色和职责,测试工具)、进度安排、交付件及风险等。

设计:完成测试方案,从技术层面上对测试进行规划;其目的是为整个测试阶段的执行内容及侧罗进行详细说明。测试方案包括文档目的,测试策略等。

实现:进行测试用例和测试规程设计;

执行:根据前期完成的计划、方案、用例、规程等文档,执行测试用例。

总结:记录测试结果,进行测试分析,完成测试报告。

1、开发犯低级错误怎么办?

开发首先要规范好编码,出低级错时不要指责,内心指出错误。让他们自己进行测试,反思找出错误。

2、你进行过哪些测试,擅长什么?

我主要从事web测试,搭建环境,对程序进行集成测试、系统测试、回归测试。还有编写测试用例,使用手册,功能测试文档。单元测试:测试的最早期阶段,焦点在于被测软件的最小的组成部分。

集成测试:确保最小单元被(部分)整合后能正常操作的测试执行阶段

系统测试:当应用作为整体运行时的测试执行阶段(测试最终的应用)

回归测试:修改了旧代码后,重新进行测试以确认修改操作没有引入新的错误或导致其他代码产生错误。

验收测试:以用户为主,由用户参加设计测试用例,对程序的功能、性能,以及可移植性、兼容性、可维护性、错误的恢复功能等进行确认。主要运用黑盒测试的方法,对系统主要流程、重要功能进行有效性测试,验证所测试的软件是否满足需求规格说明书列出的要求

3、开发说不是bug怎么办?

将自己的见解告诉开发,不行就把见解和bug提交项目经理决定。

4、你的职业规划?

巩固基础测试知识,提高理解需求能力。学习自动化测试,并且运用。技术到位后学习带领测试团队。最后争取达到测试经理水平。

5、什么测试用例才是合格?

能覆盖到所有测试点

6、缺陷测试报告组成?

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

C/S模式,使用交替方法确认是client还是server端问题。

7、测试用例包括哪些?

用例编号、测试项描述、操作步骤、输入、预期结果、实际结果、测试人、测试时间、备注

8、软件评审的人员和目的

人员:客户、项目经理、开发人员、测试人员目的:查看软件是否还存在问题。是否在不同平台正常运行,是否有和客户理解不一致的地方,是否有改进的地方

9、什么是软件测试?目的?

使用人工或自动化手段运行程序,为了发现软件的错误而执行检验的一个过程目的:以最少的人力、物力、时间找到软件中的缺陷并修改,从而回避风险。

10、兼容测试

检查软件在不同软件、硬件平台是否可以正常运行。即软件的可移植性。主要查看在不同操作系统、浏览器、数据库、不同版本是否正常运行

11、为什么进行软件测试?

没经过测试的软件无法保证质量,好比iso质量认证一样。测试中发现问题,即时提交开发改进,在软件发布时保证软件质量。

12、软件测试类型有哪些?区别与联系?

常见:功能测试、性能测试、界面测试。

功能测试:占比最大,也叫黑盒测试(不看代码)。进行动态测试时,需要测试软件功能,不需要测试软件内部结构和处理过程。

技术方法有:等价类划分法、边界值分析、错误推测、因果图和综合策略。

性能测试:通过自动化测试工具模拟多种正常、异常、峰值条件,对系统各项性能指标测试。

负载测试、压力测试属于此。负载测试:确定各项工作负载下的系统性能,目标是负载主键增加时,系统各项性能指标变化;
压力测试:通过系统的瓶颈,获得系统能提供的最大服务级别。

界面测试:界面好坏决定用户对软件第一印象。合理的界面带来轻松愉悦感受,失败界面有挫败感,让强大的功能付诸东流。

区别:功能测试关注软件功能,每个功能可能存在的问题。性能测试软件多用户并发的稳定性和强壮性。界面测试关注用户体验和易用性。

13、好的测试用例关键?

白盒测试:较少的用例覆盖尽可能多的内部程序逻辑结果。

黑盒测试:较少的用例覆盖模块输出和输入接口。用最少用例在合理时间内发现最多的问题。

对可行和不可行的都要考虑:(1)输入 (2)详细操作步骤 (3)预期输出 (4)实际输出

14、黑盒、白盒、单元、集成、系统、验收测试的区别与联系?

黑盒:已知功能设计规格,测试每个功能是否符合要求。白盒:已知内部工作过程,测试每种内部操作符合设计规格。黑盒意味着测试在软件的接口处进行,把测试对象看做一个黑盒子,不考虑程序内部逻辑结构和内部特性,仅看需求说明书检查功能是否符合需求。黑盒-》功能测试(或者 数据驱动测试)

15、软件开发过程与角色分工?

测试配合开发等进行需求分析和讨论,根据需求说明书制定《项目测试计划》,编写测试用例,建立测试环境。测试负责新产品测试,原有产品的升级测试,负责软件问题解决过程跟踪,软件开发文档、开发工作的规范化,管理开发部门的产品文档,制作用户手册、操作手册,产品上限测试,监督软件开发过程执行,提高软件质量。

16、软件开发过程与角色分工?

开发与测试开会讨论需求。需求分析人员写出需求分析说明,三部门讨论可行性。给出详细设计说明书,开发编码,给出系统流程图。测试根据此,给出bug统计。

17、不同测试类型的联系与区别?

功能、性能、可靠性、安全性、负载测试,压力、安装/卸载、启动/停止、兼容、互联测试,文档、回归、可使用性、容量测试

18、测试计划工作包括?

是对工作内容的有效组织和规划,保证测试工作有效展开。包括测试目标,测试范围定义,测试方法选择,测试进度里程碑,测试资源管理和配置。测试目标最重要,因为他是软件测试的最终达到结果

19、性能测试工具,原理、实际应用LoadRunner

能够录制测试的操作步骤,对其模拟出多个用户播放出来。

(1)visural user genertor:创建脚本,选择协议,录制操作,编辑操作

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

(3)运行脚本,分析shedual

(4)分析测试结果

20、兼容性

平台兼容、网络兼容、数据库兼容、数据格式兼容。

缺陷等级分类

(1) 最高级--导致运行中断(应用程序崩溃),预期的功能没有得到实现,测试工作无法继续进行等

(2) 紧急---事件非常重要,并且需要马上给予关注

(3) 高级---事件是重要的,并且应该在紧急的事件处理之后尽快得到解决

(4) 中级---事件是重要的,但是由于解决问题需要花费一定的时间,所以可以用较长的时间解决

(5) 低级---事件不重要,可以在时间和资源允许的情况下再解决

21、缺陷生命周期

新建bug–提交bug–确认bug–分配bug–修复bug–验证bug–关闭bug

22、测试结束标准

1)一二级缺陷数目达到项目质量管理目标要求,测试暂停返回开发

2)项目出现重大估算和进度偏差,需要暂停或者终止

3)新需求变更大,需修改测试计划和测试用例再进行

4)开发暂停,测试也暂停,备份暂停时的数据

5)所有功能、性能测试用例100%进行

23、测试生命周期

需求测试计划制定和评审–测试用例编写–测试用例执行–bug管理–测试报告输出

24、自我介绍

套路

1)很高兴获得面试机会……想证明我是合适的人选……想获得您的认可……

2)反问面试官:您看我继续介绍项目还是您提问关心的问题?

25、项目介绍

先整体再局部介绍,项目五大维度:

规模(代码规模、需求规模、用例规模、工作量、进度、质量、成本),测试流程,角色与职责,项目中自己角色,自己的特色(做得好的、遇到的困难、做得差的),最后是心得体会

26、数据库问题

数据库增删改查(insert、delete、update、select);

表结构增删改查(create、drop、alter、describe);

存储过程;
触发器等

27、Linux系统

常见50个命令(find、-name、type、perm、user、group、ctime、atime)

熟悉vi、熟悉linux搭建测试环境。LAMP环境搭建。

28、缺陷相关

缺陷跟踪流程(流程基本要素)、整体流程(会话)、缺陷单的20个属性、属性的意义、如何描述好缺陷单、缺陷单的5C原则、缺陷重现步骤。你认为最经典的bug

29、用例相关

用例格式要素、用例设计工程方法论、方法要求如何利用。如何评审用例,从那些维度评审,设计好用例需要那些只是结构

30、软件测试流程

熟悉产品/项目–需求评审–测试需求–测试计划–测试方案–测试用例–预测试,第一轮正式测试–第二轮回归测试–第三轮测试,测试报告–总结–测试指南

31、网络相关

基本网络知识(重点TCP/IP协议)网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构,提供了点对点的链接机制,将数据应该如何封装、定址、传输、路由以及在目的地如何接收,都加以标准化。

1、应用层:应用程序之间相互沟通的层

2、传输层:提供了数据传输,应用程序之间的通信服务

3、网络互联层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机

4、网络接口层:接收数据,并进行传输

32、测试工具

性能测试工具:LoadRunner,Jmeter

自动化测试工具:Selenium

测试管理工具:禅道或者Jira

如何去测试指定软件?

技巧:从质量模型、测试工具、测试方法、测试流程、探索式测试,宏观解决,再微观讲解用例设计

33、你还有什么想要问的吗?

满意情况:先表示感谢,问如果有下一轮面试,什么时候,做什么准备;

一般般情况:感谢,对自己表现不太满意,能否给我一些建议;

很糟糕:感谢,认识到不足,希望给建议

34、测试用例编写结构

功能性、界面UI、易用性、安全性、兼容性

35、STAR法则

S(situation):项目属于什么类型,周期多长

T(task):团队分工,你的角色

A(action):具体实施,自己做了什么

R(result):最后成果,你的收获

36、如何测试纸杯

功能性:是否漏水;
是否喝到水

安全性:有没有细菌可靠性:摔下来的损坏程度

可移植性:不同地方、温湿度使用

兼容性:容纳果汁、啤酒、汽水、汽油等

易用性:是否烫手、防滑、方便饮用水

用户文档:使用手册对用法、限制、使用条件描述

疲劳测试:分别装上水、汽油等24小时,泄露情况

压力测试:用物件不断加压,承受多大的压强

37、软件生命周期各个阶段的测试内容

(1)需求阶段测试:设计整个过程的进行、测试计划的安排、测试用例的设计以及软件的确认要达到那些要求等。

(2)设计阶段测试:包括概要设计和详细设计。在概要设计阶段,测试人员应阐述测试方法和测试评估准则,编写测试计划,组织成立独立的测试小组,安排具有里程碑的测试日程;
在详细设计阶段,测试人员要开发或获取确认支持工具,生成功能测试数据和测试用例,以此来检查设计中遗漏的情况、错误的逻辑、模块接口的不匹配、数据结构不合理、错误的I/O假定、用户界面的补充分等。

(3)编码阶段测试:测试需要解决的首要问题是编码是否和设计的一致;
其次是系统是否可维护,系统的规格说明是否正确地实现,编码是否按照既有的标准进行。是否有充分的测试计划评价程序,程序是否提供足够的文档资料,程序内部是否有足够的注释等。在测试完成后,要形成下列输出物:编码说明书、程序文档、计算机程序列表、可执行的程序、程序流程图、操作介绍和单元测试结果。

(4)测试阶段:要进行第三方的正确测试,检验所开发的系统是否能按照用户提出要求运行,在测试阶段要使的用户能成功地安装新的应用系统来进行测试。

(5)安装阶段测试:首先要根据系统安装手册制定好安装计划,确定安装流程图,准备好安装文件和程序清单,给出安装测试的预期结果,并对安装过程中的各项可能发生的结果进行说明准备,将程序运行的软硬件要求放入产品说明中。同时要检查时系统用户手册和操作手册,看是否可用。

(6)验收阶段测试 :定义用户角色,定义验收标准,编制验收计划,执行验收计划和填写验收结论。

38、get和post的请求

1、url可见性:get,参数url可见;
post,url参数不可见

2、数据传输上:get,通过拼接url进行传递参数;
post,通过body体传输参数

3、缓存性:get请求是可以缓存的post请求不可以缓存

4、后退页面的反应get请求页面后退时,不产生影响post请求页面后退时,会重新提交请求

5、传输数据的大小get一般传输数据大小不超过2k-4k(根据浏览器不同,限制不一样,但相差不大)post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大。

6、安全性这个也是最不好分析的,原则上post肯定要比get安全,毕竟传输参数时url不可见,但也挡不住部分人闲的没事在那抓包玩。安全性个人觉得是没多大区别的,防君子不防小人就是这个道理。对传递的参数进行加密,其实都一样。

39、alpha测试和beta测试的区别

alpha测试是在用户组织模拟软件系统的运行环境下的一种验收测试,由用户或第三方测试公司进行的测试,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误beta测试时用户公司组织各方面的典型终端用户在日常工作中实际使用Beta版本,并要求用户报告异常情况,提出批评意见。

区别:主要是测试场所不同,alpha是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行测试;
alpha测试的环境是受开发方控制的,用户的数量相对少,时间比较集中,beta测试环境不受开发方控制,用户数量相对多,时间不集中

40、TCP/IP协议的模型和每层的主要协议

从下到上:

1、链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡

2、网络层(互联网层):处理分组在网络中的活动,比如分组的选路;
(IP、ICMP、IGMP)

3、运输层:主要为两台主机上的应用提供端到端的通信(TCP和UDP)

4、应用层:负责处理特定的应用程序细节

推荐访问:题目 面试 答案 软件测试求职面试题目及答案大全 软件测试求职面试题目及答案大全 软件测试求职面试题目及答案大全下载