从业多年测试工程师总结,大厂面试必问问题就是这些
发布时间:2020-12-25

01 什么是软件测试?软件测试的目的与原则是什么?


在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。


1)软件测试的目的:

◆ 想以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险

◆ 测试是以评价一个程序或者系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度,为用户选择与接受软件提供有力的依据

◆ 通过分析错误产生的原因还可以帮助发现当前开发工作所采用的软件过程的缺陷,以便进行软件过程改进。同时,通过对测试结果的分析整理,还可以修正软件开发规则,并为软件可靠性分析提供了依据


通过最终的验收测试,也可以证明软件满足了用户的需求,树立人们使用软件的信心。


2)软件测试的原则:

所有的软件测试都应追溯到用户需求

应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭

完全测试是不可能的,测试需要终止

测试无法显示软件潜在的缺陷

充分注意测试中的群集现象

程序员应避免检查自己的程序

尽量避免测试的随意性


02 目前主要的测试用例设计方法是什么?


1)白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖。


2)黑盒测试:边界值分析法、等价类划分、错误猜测法、因果图法、状态图法、测试大纲法、随机测试、场景法。


03 什么是测试用例? 什么是测试脚本? 两者的关系是什么?


1)测试用例:为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。


2)测试脚本:为了进行自动化测试而编写的脚本。


3)关系:测试脚本的编写必须对应相应的测试用例。


04 简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试、β测试


1)静态测试是不运行程序本身而寻找程序代码中可能存在的错误或评估程序代码的过程。  


2)动态测试是实际运行被测程序,输入相应的测试实例,检查运行结果与预期结果的差异,判定执行结果是否符合要求,从而检验程序的正确性、可靠性和有效性,并分析系统运行效率和健壮性等性能。


3)黑盒测试一般用来确认软件功能的正确性和可操作性,目的是检测软件的各个功能是否能得以实现,把被测试的程序当作一个黑盒,不考虑其内部结构,在知道该程序的输入和输出之间的关系或程序功能的情况下,依靠软件规格说明书来确定测试用例和推断测试结果的正确性。


4)白盒测试根据软件内部的逻辑结构分析来进行测试,是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。


5)α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由程序员或测试员完成。


6)β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,β测试不能由程序员或测试员完成。


05 软件测试的策略是什么?


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


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


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


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


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


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


◆ 尽可能早的找出系统中的Bug

◆ 避免软件开发过程中缺陷的出现

◆ 衡量软件的品质,保证系统的质量

◆ 关注用户的需求,并保证系统符合用户需求

总的目标是:确保软件的质量。


08 黑盒测试的测试用例常见设计方法都有哪些?请分别以具体的例子来说明


1)等价类划分:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据。取得较好的测试结果。等价类划分可有两种不同的情况:有效等价类和无效等价类。


2)边界值分析法:是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。


使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。


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


错误推测方法的基本思想:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误。以前产品测试中曾经发现的错误等,这些就是经验的总结。还有输入数据和输出数据为0的情况。输入表格为空格或输入表格只有一行。这些都是容易发生错误的情况。可选择这些情况下的例子作为测试用例。


4)因果图方法:前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图(逻辑模型)。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。


5)正交表分析法:可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。


6)场景分析方法:指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。 


7)状态图法:通过输入条件和系统需求说明得到被测系统的所有状态,通过输入条件和状态得出输出条件;通过输入条件、输出条件和状态得出被测系统的测试用例。


8)大纲法:大纲法是一种着眼于需求的方法,为了列出各种测试条件,就将需求转换为大纲的形式。大纲表示为树状结构,在根和每个叶子结点之间存在唯一的路径。大纲中的每条路径定义了一个特定的输入条件集合,用于定义测试用例。树中叶子的数目或大纲中的路径给出了测试所有功能所需测试用例的大致数量。


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


软件测试应该在需求分析阶段就介入,因为测试的对象不仅仅是程序编码,应该对软件开发过程中产生的所有产品都测试,并且软件缺陷存在放大趋势,缺陷发现的越晚,修复它所花费的成本就越大。


10 什么是回归测试?


回归测试:回归测试有两类,用例回归和错误回归;用例回归是过一段时间以后再回头对以前使用过的用例在重新进行测试,看看会重新发现问题。错误回归,就是在新版本中,对以前版本中出现并修复的缺陷进行再次验证,并以缺陷为核心,对相关修改的部分进行测试的方法。


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


1)明确测试的目标,增强测试计划的实用性。

编写软件测试计划的重要目的就是使测试过程能够发现更多的软件缺陷,因此软件测试计划的价值取决于它对帮助管理测试项目,并且找出软件潜在的缺陷。因此,软件测试计划中的测试范围必须高度覆盖功能需求,测试方法必须切实可行,测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确。


2)坚持“5W1H”规则,明确内容与过程。

“5W1H”规则指的是“What(做什么)”、“Why(为什么做)”、“When(何时做)”、“Where(在哪里)”、“who(谁来做)”、“How(如何做)”。利用“5W1H”规则创建软件测试计划,可以帮助测试团队理解测试的目的(Why),明确测试的范围和内容(What),确定测试的开始和结束日期(When),确定项目有关人员(who),给出测试文档和软件的存放位置(Where)、指出测试的方法和工具(How)。


3)采用评审和更新机制,保证测试计划满足实际需求。

测试计划写作完成后,如果没有经过评审,直接发送给测试团队,测试计划内容的可能不准确或遗漏测试内容,或者软件需求变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员。


4)分别创建测试计划与测试详细规格、测试用例。

应把详细的测试技术指标包含到独立创建的测试详细规格文档,把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用例文档或测试用例管理数据库中。测试计划和测试详细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活动的范围、方法和资源配置,而测试详细规格、测试用例是完成测试任务的具体战术。


12 一份测试计划应该包括哪些内容?


背景、项目简介、目的、测试范围、测试策略、人员分工、资源要求、进度计划、参考文档、常用术语、提交文档、风险分析。 


13 缺陷记录应包含的内容?


缺陷标识、缺陷类型、缺陷严重程度、缺陷产生可能性、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷原因。


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


当这个软件彻底的消失以后,测试就结束了。


15 一个测试工程师应具备哪些素质?


◆ 责任心

◆ 沟通能力

◆ 团队合作精神

◆ 耐心、细心、信心

◆ 时时保持怀疑态度,并且有缺陷预防的意识

◆ 具备一定的编程经验


16 你的测试职业发展目标是什么?


我的职业发展:需要时间累积,一步步向着高级测试工程师的目标前进。前2年累积测试经验,不断的更新、改正自己,做好测试任务。


更多软件测试相关推荐:

软件测试更多干货文章

软件测试就业培训


文章来源:网络  版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8103),我们将立即处理

相关阅读
/