测试工程师面试常见问题整理

绝世美人儿
519次浏览
2021年02月21日 08:52
最佳经验
本文由作者推荐

-

2021年2月21日发(作者:迪丽娜孜)


目录



01.


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



.


.................................................. ...............


2



02.



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


.....


2



03.


您所熟悉的软件测试类型都有哪些?请试着分别比较这些不同


................................


2



04


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



.


.............................................. ............


3



05.



请试着比较一下黑盒测试、白 盒测试、单元测试、集成测试、系统测试、验收测试


的区别与联系。


.


........................ .................................................. ............................................


3



06.


测试计划工作的目的是什么?测试计划工作的内容都包括什么?其中哪些是最重


要的?< /p>


........................................ .................................................. .............................................


4



07.


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


.


.................................... ...............................


4



08.


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


测试用例 设计工作中的应用。



.


...... .................................................. ......................................


5



09.



请以您以往的实际工作为例,



详细的描述一次测试用例设计的完整的过程。


........


6



10.



您以往是否曾经从事过性能测 试工作?如果有,请尽可能的详细描述您以往的性能


测试工作的完整过程。



.


..................... .................................................. ...................................


6



11.



您在从事性能测试工作时,



是否使用过一些测试工具?


............................................


7



12.



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

< br> .................


7



13.



在您以往的工作中,一条软件 缺陷(或者叫


Bug


)记录都包含了哪些内容?如何提


交高质量的软件缺陷(


Bug


)记录?(


bug


的生命周期)



.


..................................... ............


7



14.



您以往所从事的软件测试工作 中,


是否使用了一些工具来进行软件缺陷


Bug



的管


理?如果有,



请结合该工具描述软件缺陷(跟踪管理的流程)


....................................


8



15.


如 何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好


的人际关 系的关键是什么?



.


....... .................................................. .........................................


8



16.



在您以往的测试工作中,



最让您感到 不满意或者不堪回首的事情是什么?您是如何


来对待这些事情的?



.


......................... .................................................. ...................................


8



17.


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



.


................................................. ........................


8



18.



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



.


.......................................... ..................................................


9



19.



你自认为测试的优势在哪里?



.


......................................... ...............................................


9



20.



你以前工作时的测试流程是什么?



.


....................................... .........................................


9



21.



当开发人员说不



< br>BUG


时,你如何应付?



.< /p>


........................................ ..........................


9



22.


你为什么想离开目前的职务?



.


........................... .................................................. ..........


1


0



23.


你对我们公司了解有多少?


< /p>


.


............................ .................................................. .............


1


0



24.


为什么我们应该录取你?



.


............................. .................................................. ................


1


0



25.


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


< p>
.


................................ ...................


1


0



26.


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



.


........................... .................................................. ......


1


0



27.


基于


WEB


信息管理系 统测试时应考虑的因素有哪些?


..............................................


1


0



28.


一套完整的测试应该由哪些阶段组成?分别阐述一下各个阶段。


............................


1


3



31.


面试官最后会问你有什么问题要问吗



.


...................................... ...................................


1


3




01.


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

< br>


软件测试概念:


在规定的条件下对程序进行操作,


以发现错误,


对软件质量进行评估的一个


过 程:




测试的目的

< br>:


是想以最少的人力,


物力和时间找出软件中潜在的各种 错误与缺陷,


通过修正


各种错误和缺陷提高软件质量,


回避软件发布后由于潜在的软件缺陷和错误造成的隐患以及


带来的商业风 险。



因为没有经过测试的软件很难在发布之前知道该软件的质 量,


就好比


ISO


质量认证一样,



试同样也需要质量的保证,


这个时候就需 要在团队中开展软件测试的工作。


在测试的过程发


现软件中存在 的问题,


及时让开发人员得知并修改问题,


在即将发布时,


从测试报告中得出


软件的质量情况。




软件测试生命周期


1


)计划



2


)分析,


3


)设计,


4


)构建,


5


)测试周期,


6

)最后测试和实


施,


7


)实施后。



02.



您在以往的测试工作中都曾经具体从事过哪些工作?其


中最擅长哪部分工作?

< p>



我曾经做过


we b


测试,后台测试,客户端软件,其中包括功能测试,性能测试,用户体验


测试。最擅长的是功能测试




03.


您所熟悉的软件测试类型都有哪些?请试着分别比较这


些不同



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



功能测试


在测试工作中占的比例最大,


功能测试也叫 黑盒测试



是把测试对象看作一个黑盒


子。


利用黑盒测试法进行动态测试时,


需要测试软件产品的功能 ,


不需测试软件产品的内部


结构和处理过程。

