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

news2024/12/23 15:23:53

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、请就如何在开发中进行软件质量控制说说你的看法

  总结

如果你对此文有任何疑问,如果你也需要接口项目实战,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣欢迎加入我们,加入方式在文章的最后面

  自动化测试相关教程推荐:

2023最新自动化测试自学教程新手小白26天入门最详细教程,目前已有300多人通过学习这套教程入职大厂!!_哔哩哔哩_bilibili

2023最新合集Python自动化测试开发框架【全栈/实战/教程】合集精华,学完年薪40W+_哔哩哔哩_bilibili

测试开发相关教程推荐

2023全网最牛,字节测试开发大佬现场教学,从零开始教你成为年薪百万的测试开发工程师_哔哩哔哩_bilibili

postman/jmeter/fiddler测试工具类教程推荐

讲的最详细JMeter接口测试/接口自动化测试项目实战合集教程,学jmeter接口测试一套教程就够了!!_哔哩哔哩_bilibili

2023自学fiddler抓包,请一定要看完【如何1天学会fiddler抓包】的全网最详细视频教程!!_哔哩哔哩_bilibili

2023全网封神,B站讲的最详细的Postman接口测试实战教学,小白都能学会_哔哩哔哩_bilibili

  总结:

 光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

​​​

​​​

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1679472.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【强化学习】DQN类算法的一些理解

一、DQN算法为什么要使用两个网络? DQN算法通常包含两个网络:一个是评估网络training_network,另一个是目标网络target_network。这两个网络的结构和初始权重是相同的,但它们的权重是不同步更新的。使用两个网络的原因是为了稳定…

【数组中重复的数据】leetcode,python

和上题一样,【找到所有数组中消失的数字】 换个判断条件就行 class Solution:def findDuplicates(self, nums: List[int]) -> List[int]:nlen(nums)for i in nums:x(i-1)%nnums[x]n#只需要替换条件即可return [i1 for i,num in enumerate(nums) if num>(2*n)…

easyx快速入门1

1.基本说明 EasyX 是针对 C 的图形库,可以帮助 C/C 初学者快速上手图形和游戏编程。 比如,可以基于 EasyX 图形库很快的用几何图形画一个房子,或者一辆移动的小车,可以编写俄罗斯方块、贪吃蛇、黑白棋等小游戏,可以练…

公共命名空间和RHP

概述 RHP的全称是:the little Robot that Helped me Program,帮我编程序的小机器人。 RHP必然存在,C语言的宏、C的模板,都是RHP;更复杂的例子,是lex和yacc,它们是制作程序的程序,也…

YOLOv9训练自己的数据集:最新最详细教程

一、代码及论文链接: 代码链接:https://github.com/WongKinYiu/yolov9/tree/main 论文链接:https://arxiv.org/abs/2402.13616 二、使用步骤 1.1 虚拟环境配置 创建一个虚拟环境用于单独对yolov9的环境进行配置: conda crea…

Latex问题1

