文章目录
- 一、什么是软件测试?
- 二、为什么需要软件测试?
- 三、⾼频⾯试题
- 四、优秀的软件测试⼈员具备的素质
- 五、用户需求与软件需求
- 六、开发模型
-
- [(1) 瀑布模型](#(1) 瀑布模型)
- [(2) 螺旋模型](#(2) 螺旋模型)
- [(3) 增量模型和迭代模型](#(3) 增量模型和迭代模型)
- [(4) 敏捷模型](#(4) 敏捷模型)
- 七、测试模型
-
- [(1) V模型](#(1) V模型)
- [(2) W模型(双V模型)](#(2) W模型(双V模型))

文章作者:当战神遇到编程
文章专栏:测试理论和实践
欢迎大家点赞👍评论📝收藏⭐文章



一、什么是软件测试?
软件测试就是验证软件产品特性是否满⾜⽤户的需求
二、为什么需要软件测试?
从企业盈利逻辑出发,软件是企业与用户交互的载体,用户体验直接影响企业收益。测试人员的核心作用是:
- 保障软件质量
- 提升用户满意度最终帮助企业通过用户的使用 / 付费行为获得收益。

三、⾼频⾯试题
1.软件测试开发⼯程师和测试⼯程师的区别
相同点:
- 都统称为测试⼈员
- 主要工作是对产品质量负责,保障产品的质量
不同点:
测试开发⽐测试多"开发"⼆字,⽽这个开发并不是指业务开发,因为业务开发是开发⼈员的主要职责,这⾥的开发指的是需要开发测试效率⼯具,通过效率⼯具来提升测试效率和测试质量,⽐如我们的⾃动化、性能测试等就属于效率⼯具。
2.简历上写了大量的开发技能,为什么找测试不找开发
- 测试⼈员也需要编写代码,如⾃动化测试、性能测试、开发测试效率⼯具等。测试⼈员需要能够看懂代码、了解开发框架。
- 学好开发知识能够提⾼软件测试质量。通过查看代码中数据的⾛向能够更好的从代码层⾯去发现问题。
四、优秀的软件测试⼈员具备的素质
- 综合能⼒(沟通能力,快速学习能力,开发能力,文字能力)
- 掌握⾃动化测试技术
- 具备优秀测试用例的设计能力
- 具备探索性思维
- 兴趣
- 有责任感,抗压能力强
五、用户需求与软件需求
1.用户需求: 是甲方 / 终端用户提出的简化诉求,通常仅用一句话描述。
2.软件需求: 软件需求也叫功能需求,是对用户需求进行分析、拆解和细化之后形成的具体描述。
注意: 针对用户提出的需求,产品经理需要先进行需求分析,包括技术可行性、市场可行性、成本投入、收益占比等方面。
只有经过评估、筛选和确认后的用户需求,才能转化为正式的软件需求,并形成软件需求文档,作为后续开发和测试的依据。
六、开发模型
所谓开发模型,可以理解为软件从需求产生到最终交付所遵循的一套流程或方法。
在学习开发模型之前,需要先理解软件生命周期。
软件生命周期指的是软件从产生需求开始,到最终停止维护或被替代的整个过程。
一个典型的软件生命周期包括:
需求分析 → 计划 → 设计 → 编码 → 测试 → 运行维护
软件生命周期各阶段做什么
| 阶段 | 主要工作 | 常见产出 |
|---|---|---|
| 需求分析 | 判断用户需求是否合理,从业务、市场、技术等角度进行分析 | 需求文档 |
| 计划 | 安排开发周期、人员分工、阶段目标 | 项目计划文档 |
| 设计 | 将需求拆解为具体任务,进行架构、接口、技术方案设计 | 技术设计文档 |
| 编码 | 开发人员根据需求和设计进行代码实现 | 代码文件 |
| 测试 | 测试人员根据需求和测试用例验证软件质量 | 测试用例、测试报告 |
| 运行维护 | 软件上线后修复问题、完善功能、防范风险 | 维护记录、版本更新记录 |
其中,运行维护又可以分为三类:
- 修复性维护: 修复线上已经暴露的问题。
- 完善性维护: 对已有功能进行优化和增强。
- 预防性维护: 提前做防护,避免未来出现问题。
软件开发模型有很多,其中比较典型的包括:
- 瀑布模型;
- 螺旋模型;
- 增量模型;
- 迭代模型;
- 敏捷模型。
不同模型适用于不同类型的项目。
(1) 瀑布模型
瀑布模型是最经典的线性顺序式软件开发模型,也是很多现代开发模型的基础。
它的流程像瀑布一样单向流动,上一个阶段完全完成后,才会进入下一个阶段,流程为:
需求分析 → 计划 → 设计 → 编码 → 测试 → 上线维护
它的优点是阶段划分清晰、文档齐全、便于管理;缺点是测试后置,前期的问题要到测试阶段才集中暴露,返工成本高。
适用场景: 需求固定的小项目
(2) 螺旋模型
螺旋模型是一种渐进式开发模型,每一轮开发都要进行风险分析。

优缺点:
- 优点: 全程风险管理、保障各阶段质量、通过原型降低风险;
- 缺点: 风险管控依赖人员能力、成本较高;
适用场景: 规模大、复杂度高、风险大的项目。
(3) 增量模型和迭代模型

增量模型和迭代模型的区别
| 对比项 | 增量模型 | 迭代模型 |
|---|---|---|
| 核心思想 | 一块一块做 | 一轮一轮优化 |
| 关注点 | 功能逐步增加 | 产品逐步完善 |
| 类比 | 先画头,再画身体,再画手脚 | 先画轮廓,再细化,再上色 |
| 交付方式 | 每次交付新增功能 | 每次交付优化版本 |
适用场景: 大型、需求不明确的项目。
(4) 敏捷模型
敏捷开发有一个非常重要的思想来源:敏捷宣言。
宣⾔内容:
个体与交互 重于 过程和工具 强调高效沟通
可用的软件 重于 完备的文档 强调轻文档,文档不应该作为验收的标准
客户协作 重于 合同谈判 主动及时了解当下的需求
响应变化 重于 遵循计划 主动迎接变化
敏捷模型的特点
可以总结为四点:
轻文档、轻流程、重目标、重产出
Scrum是敏捷模型中的⼀种,⼜称为迭代式增量软件开发模型。在scrum模型中,主要有三个⻆⾊和五个重要会议。
Scrum 的三个角色
- Product Owner,产品经理
- Scrum Master,项目经理
- Team,研发团队
Scrum 的五个会议
1.发布计划会议 (Release Planning)
产品经理讲解用户需求,团队共同对产品待办列表(Product Backlog)进行优先级排序和估算,确定本次迭代 / 发布的目标和待办范围,形成本期要完成的迭代待办列表。
2.迭代计划会议(Sprint Planning)
项目团队对迭代待办列表中的每一项需求进行拆解,细化为可执行的开发任务,明确任务负责人、完成时间和验收标准。
3.每日站会(Daily Scrum)
每天由项目经理组织,团队成员通常回答三个问题:
昨天做了什么? 明确每个人当前的项目进度
今天准备做什么? 每日的目标和计划
遇到了什么问题? 有问题及时抛出解决,保证产品在规定的周期内可以按时交付
4. 迭代评审会议(Sprint Review)
迭代结束后,团队向产品经理、客户及相关方演示本次迭代交付的可工作软件增量,收集反馈意见,验证产品价值,并由产品经理更新产品待办列表,纳入新的需求或调整优先级。
5.迭代回顾会议(Sprint Retrospective)
团队复盘本次迭代的全流程,讨论三个核心问题:
- 本次迭代中哪些地方做得好?
- 哪些地方存在问题、需要改进?
- 下次迭代可以具体采取哪些优化措施?
七、测试模型
测试模型中有两个⾮常重要且具有标志性的测试模型:V模型和W模型
(1) V模型

V 模型大致可以理解为:
用户需求 ↔ 验收测试
需求分析 ↔ 系统测试
概要设计 ↔ 集成测试
详细设计 ↔ 单元测试
编码
V 模型中不同测试阶段的含义
1. 单元测试
验证单个函数、方法、类或模块是否符合详细设计要求。
2. 集成测试
验证多个模块组合后是否能够正确协作。
3. 系统测试
从整体角度验证系统是否满足需求规格说明。
4. 验收测试
验证软件是否满足用户需求或合同要求。
V 模型的优点和缺点
- 优点: 明确的标注了测试过程存在的不同类型的测试,并清晰地描述了这些测试阶段与开发阶段期间各阶段的对应关系,有效提升测试的质量和效率
- 缺点: 同瀑布模型,前期的问题要到测试阶段才集中暴露,返工成本高.要给测试保留充足时间,否则会将缺陷直接暴露给线上.
(2) W模型(双V模型)

特点: 测试的对象不仅是程序,需求、设计等同样要测试,测试与开发是同步进⾏的
缺点:
- 仍然偏线性
- 流程较重
- 不太适合快速变化的敏捷项目