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

目录

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

[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. 大厂笔试常考选择/判断/填空/简答/编程,概念题多来自需求与模型。

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

相关推荐
草木川_CANoe从入门到精通6 小时前
功能测试day6之APP功能测试(业务+单模块)
功能测试
YMatrix 官方技术社区1 天前
CittaBase vs. Neo4j :原生图性能实测与混合检索实践
数据库·功能测试·ymatrix
2601_965799681 天前
2026 在线笔试平台深度测评与选型指南:从功能、稳定性、AI能力、防作弊全面分析
人工智能·笔记·功能测试
2601_965799681 天前
在线培训考试系统全功能解析:助力企业打造高效人才培养体系
大数据·人工智能·笔记·功能测试
天才测试猿2 天前
2026软件测试面试八股文(含答案+文档)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
天天爱吃肉82182 天前
【重磅发布:拿下新超仁达代理权 】
大数据·人工智能·python·功能测试·汽车
llilian_162 天前
基于PCI总线校时时钟同步卡的高精准授时解决方案
大数据·服务器·功能测试·单片机
草木川_CANoe从入门到精通3 天前
功能测试day1之业务流程(下单+发货+售后)
功能测试
软件测试媛3 天前
软件测试面试问题汇总
功能测试·面试·职场和发展·压力测试