软件测试面试之常规问题

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 软件研究院)

相关推荐
软件检测小牛玛16 小时前
具备软件功能测试资质的机构哪家更权威?山东软件测评机构 中承信安
功能测试·单元测试·软件测试报告·软件测评机构
Warren981 天前
Pytest Fixture 作用域与接口测试 Token 污染问题实战解析
功能测试·面试·单元测试·集成测试·pytest·postman·模块测试
测试秃头怪2 天前
面试大厂就靠这份软件测试八股文了【含答案】
自动化测试·软件测试·python·功能测试·面试·职场和发展·单元测试
测试杂货铺2 天前
软件测试面试题大全,你要的都在这。。
自动化测试·软件测试·python·功能测试·面试·职场和发展·测试用例
测试大圣2 天前
软件测试基础知识总结(超全的)
软件测试·python·功能测试·测试工具·职场和发展·单元测试·测试用例
软件检测小牛玛2 天前
如何选择合规靠谱的软件功能测试机构?软件测评机构规格指南
功能测试·测试工具·软件测试报告·软件功能测试·软件测评机构
少云清4 天前
【金融项目实战】5_功能测试 _业务流程测试
功能测试·金融
橘颂TA5 天前
【测试】自动化测试函数介绍——web 测试
python·功能测试·selenium·测试工具·dubbo
Li_Spike5 天前
黑盒测试方法以及测试网关步骤
功能测试
测试_AI_一辰6 天前
Agent & RAG 测试工程05:把 RAG 的检索过程跑清楚:chunk 是什么、怎么来的、怎么被命中的
开发语言·人工智能·功能测试·自动化·ai编程