第二章软件测试过程与测试模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试过程
模块
单元测试
模块 单元测试 模块 已测 单元测试 模块
设 计 信 息
已集成的 集成测试 软件
软 件 需 求
已确认的 确认测试 软件
其 它 系 统 元 素
系统测试 已检验的 软件
用 户 需 求 规 范
验收测试

模块 单元测试
图1.1 软件测试过程
软件测试过程(续)
• 1. 单元测试
• 目的:检测程序模块中有无故障存在 • 对象:软件设计的最小单位,与程序设计和编程实现 关系密切

软件维护。软件维护是软件生命周期中最漫长的阶 段。维护的目的是使得软件持久地满足用户需要并长 期为用户服务。具体地说,当软件在使用过程中发现 错误时应该加以改正;当环境改变时应该修改软件以 适应新的环境;当用户有新的要求时应该及时修改或 扩充软件以满足用户的新需求。 • 软件的维护一般包括改正性维护、适应性维护 、完善性维护和预防性维护等四个方面。
软件开发模式(续)
2、边写边改法
• 采用边写边改法的软件开发通常只是有了比较粗略的想 法就开始进行简单的设计、然后进行较长的反复编写、 测试与修复这样一个循环的过程。在认为无法更精细的 描述软件产品要求时,就发布产品。
• 优点:能够较为迅速的展现成果,适合需要快速制作而 且用完就扔的小项目,如示范程序、演示程序等。
开发过程

图1-5 获得软件产品的工作示意图
软件产品的组成(续)
2、客户需求
客户需求包括对客户调查所收集的详细信息、以前 软件的使用情况及存在的问题、竞争对手的软件产品信 息等等。通过分析客户需求,可以确定将要开发的软件 产品应该具有哪些功能。
3、产品说明
产品说明书的作用就是对客户需求信息进行综合描 述,并包括用户没有提出、但软件产品本身必须要实现 的要求,从而针对产品进行定义并确定其功能。
软件产品的组成(续)
6、开发进度表
软件项目的开发进度通常使用Gantt图表来进行描述。
7、软件产品组成的其他部分
(1)程序代码 (2)帮助文件 (3)用户手册 (6)产品支持信息 (4)样本和示例 (5)标签
(7)图表和标志 (8)错误信息 (9)广告与宣传材料
(10)软件的安装 (11)软件说明文件 (12)测试错误提示信息
– – – – – – – – – 明确规定验收测试通过的标准; 确定验收测试方法; 确定验收测试的组织和可利用的资源; 确定测试结果的分析方法; 制定验收测试计划并进行评审; 设计验收测试的测试用例; 审查验收测试的准备工作; 执行验收测试; 分析测试结果,决定是否通过验收。

在编码之后首先进行的测试是单元测试。 这个工作 的角色是程序员(而不是测试工程师),主要是找出程序 的各个模块编码和详细设计说明书的缺陷。 • 集成测试是把软件模块组装在一块,验证各个软件 模块的接口之间是否能够进行协作工作。例如,IC卡校园 一卡通系统的子系统----卡机房管理系统。此系统分为12 个子模块。
• 缺点:其编码和测试可能将是长期的循环往复的过程。
软件开发模式(续)
3、瀑布法
• 瀑布模式是将软件生命周期的各项活动,规定为按照固定 顺序相连的若干个阶段性工作,形如瀑布流水,最终得到 软件产品。 • 优点:易于理解;调研开发的阶段性;强调早期计划及需 求调查;确定何时能够交付产品及何时进行评审与测试。 • 缺点:需求调查分析只进行一次,不能适应需求变化;顺 序的开发流程,使得开发中的经验教训不能反馈到该项目 的开发中去;不能反映出软件开发过程的反复与迭代性; 没有包含任何类型的风险评估;开发中出现的问题直到开 发后期才能够显露,因此失去及早纠正的机会。