问题 添加bib文件的引用后 \bibliographystyle{IEEEtran} \bibliography{IEEEabrv}之后,出现莫名其妙的错误,如下 IEEEabrv.bib是我的参考文献的bib文件,CCS_1.tex是我的tex文件,bib文件中的内容为 ARTICLE{1,author{Capponi,…

冥想训练具体方法有哪些|流静冥想

冥想是一种身体的放松和敏锐的警觉性相结合的状态。 每日练习的好处远不止你花在集中注意力的那几分钟。桑托雷利是建在乌斯特的马萨诸塞大学医学院的减压诊所的所长,她也是《自愈》的作者,她说:"冥想是一种工具,通过练习&a…

Python使用asyncio包实现异步编程

1. 异步编程 异步编程是一种编程范式,用于处理程序中需要等待异步操作完成后才能继续执行的情况。异步编程允许程序在执行耗时的操作时不被阻塞,而是在等待操作完成时继续执行其他任务。这对于处理诸如文件 I/O、网络请求、定时器等需要等待的操作非常有…

如何隐藏计算机IP地址,保证隐私安全?

隐藏计算机的IP地址在互联网在线活动种可以保护个人隐私,这是在线活动的一种常见做法,包括隐私问题、安全性和访问限制内容等场景。那么如何做到呢?有很5种方法分享。每种方法都有自己的优点和缺点。 1. 虚拟网络 当您连接到虚拟服务器时,您…

干什么副业好呢?

选择适合自己的副业可以根据个人的兴趣、技能和时间来决定。以下是一些常见的副业选择 1. 在线销售 可以在电商平台上开设自己的网店,销售自己感兴趣的产品,如手工艺品、服装、配饰等。 2. 做任务 网上我还在做的致米宝库,一个月有个一千多…

【go项目01_学习记录12】

代码组织 1 代码结构2 重构与测试2.1 安装测试功能2.2 testify 的常用断言函数 3 表组测试 1 代码结构 所有的代码写在一个main.go文件里面,GO编译器也是可以正常执行的。但是当代码量很庞大时,很难进行维护。 Go Web 程序的代码组织 单文件——反模式…

滑动窗口算法及相关习题

滑动窗口 又叫"同向双指针", left和right指针构成一个窗口 一般可以利用单调性时, 用到滑动窗口 使用: 定义left 0,right 0进窗口判断出窗口 还有一步是更新结果, 在哪一步更新是根据题意的 其中234步循环进行 一. 长度最小的子数组 答案 二.无重复字符的最长…

前馈神经网络FNN、多层感知机MLP和反向传播推导

目录 一、前馈神经网络FNN 激活函数的使用 二、多层感知机MLP MLP的典型结构 多层感知机MLP的特点 和前馈神经网络FNN的区别 三、传播推导 1、前向传播(Forward propagation) (1)输入层到隐藏层 (2)隐藏层到输出层 2、…

(C语言)队列实现与用队列实现栈

目录 1.队列 1.1队列的概念及结构 1.2 队列的实际应用联想 1.3队列的实现 2. 队列应用——队列实现栈 主要思路 1.队列 1.1队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进…

报错:(idea端口被占用)Web server failed to start. Port 9090 was already in use.

cmd里面输入: netstat -ano|findstr "9090" 可以看到pid是9644 然后再打开任务管理器

Redis实战—验证码登录注册

目录 基于Session Controller层 Service层 ServiceImpl层 ​编辑校验登录状态 ThreadLocal 登录拦截器 添加拦截器到Config Controller层实现 基于Redis ServiceImpl 新增刷新拦截器 添加拦截器到Config 基于Session Controller层 /*** 发送手机验证码*/PostMappi…

Docker三剑客从0到1

一、docker三剑客介绍 使用"三剑客"可以帮助我们解决docker host维护,多容器编排部署,多个docker host集群的各个难题。 docker-machine 创建虚拟机 我们知道docker使用了linux的内核技术(namespace 资源隔离,cgroup资源限制等),那么如果我想在windows或Mac系统上…

浅析扩散模型与图像生成【应用篇】(二十五)——Plug-and-Play

25. Plug-and-Play: Diffusion Features for Text-Driven Image-to-Image Translation 该文提出一种文本驱动的图像转换方法,输入一张图像和一个目标文本描述,按照文本描述对输入图像进行转换,得到目标图像。图像转换任务其实本质上属于图像编…

【Flask框架】

6.Flask轻量型框架 6.1Flask简介 python提供的框架中已经写好了一个内置的服务器,服务器中的回应response行和头已经写好,我们只需要自己写显示在客户端,的主体body部分。 ---------------------------------------------------------- Fla…

【Linux】常用指令、热键与权限管理

一、常用指令 (1)ls 功能:列出指定目录下的所有子目录与文件 用法:ls (选项) (目录或文件名) 常用选项: -a:列出目录下的所有文件,包括隐藏…