软件测试常见面试题合集(内附详细答案)

01 软件测试理论部分
1.1 测试概念
1. 请你分别介绍一下单元测试、集成测试、系统测试、验收测试、回归测试

单元测试:完成最小的软件设计单元(模块)的验证工作,目标是确保模块被正确的编码

集成测试:通过测试发现与模块接口有关的问题

系统测试:是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件

回归测试:回归测试是指在发生修改之后重新测试先前的测试用例以保证修改的正确性

验收测试:这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。验收测试包括Alpha测试和Beta测试。

Alpha测试:是由用户在开发者的场所来进行的,在一个受控的环境中进行。并且在开发者对用户的指导下进行测试,开发者负责记录发现的错误和使用中遇到的问题

Beta测试 :由软件的最终用户在一个或多个用户场所来进行的,开发者通常不在现场。由用户记录在测试中遇到的一系列问题,并定期报给开发者。

2. 什么是黑盒?什么是白盒?黑盒和白盒的测试方法分别有哪些?

黑盒:黑盒测试也称功能测试或数据驱动测试。把程序看作一个不能打开的黑盆子,在完全不考虑程序内部结构和内部特性的情况下,对程序接口进行测试。“黑盒”法着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试

常用的黑盒测试方法:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。

白盒测试:也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试

常用白盒测试方法

静态测试:不用运行程序的测试;

动态测试:需要执行代码,通过运行程序找到问题;

逻辑覆盖包括:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖

1.语句覆盖每条语句至少执行一次。

2.判定覆盖每个判定的每个分支至少执行一次。

3.条件覆盖每个判定的每个条件应取到各种可能的值。

4.判定/条件覆盖同时满足判定覆盖条件覆盖。

5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。

6.路径覆盖使程序中每一条可能的路径至少执行一次。

3. 测试流程:

需求测试->概要设计测试->详细设计测试->单元测试->集成测试->系统测试->验收测试

4. app测试性能指标

内存

cpu

流量

启动速度

5. web测试和app测试不同点

系统架构方面:

web项目,一般都是b/s架构,基于浏览器的

app项目,则是c/s的,必须要有客户端,用户需要安装客户端。

web测试只要更新了服务器端,客户端就会同步会更新。App项目 则需要客户端和服务器都更新。

性能方面:

web页面主要会关注响应时间

而app则还需要关心流量、电量、CPU、GPU、Memory等。

兼容方面:

web是基于浏览器的,所以更倾向于浏览器和电脑硬件,电脑系统方面的兼容

app测试则要看分辨率,屏幕尺寸,操作系统、网络。

web测试是基于浏览器的所以不必考虑安装卸载。

而app是客户端的,则必须测试安装、更新、卸载。除了常规的安装、更新、卸载还要考虑到异常场景:包括安装时的中断、弱网、安装后删除安装文件 。

6. 缺陷按优先级分为哪些类型? p1-p5 面试重点

缺陷必须立即解决

缺陷要求正常排队等待修复

缺陷可以在方便时被纠正

下一个版本修复

不修复

7. 测试用例的内容是什么? 面试重点

用例编号

测试概述或用例标题

测试步骤

预期结果

输入数据

优先级

前置条件等

8. 测试结束的标准是什么? 面试重点

全部测试用例都被执行完成

未修改bug都被确认或置为应有状态,暂缓修改的问题都有详尽的解析

测试报告编写完成

测试收尾工作结束

测试总结完成

项目处于试运行或上线阶段

在测试计划中定义结束的标准:在一定性能下平稳运行多少天、本版本没有严重bug,普通buh数量在多少个以下,bug修复百分之多少以上

;实际测试达到上述要求,由项目、开发、测试经理共同签字,认同测试结束,版本即可发布。

1.2 软件开发模型
软件生命周期: 从软件最初构思到最终消亡(退役)的过程。

1. 软件生命周期

立项 ---需求分析 ---设计、编码、测试 ---发布 ---运行维护 ---淘汰

软件立项===》可行性研究 ===》需求分析 ===》概要设计 ===》详细设计 ===》编码实现 ===》单元测试 ===》集成测试 ===》系统测试 ===》验收测试 ==》运行维护

2. 瀑布模型


缺点:

1. 各阶段划分完全固定,阶段之间产生大量文档,极大增加工作量