< br>采用黑盒技术设计测试用例的方法有



等价类划分


(有效


/


无效等价划分)


边界值分析、错误推测、因果图和综合策略。



性能测试


是通过


自动化的测试工具模拟多种正常 、峰值以及异常负载条件来对系统的各项


性能指标进行测试


。< /p>


负载测试和压力测试都属于性能测试,


两者可以结合进行。


通过负载测


试,


确定在各种工作负载下系统的 性能,


目标是测试当负载逐渐增加时,


系统各项性能指标


的变化情况



压力测试是通过确定一个系统的 瓶颈或者不能接收的性能点,


来获得系统能提


供的最大服务级别 的测试。



界面测试


,界面是软件与用 户交互的最直接的层,界面的好坏决定用户对软件的第一印象。


而且设计良好的界面能够 引导用户自己完成相应的操作,


起到向导的作用。


同时界面如同 人


的面孔,


具有吸引用户的直接优势。


设计合理的界面能给用户带来轻松愉悦的感受和成功的


感觉,


相 反由于界面设计的失败,


让用户有挫败感,


再实用强大的功能都 可能在用户的畏惧


与放弃中付诸东流


.



区别


在于,


功能测试

< br>关注产品的所有功能上,


要考虑到每个细节功能,


每个可 能存在的功能


问题。


性能测试


主要关注 于产品整体的多用户并发下的稳定性和健壮性。


界面测试


更关注 于


用户体验上,用户使用该产品的时候是否易用,是否易懂,是否规范(快捷键之类的)


,是


否美观(能否吸引用户的注意力)


,是否安全(尽量在前台避免用户无意输入无效的数据,


当然考虑到体验性,

< p>
不能太粗鲁的弹出警告)


?做某个性能测试的时候,


首先它可能是个功


能点,首先要保证它的功能是没问题的,然后再考虑该功能点的性能 测试。




04


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



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



?(补充)



黑盒法用例设计的关键同 样也是以较少的用例覆盖模块输出和输入接口。


不可能做到完全测


试,以最少的用例在合理的时间内发现最多的问题



(补充)




05.



请试着比较一下黑盒测试、< /p>


白盒测试、


单元测试、


集成测

< p>
试、系统测试、验收测试的区别与联系。



黑盒测 试:


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




软件的黑盒测试意味着测试要在软件的 接口处进行


。这种方法是把测试对象看做一个黑盒


子,测试人员 完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,


检查程序的 功能是否符合它的功能说明。


因此黑盒测试又叫功能测试或数据驱动测试。


黑盒


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






1


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







2


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





3


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





4


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






5


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


< /p>


测试方法,根据需求指定的测试计划和测试用例来测相应的功能和性能


------------------------------------ -------------------------------------------------- -------------------------------------


< /p>


白盒测试:


已知产品的内部工作过程,


可 以通过测试证明每种内部操作是否符合设计规格要


求,所有内部成分是否以经过检查。< /p>



软件的白盒测试是对软件的过程性细节做细致的检查。


这种方法是把测试对象看做一个打开


的盒子,


它 允许测试人员利用程序内部的逻辑结构及有关信息,


设计或选择测试用例,


对程


序所有逻辑路径进行测试。


通过在不同点检查程 序状态,


确定实际状态是否与预期的状态一


致。


因此白盒测试又称为结构测试或逻辑驱动测试。


白盒测试主要是想对程序模块进 行如下


检查:



1

< br>、对程序模块的所有独立的执行路径至少测试一遍。



2


、对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测一遍。



3


、在循环的边界和运行的界限内执行循环体 。



4


、测试内部数据结构的有 效性,等等。



5.


数据引用错误




数据声明错误




运算错误




比较错误




控制流程错误




接口错误




输入


/


输出错误




其他检查




其他检查



常用测试方法


:所谓插桩,就是借助往被测程序中插入操作,来实现测试目的的方法。


(如


常常加入打印语句,看执行后的效果是否为我们希望的结果)


, 以及


junit


测试



单元测试


(模块测试)


是开发者编写的一小段代码,< /p>


用于检验被测代码的一个很小的、


很明


确 的功能是否正确。


通常而言,


一个单元测试是用于判断某个特定 条件


(或者场景)下某个


特定函数的行为。







单元测试是由程序员自己来完成,最终受益的也是程序员自己 。可以这么说,程序员有责


任编写功能代码,


同时也就有责任为 自己的代码编写单元测试。


执行单元测试,


就是为了证


明这段代码的行为和我们期望的一致。







--- -------------------------------------------------- -------------------------------------------------- -----------------------



集成测试 (也叫组装测试,联合测试)


