软件测试面试之常规问题

1.描述一下测试过程

类似题目:测试的生命周期

思路:这是一个"范围"很大的题目,而且回答时间一般在3分钟之内,不可能非常详细的描述整个过程,因此答题的思路要从整体结构入手,不要过细。为了保证答案的准确性,可以引入双V测试模型对测试的过程划分。

答:

1)、每个公司的测试过程都不尽相同,但基本都依据或参考行业所认可的一些测试模型,如 V模型、双 V模型等,不同的模型对测试的过程划分也不尽相同。例如V模型多了一个"验收测试过程"。

2)、对测试过程划分比较细致的是双V模型,依据和开发的参照关系分为3个大的阶段:单元测试阶段、集成测试阶段、系统测试阶段:每个阶段的工作内容又分为4个小阶段:计划阶段、设计阶段、实现阶段、执行阶段。其中计划、设计、实现被统称为"测试准备阶段",可以前置实现(即

在开发编码的同时测试在进行用例的编写等工作)。

3)、在测试的实际过程中要有相关的工具进行支持和管理,如 Junit(单元测试)、SVN(配置管理)、QC(系统测试管理)。其中 QC对测试的支持大致可以划分为版本周期管理、测试需求管理、测试用例管理、测试执行管理、缺陷跟踪。

2.描述一下缺陷跟踪过程

思路:缺陷跟踪实际是描述公司对缺陷的管理过程,因为过程较复杂,纯文字描述很难表达逻辑的准确性,因此建议配合图形的方式回答(面试时需要自备纸笔)。

答:

1)、缺陷跟踪的目的:管理缺陷,随时跟踪缺陷所处的位置,并进行缺陷分析。

2)、跟踪使用的缺陷字段是"状态",一般至少包括:new、open、fixed、reopen、closed。根据公司实际情况可以自行添加状态,如:Reject。

3)、实现跟踪需要支撑的工具,如 QC(在定制管理的用户组权限中进行设置)。

3.黑、白、灰盒测试的区别

答:

1)、黑盒测试:不考虑组件或系统内部结构的功能或非功能测试(简单来说就是:代码不可见

的测试),主要应用于系统测试阶段,常见的测试方法包括:功能测试、易用测试、兼容测试等。2)、白盒测试:基于对组件或系统的内部结构的分析而进行的测试。(简单来说就是:代码可见的测试),主要应用于单元测试阶段,常使用逻辑覆盖率(路经覆盖、分支覆盖等)进行测试设计。

3)、灰盒测试:介于黑盒和白盒之间的测试,一般理论上存在,实际招聘岗位的很少。主要应用于集成测试阶段,常用于接口测试。

4.静态、动态测试的区别

答:

1)、这两种测试方法主要以代码是否被"执行"作为区分的标准。

2)、静态测试:代码没有被执行。如:代码走读,Java 编译工具(代码写完要先编译,检查语法是否有错误,属于静态+自动化测试,如果编译没有错误才可能被运行)。

3)、动态测试:代码被执行起来了。如功能测试(分别输入有效、无效值测试输入,程序必须要先运行起来)。兼容测试(被测程序在不同的环境(Win7、win8 等)下运行是否正常)

5.验收测试和α测试、β测试的区别

思路:对这几个测试方法的分类,业界没有形成统一的标准,为了防止考官和你学习的标准不统一,回答问题前最好加上些说明。

答:

1)、业内对以上方法的划分没有形成统一的标准,有人认为是并列关系,即验收测试针对的是项目而言,α和β测试针对的是产品而言。有人认为是从属关系,即α测试属于内部验收测试,是可控的,β测试属于外部验收测试,一般难以控制。

2)、关于这三个测试的定义可以参考前面的"名词解释"部分。

6.负载、压力、容量测试的区别

思路:一般这些测试均属于性能测试的范畴,业界的解释也是不统一的,类似的还包括"基准测试"

等。

答:

