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
总结:
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,
测试开发视频教程、学习笔记领取传送门!!