2. 由于开发模型是线性的,用户只有等到整个过程的末期才能看到开发结果,增加开发风险

3. 不适应用户需求变化

3 . 快速原型模型(现在特别流行模式) Axure 软件


1. 原理:迅速搭建一个可以运行的软件原型,以便理解和澄清问题,使开发人员与用户达成共识,最后在确定需求基础上开发客户满意的软件产品

2. 特点:`适合预先不能确切定义需求的软件系统的开发`

3. 优点: ` 克服瀑布模型缺点,减少由于软件需求不明确带来的开发风险 `

4. 增量模型(最常用开发模型之一)


分批次地分析、设计、编码和测试这些增量组件。

5. 迭代模型 开发进度快


1. 原理

`强调开发的深入 ---优化过程

`开发迭代是一次完整地经过所有工作流程的过程:需求分析、设计、实施和测试工作流程

2. 优点

降低在一个增量上的开支风险

降低产品无法按照既定进度进入市场的风险

加快开发工作进度`

适应需求变化快的场景`

6. 螺旋模型


1. 原理:

兼顾了快速模型的迭代的特征以及瀑布模型的系统化与严格监控

2. 优点

最大特点:引入其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减少损失

适合大型昂贵的系统级的软件应用

1.3 软件测试模型
1. v模型


1. 原理:揭示开发过程和测试过程中各阶段的对应关系

2. 缺点与不足:

仅把测试过程作为需求分析、系统设计及编码之后的一个阶段,忽略了测试对需求分析、系统设计的验证

需求的满足情况一直到后期验收测试才被验证

2. w模型


1. 由两个 v 字模型组成,分别代表测试与开发过程,明确表示了测试与开发并行关系

2. 优点:

测试活动与软件开发同步进行

测试对象不仅是程序,包括需求与设计

尽早发现软件缺陷可降低软件开发成本

3. 局限性:无法支持迭代开发模型(没有循环过程)

3. h模型


1. 将测试活动完全独立出来,形成一个完全独立的流程

2. 只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了

3. 软件测试要尽早准备,尽早执行,不同测试活动可按某个次序先后进行,也可反复进行(迭代)

4. x模型


1. 针对单独的程序片段进行相互分离的编码和测试;

2. 定位了探索性测试,这是不进行事先计划的特殊类型的测试;

5. 软件测试生命周期

获取测试需求

编写测试计划

制定测试方案

开发与设计测试用例

执行测试

提交缺陷报告

测试分析与评审

提交测试总结

准备下一版本测试

6. 简述缺陷的生命周期? 面试重点

软件测试人员提交缺陷报告;

测试负责人审核后将缺陷分配给相关开发人员修复

缺陷被修改后有测试人员根据缺陷报告中修改记录进行返测

返测通过的缺陷由负责人关闭;

返测未通过的缺陷直接返回给开发人员重新修改,然后再由测试人员返测,直到测试和开发达成一致处理意见。

测试技术面试题
1、什么是兼容性测试?兼容性测试侧重哪些方面?

2、我现在有个程序,发现在 Windows 上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?

3、测试的策略有哪些?

4、正交表测试用例设计方法的特点是什么?

5、描述使用 bugzilla 缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?

6、你觉得 bugzilla 在使用的过程中,有什么问题?

7、描述测试用例设计的完整过程?

8、单元测试的策略有哪些?

9、LoadRunner 分哪三部分?

10、LoadRunner 进行测试的流程?

11、什么是并发?在 lordrunner 中,如何进行并发的测试?集合点失败了会怎么样?

12、使用 QTP 做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作?

13 、 QTP 中的 Action 有什么作用?有几种?

Action 的作用

Action 的种类

14 、 TestDirector 有些什么功能,如何对软件测试过程进行管理?

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

能测试……)?

16 、软件缺陷(或者叫 Bug )记录都包含了哪些内容?如何提交高质量的软件缺陷( Bug )记录?

17 、 Beta 测试与 Alpha 测试有什么区别?

18 、软件的评审一般由哪些人参加?其目的是什么?

19 、测试活动中,如果发现需求文档不完善或者不准确,怎么处理?

20 、阶段评审与项目评审有什么区别?

21 、阐述工作版本的定义?

22 、什么是桩模块?什么是驱动模块?

