03软件开发与软件测试模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件生命周期指从提出软件产品开始,直到该软件产 品被淘汰的全过程。 概括地说,软件生命周期由软件定义、软件开发和运 行维护三个时期组成,每个时期又可进一步划分成若干个 阶段。
软件生命周期的基本任务
• • • • • • • • 问题定义 可行性研究 需求分析 概要设计 详细设计 编码和单元测试 综合测试 软件维护
Delivery & Maintenance
15
PART ONE – The Process
快速原型模型
listen to customer
build/revise mock-up
customer test-drives mock-up
Prototyping Model
16
快速原型模型
快速原型模型特点
软件定义时期
软件开发时期 运行维护时期
问题定义阶段
该阶段的关键任务是要明确:
要解决的问题是什么?
可性行研究阶段
该阶段的关键任务是要明确:
做不做
用最小的代价在尽可能短的时间内从经济、技术、社 会因素等方面论证解决方案的可行性
需求分析阶段
该阶段的关键任务是要Baidu Nhomakorabea确:
做什么
1. 对目标系统提出完整、准确、清晰、具体的要求 2. 用正式的文档准确地记录对目标系统的需求,形成软件 需求规格说明书(SRS)
注意点
概要设计(总体设计)阶段
该阶段的关键任务是要明确: 怎么做 1. 定义系统的总体结构及接口之间的关系 2. 完成系统的概要设计说明书及集成测试计划
详细设计阶段
该阶段的关键任务是要明确: 具体做法 1. 2. 设计出程序的详细规格说明,即详细地设计每个模块, 确定实现模块功能所需要的算法和数据结构 完成详细设计说明书和单元测试计划
increment 1
code t est
ana lysis
des ign
delivery of 1st increment
特点:每次提交的都是一 个满足用户需求子集的可 运行的产品
delivery of 2nd increment
increment 2
analysis
design
code
test
increment 3 analysis
21
螺旋模型总体思想
• 螺旋模型的总体思想是一开始不必详细定义所有细节。从 小开始,定义重要功能,努力实现这些功能,接收客户反 馈,然后进入下一阶段。重复上述过程,直至得到最终产 品
编码和单元测试阶段
该阶段的关键任务是
编码和单元测试
1. 编写出正确的、易理解的、易维护的程序模块; 2. 仔细测试编写出的每一个模块 3. 提交通过了单元测试的各功能模块及单元测试结果
综合测试阶段
该阶段的关键任务是通过各种类型的测试(及调试) 使软件达到预定的要求
1. 集成测试:根据设计的软件结构,把经过单元测 试检验的模块按某种策略装配起来,在装配过程 中对程序进行必要的测试。 2. 系统测试:检验开发的系统能否与系统的其它部 分协调工作。 3. 验收测试:按照规格说明书的规定,由用户对目 标系统进行验收。 4. 将所有测试相关资料文档化并纳入配置管理
• 快速原型的本质是“快速”。开发人员应该尽可能快地建 造出原型系统,以加速软件开发过程,节约软件开发成本。 • 快速原型模型可用于获取用户的真正需求。 • 对快速原型模型,可了解用户是如何使用原型的,将使用 情况定义为对客户很重要的场景,然后使用这些场景作为 系统测试用例
18
迭代-增量模型
System/information engineering
design
code
te st
delivery of 3rd increment delivery of 4th increment
increment 4 analysis
design
code
test
calendar time
Incremental Model
19
迭代-增量模型特点
• 使用增量模型开发软件时,把软件产品作为一系列的增量构 件来设计、编码、集成和测试。 • 每个构件由多个相互作用的模块构成,并且能够完成特定的 功能。
Feasibility Study Requirements Analysis System Design Program Design
Development
Coding & Module Testing
Integration & System Testing
System Lifecycle
Support
• 使用增量模型时,第一个增量构件往往实现软件的基本需求, 提供最核心的功能。
20
迭代-增量模型中的测试
• 迭代-增量模型的例子有原型法、RAD(快速应用开发)、 RUP(Rational统一过程)、敏捷开发模型等。采用迭代 模型开发的软件系统需要进行不同级别的测试,每个新的 增量都是在上一个增量的基础上添加新的功能,形成一个 新的子系统。随着迭代的增加,回归测试在增量中的作用 就越发重要,对每个增量都要进行验证和确认。
13
1.2 软件开发周期模型
几种常见的模型:
瀑布模型(Waterfall) 快速原型模型(Prototype) 螺旋模式(Spiral) 迭代-增量模型 敏捷过程模型
14
Waterfall Model
Definition
Definition
瀑布模型
系统构建集中在开发阶段的 最后完成,因此,在这段时 间,对测试人员的需求量也 很大,时间很集中。
主要参考书籍: 1. 《软件测试基础教程》(德)Andreas Spillner等著,人民 邮电出版社 2009 2. 《软件测试》(美)Ron Patter著,机械工业出版社出 版
1
本章主要内容
1. 软件开发与软件测试
1.1 软件生命周期 1.2 软件开发模型 1.3 软件测试过程模型
2
1.1 软件生命周期
软件维护阶段
该阶段的关键任务是通过各种必要的维护活动使系统持久地 满足用户的要求。
改正性维护:诊断和改正在使用过程中发现的软件错误 适应性维护:修改软件易适应环境的变化
完善性维护:根据用户的要求改进或扩充软件使它更完善
预防性维护:修改软件为将来的维护活动预先做准备
1. 2 软件开发模型
• 软件测试不是独立存在的,测试活动和软件开发活动密 切相关 • 不同软件开发的过程会常用不同的模型 • 了解软件开发周期模型是为了更好地将各种不同的软件 测试技术应用与软件开发过程中。
相关文档
最新文档