是单元测试的逻辑扩展。它的最简单的形式是:两个


已经测试过的单元组合成一个组件,


并且测试它们之间的接口。


从这一层意义上讲,


组件是


指多个单元的集成 聚合。


在现实方案中,


许多单元组合成组件,

< br>而这些组件又聚合成程序的


更大部分。方法是测试片段的组合,并最终扩展进程, 将您的模块与



其他组的模块一起测试。最后,将构成进程的所 有模块一起测试。




------- -------------------------------------------------- -------------------------------------------------- --------------------





系统测试


是将经过测试的子系统装配 成一个完整系统来测试。它是检验系统是否确实能提


供系统方案说明书中指定功能的有效 方法。


(常见的联调测试)







系统测 试的目的是对最终软件系统进行全面的测试,


确保最终软件系统满足产品需求并且遵


循系统设计。





--------------------------------------- -------------------------------------------------- ------------------------------------



验收测试


是部署软件之前的最后一个测试操作。

验收测试的目的是确保软件准备就绪,


并且


可以让最终用户 将其用于执行软件的既定功能和任务。



验收测试是向未来的用 户表明系统


能够像预定要求那样工作。


经集成测试后,


已经按照设计把所有的模块组装成一个完整的软


件系统,


接口错误也已经基本排除了,


接着就应该进一步验证软件的有效性,

< p>
这就是验收测


试的任务,即软件的功能和性能如同用户所合理期待的那样。




06.


测试计划工作的目的是什么?测试计划工作的内容都包


括什么?其中哪些是最重要的?< /p>







软件测试计划


是指导测试过程的纲领 性文件,包含了产品概述、


测试策略、


测试方法、测试


区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,


参与测试的项目成员,


尤其是测试管理人员,


可以明确测试任务和测试方法,


保持测试实施


过程的顺畅沟通, 跟踪和控制测试进度,应对测试过程中的各种变更。



测试计划 和测试详


细规格、测试用例之间是战略和战术的关系,测试计划主要从宏观上规划测试活 动的范围、


方法和资源配置,


而测试详细规格、


测试用例是完成测试任务的具体战术。


所以其中最重要


的是测试测试策略和测试方法(最好是能先评审)




07.


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




1.


明确测试的目标,增强测试计 划的实用性,编写软件测试计划得重要目的就是使测试过


程能够发现更多的软件缺陷,< /p>


因此软件测试计划的价值取决于它对帮助管理测试项目,


并且


找出软件潜在的缺陷。


因此,


软件测试计划 中的测试范围必须高度覆盖功能需求,


测试方法


必须切实可行, 测试工具并且具有较高的实用性,便于使用,生成的测试结果直观、准确





2


.坚持 “


5W


”规则,明确内容与过程








5W



规则指的 是



What


(做什么)





Why


(为什么做)





When


(何时做)





Where


(在


哪里)





How


(如何做)




利用“


5W


”规则创建软件测试计划,可以帮 助测试团队理解测