1)、以上词汇属于性能测试的常见术语。

2)、定义见文档名词解释部分(压力测试、负载测试、容量测试)。

7. 测试计划和策略都包括哪些内容

答:

1)、测试计划:主要内容包括:测试的对象、工作任务安排(谁什么时间做什么事儿)、风险评估、结束或成功的标准等。

2)、测试策略(设计):主要内容包括:依据《测试计划》进行用例的设计和分析、如何设计测试数据、如何搭建测试环境等。

3)、定义见文档名词解释部分。

8.简述常见的测试方法和类型

思路:对于"测试方法"、"测试类型"业界也没有统一的标准划分,因此答题的时候干脆把所有可能的分类方法都说出来。

答:

1)、当前业界类似种类划分很多,没有形成统一的标准,我的理解是:

2)、测试方法分为:白盒、黑盒、静态、动态、人工、自动等。

3)、测试类型分为:(参考 IS09126):功能、安全、兼容等 27 项。

4)、用例设计方法:等价类、边界值、判定表、正交实验、流程分析、状态迁移。

9.单元测试和白盒测试的区别答:

1)、单元测试一般指的是:测试的某个阶段

2)、白盒测试一般指的是:一种测试方法

3)、他们的关系:在单元测试阶段,使用白盒测试的方法

10.测试用例的组成字段

思路:每个公司用例的组成字段都不相同,因此回答分为两个部分,主要字段(所有公司都有的字段,属于重要的内容)和其他字段(相对来说不是很重要,每个公司都不尽相同),这样防止考官总说你回答的字段不全。

答:

1)、一般用例的主要字段包括:用例标题、步骤名称、步骤描述、预期结果、实际结果

2)、其它辅助字段各个公司都不尽相同,如:用例编号、编写人、预置条件、优先级、对应版本、执行状态,覆盖需求等。

3)、额外补充:如 QC 工具可以将共性的用例步骤设计为模板,并进行参数化出来,以减少大量重复用例写作,提高工作效率。公司额外的字段也可以在不同的项目中自行添加。

4)、把用例的设计工作和编写工作最好分开,以便于评审和复用。

5)、注意用例对需求的覆盖(跟踪)关系维护,以及确定执行的优先级和次序。

11.缺陷报告的组成字段

思路:同上

答:

1)、主要字段:标题、描述、状态、严重程度、优先级

2)、其它字段:时间(提交、修改、回归、关闭)、版本(提交、修改、关闭)、人(提交人、分配人)、缺陷产生原因等。如果字段的数量多,也意味着缺陷分析的角度就多。

3)、为了防止表达不清楚和二义性,最好附加一些截图、操作视频、测试数据等附件。

4)、额外补充:如 QC类工具,可以添加用户指定的字段,并进行缺陷分析(柱形图、饼状图)。

12.如果出现需求变更怎么办

思路:需求是一个很大的范畴,统称需求工程,涵盖内容很多,主要从学习过的内容回答即可。

答:

1)、从 IS09000 的定义中,需求包括:显示、隐式和规范性需求。除了客户提出的显示需求,要尽量挖掘和发现隐式需求,同时要满足行业、国家等相关的规范。

2)、需求要经过评审才能使用,保证需求的准确性和全面性。因为几乎所有的生命周期模型中都以需求作为开始的起点,因此如果需求出现问题,会导致缺陷的发散。

3)、可以对需求进行"建模",绘制"流程终"或者"状态图",用图形的方式保证需求尽量不产生二义性(因为图形元素的定义是标准的),而且可以为后续的测试用例编写提供依据。4)、维护需求跟踪关系,如需求和用例的跟踪覆盖关系(Qc 中可以实现),一旦有需求发生变更,可以确定需求变更对用例的影响范围。

5)、每次需求变更并评审通过后,要进行基线化控制,保证相关人员使用的同一个版本的需求。

13.开发不认可你的缺陷怎么办