• • • •
• •
在“IC卡校园一卡通系统”中, 集成测试已经解决了软件模 块协调工作的问题,而系统测试考虑的是整个系统的问题。 例如: (1) 系统测试要检查IC卡在POS 机(下位机)上消费后是否在 服务器(上位机)的数据库记录中有所显示。例如:卡的余额50 元,消费了20元后,数据库中记录的余 额是否是30元。 (2)是否刷卡成功? (3)在服务器中的总黑名单和每台POS 机上的黑名单分布是否一 致? (4)数据网络、财务网络和管理网络之间的通信接口是否可靠? (5)管理网络中的前臵机数据和数据中心服务器的数据交换通信 接口是否顺畅?等一系列测试问题均应该在系统测试中进行考虑 。
学习目标 (1)掌握软件开发过程及主要的开发模型 (2)掌握软件测试过程 (3)了解测试模型 (4)了解测试理念
2.1软件开发过程相关知识
2.1.1 软件产品的组成(了解)
1、软件产品需要各种开发投入
产品说明书、产品审查、设计文档、进度计划、上一版本信息反馈、商业竞争 对手的同类软件产品情况、客户调查、易用性数据、观察与感受说明书
图 2-3 IC卡校园一卡通系统示意图
• •

• •
通过集成测试之后,接口方面的错误也已排除,确认测试即可 开始。 确认测试应检查软件能否按合同要求进行工作,即是否满 足软件需求说明书中的确认标准。确认测试的目的是检查软件系 统是否达到用户需求。 确认测试的结果有两种可能,一种是功能和性能指标满足软 件需求说明的要求,用户可以接受;另一种是软件不满足软件需 求说明的要求,用户无法接受。项目进行到这个阶段才发现严重 错误和偏差一般很难在预定的工期内改正,因此必须与用户协商 ,寻求一个妥善解决问题的方法。 确认测试之后即可开始系统测试。 系统测试是按照系统需求搭建系统环境(包括软件环境和 硬件环境),在整个环境中测试系统是否具有安全性、易用性等 。
2.1.2 软件开发项目组
• 项目管理经理:全程负责整个软件项目的开发。 • 系统设计师:设计整个系统构架或软件构思。 • 程序员:负责设计、编写程序,并修改软件中的缺陷。
• 软件测试员/测试师:负责找出并报告软件产品的问题, 与开发组密切合作,进行测试并报告发现的问题。
• 技术制作、用户助手、用户培训员、手册编写和文件档 案专员:负责编写软件产品附带的文件和联机文档 。 • 结构管理和制作人员:负责将程序员编写的全部文档资 料合并成一个软件包 。
2.1.3 软件开发模式
1、大棒开发法
• 源于能量爆发创造宇宙,万物都由能量和物质积聚而成的 理论,但如果不是遵循某种正确的排列和组合,形成的将 不是预先期望的事物。大棒模式与上述理论一样:一大堆 能量(这里指开发软件所需的人力和物力)放在一起,巨 大的能量进行释放,通常的结果可能是产生了优秀的软件 产品或成为一堆“废品”(不成功的软件)。 • 优点:思路简单, 通常可能是开发者的“突发奇想” • 缺点:开发过程是非工程化的,随意性大 • 关于测试:有的较简单,有的则非常困难
软件测试过程(续)
• 3. 确认测试
• 目的:对软件产品进行评估以确定其是否满足软件 需求的过程
• 4. 系统测试
• 目的:针对系统中各个组成部分进行的综合性检验, 证明系统的性能 • 测试人员要求:
– 系统开发人员不能进行系统测试。 – 系统开发组织不能负责系统测试。
软件测试过程(续)
• 5. 验收测试 • 目的:向用户表明所开发的软件系统能够像用户所预定的那样 工作 • 主要任务:
软件产品的组成(续)
5、测试文档
一般测试文档所包含的内容: • 测试计划。描述用于验证软件是否符合产品说明书和 客户需求的整体方案。 • 测试用例。依据测试的项目,并描述验证软件的详细 步骤。 • 软件测试报告。描述依据测试用例找出的问题,通常 提交测试报告。 • 归纳、统计和总结。采用图表、表格和报告等形式来 描述整个测试过程。
详细设计报告
源代码
(5)软件测试
测试文档
(6)软件维护
图2-1 软件的开发过程

需求分析。这个阶段的任务是对用户的要求进行分析 和综合,确定软件的基本目标和逻辑功能要求,解决系 统”做什么”的问题,并写出软件需求规格说明书。该 份文件资料是软件工程中最重要的文件,是用正式文档 准确地记录对目标系统的需求,是用户和软件开发人员 之间共同约定和开发的基础。 • 概要设计。这个阶段的主要任务是解决系统”怎么 做”的问题。概要设计决定软件系统的总体结构即模块 结构,并给出模块的相互调用关系、模块间传递的数据 及每个模块的功能说明。这个阶段的文档资料是软件结 构图和模块功能说明。