试的目的(


Why



,明确测试的范围和内容(


What



,确定测试的开始和结束日期(


When




指出测试的方法和工具(


How



,给出测试文档和软件的存放位置(


Where







3


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




测试计划写作完成后,如果没有经


过评审,


直接发送 给测试团队,


测试计划内容的可能不准确或遗漏测试内容,


或者 软件需求


变更引起测试范围的增减,而测试计划的内容没有及时更新,误导测试执行人员 。







4.


分别创建测试计划与测试详细 规格、测试用例应把详细的测试技术指标包含到独立创建


的测试详细规格文档,


把用于指导测试小组执行测试过程的测试用例放到独立创建的测试用


例文 档或测试用例管理数据库中。


测试计划和测试详细规格、


测试用 例之间是战略和战术的


关系,


测试计划主要从宏观上规划测试活 动的范围、方法和资源配置,


而测试详细规格、测


试用例是完成 测试任务的具体战术。




08. < /p>


您所熟悉的测试用例设计方法都有哪些?请分别以具体


的例子来说 明这些方法在测试用例设计工作中的应用。






1


.等价类划分







划分等价类


:


等价类是指某个输入域 的子集合


.


在该子集合中


,

< p>
各个输入数据对于揭露程序中


的错误都是等效的


.


并合理地假定


:


测试某等价类的代表值 就等于对这一类其它值的测试


.



此< /p>


,


可以把全部输入数据合理划分为若干等价类

,


在每一个等价类中取一个数据作为测试的输


入条件


,


就可以用少量代表性的测试数据


.


取得较好的测试结果


.


等价类划分可有两种不同 的


情况


:


有效等价类和无效等价类


.







2


.边界值分析法







边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我


,


大量的错误是发生在输


入或输出范围的边界上

< br>,


而不是发生在输入输出范围的内部


.

< br>因此针对各种边界情况设计测试


用例


,

< br>可以查出更多的错误


.





使用边界值分析方法设计测试用例


,


首先应确定边界情况


.



常输入和输出等价类的边界


,


就是应着重测试的边界 情况


.


应当选取正好等于


,

< p>
刚刚大于或刚


刚小于边界的值作为测试数据


,


而不是选取等价类中的典型值或任意值作为测试数据


.





3


.错误推测法







基于经验和直觉推测程序中所有可能存在的各种错误


,


从而有针对性的设计测试用例的方



.





错误推测方法的基本思想


:


列举出程 序中所有可能有的错误和容易发生错误的特殊


情况


,

< p>
根据他们选择测试用例


.


例如


,


在单元测试时曾列出的许多在模块中常见的错误


.


以前


产品测试中曾经发现的错误等


,


这些就是经验的总结


.


还有


,


输入数据和输出数据为


0


的情



.


输入表格为空格或输入表格只有一行


.


这些都是容易发生错误的情况


.


可选择这些情况


下的例子作为测试用例



4


.因果图方法




前面介绍的等价类划分方法和边界值分析方法


,


都是着重考虑输入条件


,


但未考虑输入条件


之间的联系


,



相互组合等


.



考虑输入条件之间的相互组合


,


可能会产生一些新的情况


.



但要检


查输入 条件的组合不是一件容易的事情


,



即 使把所有输入条件划分成等价类


,


他们之间的组


合情况也相当多


.



因此必须 考虑采用一种适合于描述对于多种条件的组合


,


相应产生多个动


作的形式来考虑设计测试用例


.



这就需要利用因果图


(逻辑模型)


.



因果图方法最终生成的就


是判定表


.



它适合于检查程序输入条件的各种组合情况


.




09.



请以您以往的实际工作为例,



详细的 描述一次测试用例


设计的完整的过程。




就说最近的这次网站功能的测试吧



首先:得到相关文档


(需求文档和设计文档)

< br>,理解需求和设计设计思想后,想好测试策略


(测试计划简单点就


OK


了)


,考虑到测试环境,测试用例,测试时间等问 题。



第二步:


设计测试用例,


测试策略是:


把网站部分的功能点测试完,


然后在进行系统测试


(另


外个模块呢有另一个测试人员负责,可 以进行联调测试)


,网站模块的测试基本是功能测试


和界面测试 (用户并发的可能性很小,所以不考虑)


:这次的网站的输入数据呢是使用数据


库中的某张表记录,


如果表中某一数据记录中新加进来的


(还没有被处理的,


有个标志位)


< br>网站启动后会立刻去刷那张表,


得到多条数据,然后在进行处理。


处理过程中,会经历


3



步骤 ,网站才算完成了它的任务。有


3


个步骤呢,就可以分别对




3


个步骤进 行测试用例


的设计


,


尽量覆盖到各种输 入情况


(包括数据库中的数据,


用户的输入等)



得出了差不多


50


个用例。 界面测试,也就是用户看的到的地方,包括发送的邮件和用户填写资料的页面展


示。




第三步:


搭建测试环境


(为什么这个时候考虑测试环境呢?因为我对网站环境已经很熟了,


只有有机器能空于下来做该功能测试就可以做了)


,因为网站本身的环 境搭建和其他的系统


有点不同,它需要的测试环境比较麻烦,需要


web


服务器(


Apache,tomcat



,不过这次



需求呢,网站 部分只用到了


tomcat


,所以只要有


tomcat


即可




第四步:执行测试




10.



您以往是否曾经从事过性能测 试工作?如果有,请尽可


能的详细描述您以往的性能测试工作的完整过程。




是的,曾经做过网站方面的性能测试,虽然 做的时间并不久(


2


个月吧)


,当时呢 ,是有位


网站性能测试经验非常丰富的前辈带着我一起做。


< /p>


性能测试类型包括负载测试,


强度测试,


容量测试等




负载测试:


负载测试是一种性能测试指数据在超负荷环境中运行,


程序是否能够承 担。




度测试:



强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况




容量测试:


确定系统可处理同时在 线的最大用户数




在网站 流量逐渐加大的情况下,开始考虑做性能测试了,首先要写好性能测试计划,根据


运营数 据得出流量最大的页面(如果是第一次的话,一般是首页,


下载页,个人帐户页流量


最大,而且以某种百分比)





关注服务器的


CPU


使用情况,内存使用情况,服务器上线文切换平率,服务器磁盘读写速

-


-


-


-


-


-


-


-