软件测试开发学习笔记(二)|概念篇:需求、开发模型与测试思维

目录

一、课前思考:测试开发基础认知

[1. 什么是软件测试?](#1. 什么是软件测试?)

[2. 软件测试的岗位](#2. 软件测试的岗位)

[3. 测试与开发的区别](#3. 测试与开发的区别)

[4. 优秀测试人员需具备的素质](#4. 优秀测试人员需具备的素质)

二、本节课程目标(笔试/面试指向)

三、什么是需求?

[3.1 需求的定义](#3.1 需求的定义)

[3.2 需求文档示例(注册场景)](#3.2 需求文档示例(注册场景))

四、开发模型(即产品的开发流程)

[4.1 软件的生命周期](#4.1 软件的生命周期)

[4.2 各阶段简单理解(类比造房子)](#4.2 各阶段简单理解(类比造房子))

五、常见开发模型

[5.1 瀑布模型](#5.1 瀑布模型)

[5.2 螺旋模型](#5.2 螺旋模型)

六、面试/笔试速记点


本篇为测试开发/软件测试基础第二篇,聚焦面试与笔试常考概念:什么是需求、开发模型(瀑布/螺旋)、软件生命周期,以及测试岗位认知。

一、课前思考:测试开发基础认知

1. 什么是软件测试?

验证产品的特性是否符合用户的需求。

2. 软件测试的岗位

软件测试工程师:围绕测试质量要求展开。

软件测试开发工程师:存在技术业务(如开发效率工具等),同样围绕测试质量要求展开。

3. 测试与开发的区别

面试常问"为什么找测试不找开发"。核心在于两者目标与思维方式不同,测试更关注质量风险、边界与用户场景。

4. 优秀测试人员需具备的素质

(面试中可结合细心、逻辑、沟通、业务理解、风险意识来答。)

二、本节课程目标(笔试/面试指向)

需求的概念:面试可能会考。

开发模型:大厂笔试题基本类似,同一套试卷,含选择题、判断题、填空题、简答题、编程题。

测试模型:大厂笔试题基本都是编程题(本节重点在前两者)。

三、什么是需求?

3.1 需求的定义

多数软件需求分两类:

用户需求:偏业务语言,较抽象。

软件需求/功能需求:经分析拆解后的具体规格。

没有经过合理评估,通常来说就是"一句话"。

需求是测试人员和开发人员的工作依据。

示例:

用户说"对数组进行排序" → 需评估:什么数组?整型数组?升序降序?选择什么排序算法?......

用户说"我想谈恋爱"(用户需求) → 软件需求可拆为:社交认识朋友、找喜欢的人、聊天、表白、在一起等。

3.2 需求文档示例(注册场景)

从用户需求"我想谈恋爱/社交"到软件需求,可落地为:

平台支持账号注册。

用户信息:账号密码、手机号/邮箱、性别、年龄等输入限制与校验。

用户协议:同意/不同意。

注册失败原因提示。

验证码、密码强度、有效期等约束。

注意:用户需求不能直接作为开发和测试依据,针对用户需求,产品经理需要做需求分析(技术可行性、市场可行性、成本投入和收益点等),转变为软件需求文档。

四、开发模型(即产品的开发流程)

这里的"模型"实际上指的是流程,所以开发模型实际上是(产品的)开发流程。

4.1 软件的生命周期

生命周期开始 → 需求分析 → 计划 → 设计 → 编码 → 测试 → 运行维护 → 生命周期结束

类比:建房子/人的生命周期(婴幼儿→少年→青年→中年→老年→生命结束)。

游戏案例:QQ飞车、QQ图标等版本迭代。

4.2 各阶段简单理解(类比造房子)

需求分析:做什么、解决谁的问题,类比为什么建、给谁住。

计划:时间、资源、工时,类比计划工期。

设计:技术方案/架构/详细设计,类比图纸、水电、结构。

编码:实现功能,类比施工建造。

测试:验证质量,类比验收检查。

运行维护:上线后修复与优化,类比入住后维修维护。

目标由一个个任务组成,每个任务完成即推进目标。

五、常见开发模型

5.1 瀑布模型

线性推进:需求 → 计划 → 设计 → 编码 → 测试 → 运行维护。

"瀑布模型是其他模型的基础框架。"

++特点:++

线性结构,每个阶段只执行一次。

适用于需求固定的小项目(如购物软件某半年/一年周期、早期百度YY直播等)。

最大缺陷:

缺陷往往到测试阶段才被发现,导致前期隐藏问题在后期集中爆发,可能让前期大量工作重做。

适用场景:需求固定的小项目。

5.2 螺旋模型

强调风险分析,循环迭代:需求分析/计划 → 设计/风险分析 → 编码/实施 → 测试/评估,多轮循环。

类比:"设计图"不断修正,风险驱动。

++优点:++

强调严格的全过程风险管理(风险管理)。

强调各开发阶段的质量。

提供风险评估和原型。

++缺点/注意:++

项目中可能存在的风险管理人员技能要求高。

需求/人员/资金/时间投入可能增加成本。

适用场景:规模大、复杂度高、风险大的项目。(如百度搜索复杂功能迭代场景)

六、面试/笔试速记点

  1. 软件测试目的:验证产品特性是否符合用户需求。

  2. 需求是开发和测试的依据;用户需求 ≠ 软件需求,需经评估与分析。

  3. 软件生命周期:需求分析、计划、设计、编码、测试、运行维护。

  4. 瀑布模型:线性、一次性、适合需求固定小项目;缺陷发现晚。

  5. 螺旋模型:迭代+风险分析;适合大型、复杂、高风险项目。

  6. 大厂笔试常考选择/判断/填空/简答/编程,概念题多来自需求与模型。

------测试开发基础第二篇,笔记整理。

相关推荐
努力搬砖的小H1 天前
FPGA应用技巧之DDR3读写自检方案设计与IP仿真总结
经验分享·功能测试·fpga开发·modelsim·ddr3
咖啡星人k1 天前
2026 AI 自动化测试:让 AI 帮你写用例、跑测试、修 Bug(MonkeyCode 云端实战)
人工智能·功能测试·单元测试·测试用例·bug·集成测试
边吃番茄边敲代码2 天前
企业智能助手Agent 安全测试,包含Prompt Injection 和越权工具调用
人工智能·python·功能测试·ai·单元测试·prompt·模块测试
汽车仪器仪表相关领域4 天前
ZDT‑I伺服电机测试系统:四象限动态加载
大数据·数据库·分布式·功能测试·汽车·压力测试·可用性测试
随风而飘1864 天前
Keithley美国吉时利 2016-P 6.5位音频分析数字多用表
网络·人工智能·功能测试
炎武丶航5 天前
汽车功能测试学习(2):LDW车道偏离预警
功能测试·学习·汽车
随风而飘1865 天前
KEITHLEY吉时利 2400 数字源表
人工智能·功能测试·科技·测试工具
程序员三藏6 天前
自动化测试用例编写详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
随风而飘1866 天前
安立(Anritsu)MT8820C无线综合测试仪(手机综测仪)
网络·功能测试·测试工具·5g·智能手机