详细设计。这个阶段的任务是把每个模块内部过程的描 述具体化,也就是回答”应该怎样具体地实现这个系统”。该 阶段的任务并不是编写程序,而是设计出程序的详细规格说明 书。该规格说明书类似于其他工程领域使用的工程蓝图。 • 软件编码。这个阶段的主要任务是程序员根据软件详细 规格说明书,写出正确的、容易理解和维护的程序模块。程序 员要选取一种适当的程序设计语言,把详细设计的结果翻译成 用选定语言书写的程序,并进行单元测试,仔细测试编写的每 一个模块。 • 软件测试。主要任务是发现和排除错误,也就是对软件系 统进行从上到下全面的测试和检验,看它是否符合软件总体设 计方案规定的功能要求。在此期间,要提出测试标准,制定测 试计划,确定测试方法。通过对软件测试结果的分析可以预测 软件的可靠性;反之,根据软件可靠性的要求,也可以决定测 试和调试过程什么时候可以结束。同时还必须写出软件测试报 告。
其他开发方法
• RUP模型 • IPD流程 • 敏捷开发
2.2软件测试过程
• • 在实施软件测试过程中,按照测试阶段进行的。 在实施软件测试前首先要写出《软件测试计划书 》,此计划书可以作为测试工程师在实施测试过程中 的指导书,它指出了测试范围、测试方法、通过标准 、停测标准(测试通过标准)等。 • 各测试阶段的先后顺序可分为单元测试、集成测 试、确认(有效性)测试、系统测试和验收(用户) 测试五个阶段。
软件产品的组成(续)
4、设计文档
• 构架。即产生描述软件整体设计的文档,包括软件所有 主要部分的描述以及相互间的交互方式。 • 数据流示意图。表示数据在程序中如何流动的正规示意 图。通常由圆圈和线条组成,所以也称为泡泡图。 • 状态变化示意图。将软件分解为基本状态或者条件的另 一种正规示意图,表示不同状态之间的变化的方式。 • 流程图。用图形描述程序逻辑的最常用方式之一。根据 详细的流程图编写程序代码简单方便。 • 注释代码。代码注释是便于维护代码的程序员掌握代码 的内容和执行方式。
• 2. 集成测试
• 目的:发现与接口有关的模块之间的问题 • 方法:非增式集成测试法和增式集成测试法
软件测试过程(续)
• 2. 集成测试
• 非增式集成测试法
1. 对每一个模块进行单元测试 2. 在此基础上按程序结构图将各模块连接起来,把连接后的程序
当作一个整体进行测试
• 增式集成测试法
不断地把待测模块连接到已测模块集(或其子集)上,对待测模块 进行测试,直到最后一个模块测试完毕
软件 测试 技术
Te s t i n g
AND Developing
软件测试过程与测试模型
广东岭南职业技术学院 软件技术教研室 李文彪
上节回顾
• • • • • • 软件可靠性 缺陷的定义及特征 缺陷的主要原因 软件测试的目的 缺陷修复的代价 软件质量—SQA、SQC、软件测试之间的 关系
第2章 软件测试过程与测试模型
软件开发过程

• • • • • 一个软件的开发阶段大体包括如下五个阶段: (1)需求分析; (2)概要设计; (3)详细设计; (4)软件编码; (5)软件测试;
• (6)软件运行与维护。
(1)需求分析 项目评审 (2)概要设计 项目评审 (3)详细设计 项目评审 (4)软件编码
需求分析报告
Biblioteka Baidu概要设计报告
软件开发模式(续)
4、快速原型法
根据客户需求在较短的时间内解决用户最迫切解决的 问题,完成可演示的产品。这个产品只实现最重要功能, 在得到用户的更加明确的需求之后,原型将丢弃。
需求分析 原型开发 原型评价 最终设计 用户反馈 图1-8 快速原型开发模式 系统实现
软件开发模式(续)
5、螺旋模式法
• 螺旋模式是瀑布模式与边写边改演化模式相结合,并加入 风险评估所建立的软件开发模式。 • 主要思想是在开始时不必详细定义所有细节,而是从小开 始,定义重要功能,尽量实现,接受客户反馈,进入下一 阶段,并重复上述过程,直到获得最终产品。 • 每一螺旋(开发阶段)包括5个步骤:①确定目标,选择 方案和限制条件。 ②对方案风险进行评估,并能解决风 险。 ③进行本阶段的开发和测试。 ④计划下一阶段。 ⑤确定进入下阶段的方法。 • 优点:严格的全过程风险管理;强调各开发阶段的质量; 提供机会评估项目是否有价值继续下去。
相关文档
最新文档