23 、什么是扇入?什么是扇出?

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

25、你认为做好测试用例工作的关键是什么?

26、简述一下缺陷的生命周期?

27、软件的安全性应从哪几个方面去测试?

28、软件配置管理工作开展的情况和认识?

29、你觉得软件测试通过的标准应该是什么样的?

30、引入测试管理的含义?

31、一套完整的测试应该由哪些阶段组成?

32、单元测试的主要内容?

33、集成测试也叫组装测试或者联合测试,请简述集成测试的主要内容?

(1)在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

34、简述集成测试与系统测试关系?

(1)集成测试的主要依据概要设计说明书,系统测试的主要依据是需求设计说明书;

35、软件测试的文档测试应当贯穿于软件生命周期的全过程,其中用户文档是文档测试的重点。那么软件系统

的用户文档包括哪些?

36、软件系统中除用户文档之外,文档测试还应该关注哪些文档?

37、简述软件系统中用户文档的测试要点?

38、单元测试主要内容是什么?

39、如何理解强度测试?

40、如何理解压力、负载、性能测试测试?

41、什么是系统瓶颈?

42、文档测试主要包含什么内容?

43、功能测试用例需要详细到什么程度才是合格的?

44、配置和兼容性测试的区别是什么?

(1)软件在不同的主机上的运行情况,例如 Dell 和 Apple;

45、软件文档测试主要包含什么?

46、没有产品说明书和需求文档地情况下能够进行黑盒测试吗?

47、测试中的“杀虫剂怪事”是指什么?

48、在配置测试中,如何判断发现的缺陷是普通问题还是特定的配置问题?

49、为什么尽量不要让时间有富裕的员工去做一些测试?

50、完全测试程序是可能的吗?

51、软件测试的风险主要体现在哪里?

52、发现的缺陷越多,说明软件缺陷越多吗?

53、所有的软件缺陷都能修复吗?所有的软件缺陷都要修复吗?

54、软件测试人员就是 QA 吗?

55、如何减少测试人员跳槽带来的损失?

56、测试产品与测试项目的区别是什么?

57、和用户共同测试(UAT 测试)的注意点有哪些?

58、如何编写提交给用户的测试报告?

59、测试工具在测试工作中是什么地位?

60、什么是软件测试,软件测试的目的?

61、简述负载测试与压力测试的区别。

62、写出 bug 报告流转的步骤,每步的责任人及主要完成的工作。

63、写出 bug 报告当中一些必备的内容。

64、开发人员老是犯一些低级错误怎么解决?

65、画出软件测试的 V 模型图。

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

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

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

能测试……)

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

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

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

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

用。

73 、请以您以往的实际工作为例,详细的描述一次测试用例设计的完整的过程。

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

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

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

77 、当开发人员说不是 BUG 时,你如何应付?

78、软件的构造号与版本号之间的区别?BVT(BuildVerificationTest)

Major.Minor [.Revision[.Build]]

Build :内部版本号的不同表示对相同源所作的重新编译。这适合于更改处理器、平台或编译器的情况。

BVT(BuildVerificationTest) :

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

( Bug )记录?

80 、您以往所从事的软件测试工作中,是否使用了一些工具来进行软件缺陷( Bug )的管理?如果有,请结合

该工具描述软件缺陷( Bug )跟踪管理的流程。

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

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

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

84 、一个缺陷测试报告的组成

85、基于 WEB 信息管理系统测试时应考虑的因素有哪些?

86、软件测试项目从什么时候开始,?为什么?

87、需求测试注意事项有哪些?

88、简述一下缺陷的生命周期

89、你在你所在的公司是怎么开展测试工作的?是如何组织的?

90、你认为理想的测试流程是什么样子?

91 、您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体

的工作中的例子描述该工具是如何在实际工作中应用的。

92、软件测试活动的生命周期是什么?

93、请画出软件测试活动的流程图?

94、针对缺陷采取怎样管理措施?

95、什么是测试评估?测试评估的范围是什么?

96、如果能够执行完美的黑盒测试,还需要进行白盒测试吗?为什么?

97、测试结束的标准是什么?

98、软件验收测试除了 alpha ,beta 测试以外,还有哪一种?

99、做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具?

100、请就如何在开发中进行软件质量控制说说你的看法

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值