思路:这道题就没有标准答案了,可以说是"人各有志",不同的人有不同的方法,因此主要考察点不是对测试知识和技能的掌握,而是你处理人际关系,团队关系,同事关系的能力。

1)、要尽可能避免这种情况发生,此类情况多发生在新员工身上,由于技术和业务掌握不是很扎实,导致提交一些无效的缺陷,这时可以增加测试内部的评审的环节来解决,即测试提交新缺陷(New)后,由测试经理或资深人员进行审核,确认无误可以打开缺陷(0pen),提交给开发修改,否则置为无效(Abandon),不提交给开发进行修复。参考《缺陷跟踪流程图》。

2)、尽量沟通协调,听听对方的理由,如果开发理由充分,放弃此缺陷

3)、如果认为开发理由不充分,确实需要修复,你要举出反例(参考其它同类软件的功能)来证明该缺陷是有道理的。

4)、咨询其他资深的测试同事,看是否有过类似问题,可以求教一下。

5)、实在无法协调的,可以直接提交缺陷报告,改或不改完全由开发决定,起码保证客户反馈类似问题的时候,责任不在测试这里。

6)、总之,凭借我的技术和沟通能力,相信一定能很完美的处理类似的问题。

14.发现不可重现的缺陷怎么办

答:

1)、检查是否严格按照用例去执行的,还是无意中发现的,尽量去重现或者找到规律2)、检查测试环境,包括操作系统、测试数据等一切可能引起缺陷的原因。

3)、在缺陷报告中注明:不可重现或无法发现规律,最好缺陷报告中就设定类似字段(QC中默认有该字段,叫"是否可重现")。

4)、在提交缺陷报告的时候尽可能添加附件,如当时抛出的异常,日志信息等,也许开发能从中发现一些蛛丝马迹,进而修复缺陷。

15.验证和确认的区别

答:

1)、确认:做没做。如软件的功能是否被开发实现了。

2)、验证:做的对不对。如开发出来的功能需要验证(测试)是否正确,

3)、这个词出现的频率很高,如 CMMI(3 级中有验证、确认两个过程域)、双 V模型。

16.给你个纸杯怎么测

思路:这类题属于常见问题,一般是可以按照套路出牌的,类似问题有"给你张白纸怎么测","一部电梯怎么测"等等,主要回答进行测试的角度即可。

答:

1)、可以从多个角度进行测试,如:

功能测试:盛水、倒水是否流畅,是否漏水。

易用测试:是否口大底小,易于手握住。

可靠测试:盛水一段时间后是否出现渗漏的情况,

依从性测试:材质、规格是否符合国家相关环境、安全标准

2)、对于软件测试而言,角度会更多,为了保证充分性可以参考 S09126 质量模型进行分析。

17.简述评审过程

18.测试结束的标准有哪些

答:

1)、测试的结束或者成功与否的标准,一般在《测试计划》中进行定义。

2)、每个公司制定的该标准也是各不相同,如:

A、没有新的 Bug 产生或者反弹

B、覆盖率和通过率达标:如高级需求 100%覆盖并通过,低级 30%盖并通过。

C、缺陷修复率,如致命 100%修复,轻微 70%修复

D、自动化测试用例的比例(IBM 软件研究院)

相关推荐
云边散步1 天前
一篇文章学会功能测试(手工测试)
功能测试
川石课堂软件测试2 天前
UI自动化测试|web端元素获取&元素等待实践
开发语言·前端·功能测试·算法·ui
CaptainDrake3 天前
Charles抓包工具-笔记
网络·功能测试
小白~小黑8 天前
软件测试基础三十 (Python + Flask实现Mock平台搭建)
python·功能测试·测试工具·自动化
Dreams°1239 天前
【大数据测试HDFS + Flask详细教程与实例】
大数据·功能测试·hdfs·单元测试·flask
CSXB9911 天前
三十八、Python(pytest框架-上)
python·功能测试·测试工具·单元测试·pytest