《软件集成、确认和系统测试方法.pdf》由会员分享,可在线阅读,更多相关《软件集成、确认和系统测试方法.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件集成、确认和系统测试方法引言软件测试按测试用例设计(TEST CASE DESIGN)方法分为白盒测试(WHITE-BOX TESTING)和黑盒测试(BLACK-BOX TESTING)。按测试过程或测试策略,软件测试分为单元测试(UNITTESTING),集成测试(INTEGRATION TESTING,确认测试(VALIDATION TESTING和系统测试(SYSTEM TESTING。在以前的有关文档中,我们已经对白盒和黑盒测试中的测试用例设计方法进行了详细的讲解。同时也对单元测试进行了讲解和培训。本文将从测试策略方面讲解软件测试中的集成测试,确认测试和系统测试策略。软件测试的策
2、略方法测试是一系列有计划地系统性的活动。为了实行测试活动,人们提出了许多测试策略方法。一个软件测试策略不仅要包括低层测试(LOW LEVEL TESTING而且要包含高层测试HIGHLEVEL TESTING。低层测试是为了验证原代码 的正 确性。高层测试是为了证实主 要系统 功能满足用 户需求 性。验证与确认(VERFICATION AND VALIDATION在 广义上,软件测试是验证和确认VERFICATION AND VALIDATION(V V。验证 指保证软件 正确地实 现了一 特定功能 的一系列活动。确认是指保 证所生产 的软件 可追溯到 用户需求 的一系列活动。BOEHM 对
3、V V的解 释是:VEIFICATION:“Are we building the product right?”VALIDATION:“Are we building the right product?”V&V 的定义 包含了许多活动,即软件 质量保 证SQA。图 2-1 示出实 现软件 质量 的这些 活动。软件 工程方法提 供了 质量建立 的基础。分 析、设计和 编码 方法 通 过提 供 统一的 技术 和可预 测的 结果来 提高 质量。正规检视 和评审 有助于保 证软件 工 程各个阶段产品 的质量。度量 和控制被应用 到软件 配置 的 每一个 部件中。标准 和过程有 助于保 证开发 的一
4、 致 性。一个 正规 的 SQA过程 加强整体质量。测试是 保 证质量 的 最后 一 道措施。但是不 能把 测试 看作 一个 安全网。质量 是贯穿于 软件过程的 每一个 阶段。因此尽管 测试在 V&V 中 起着非常重 要的 作用,但是许多 其它 活动也是 必要的。为了提高软件的全员质量,应 该重 视V&V 中的 每一个活动.软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE软 件 质 量软 件 工 程方 法标 准 和步 骤正 规 检 视与评 审度 量测 试SQASCM图 2-1 实 现 软件 质量 的活动软件测试策略软件 工 程过程 可以 看成一 螺旋状。软件测试策略也
5、可以看 成一 螺旋状。如 图2-2示 测试策略图。从图 2-2可看出软件测试策略:起始 于代码阶段的单元测试,然 后是向外延伸 到 设计 阶段 的集成测试,再扩展 到需求 分析阶段 的确认测试,最后是系统 工程阶段 的系统测试。从系统过程的角 度看,测试策略有四个步骤:单元测试,集成测试,确认测试和系统测试。图2-3示软件测试 步骤。软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE单元测 试测 试 方 向代 码集 成 测 试高 阶 测 试High-order TestIntegration Test设 计需 求图2-3 软件测试 步骤从图 2-3可看 出,初始 测试集
6、中在 每个模块 上,由于每 个模块完 成一个 功能 单元,因此该 阶段的测试 称为单元测试。单元测试主要应用白盒测试方法。接下 来是模块组装 和集成以 便组 成 完整的软件包。集成测试集中在证实和程序构 成问题 上,集成测试 主要采用黑盒测试方法,附之 以白盒测试方法。软件集成后,需要 完成一系列高 阶测试(确认和系统测试。确认标准 必须 被 测试。确认测试提供 软件 满足所 有功能、性能需求 的最后保 证。确认测试仅仅应 用黑盒测试用例设计方法。测试完成的标准软件测试中,人们经常会 提出 这样的 问题:“什么 时 候 测试 完成?怎样知道测试 足 够充分?”。很遗憾,对 该问题还没有一个确
7、定的 答案,但是 可 提 供一 些统计和经验上 的答案 或指导。为 了 确 定 何 时 算 测 试 进 行 的 足 够 充 分,软 件 工 程 师 需 要 更 严 格 的 标 准。MUSA 和ACKERMAN 建议基于 统计 准则来回答 这些 问题。应用统计 模型 和软件 可靠 性理论,软件 失效/故障(测试中 未发现 的的 模型 可以以 执行时 间函数形式建立。例 如,一个软件故障模型,称 为对数 泊松 执行时 间模型。有关软件 可靠 性和软件测试强度 方面的 知识和 模型 建立 将在以 后相关文档中介绍。单元测试(UNIT TESTING)单元测试是基于 程序模块 进行 正确性验证的测试。
8、这 方面的 内容,我们已经 准 备出了 充 分的资料,并进行了多 期培训。因此 这 里将不在讲 述。集成测试(INTEGRATION TESTING集成测试,也叫组装 测试或 联合 测试。在单元测试的基础上,将 所有模块 按照 设计要 求)如根据 结构 图 组装 成为 子 系统或系统,进行集成测试。实践表明,一 些 模块 虽然 能 够单独 地工作,但并不能保 证连 接起 来也 能正 常 的工作。程 序在某 些局部反映 不出 来的 问题,在 全局上 很可能暴露 出来,影响 功能 的实 现。也 就是应该考虑 以下问题:(1在 把各 个模块 连 接起 来的时 候,穿越模块接 口 的数据是否会 丢失;
9、软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE(2 各个子功能 组合 起来,能否达 到预 期要求的父 功能;(3一个 模块 的功能 是否会对另一个 模块 的功能产生 不利的影响;(4)全局数据结构是 否有问题;(5单个 模块 的误差积累 起来,是 否会放大,从而 达到不可接受 的程 度。因此,单元测试 后,有 必 要进行集成测试,发现 并排除 在模块 连 接中可能发生 的上述问题,最终 构成要 求的软件 子系统或系统。对子系统,集成测试也叫部 件测试。任何 合理 地组 织集成测试,即选择 什么 方 式把模块组装起 来形成一个 可运行的系统,直接 影响到 模块 测试用
10、例的 形式、所 用测试 工 具的 类 型、模块 编 号和测试的 次 序、生 成测试用例和调 试的费用。通常,有 两种 不同的 组装 方 式:一次性组装 方式和增值 式组装 方式。一次性组装方式(BIG BANG 一次 性组装 方式是一 种非 增值 组装 方 式(NON INCREMENTAL INTEGRATION,也 叫整体 拼装。按 这种 组装 方式,首先 对每 个模块 分别进行 模块 测试,然后 再把所 有模块组装 在一 起进行测试,最终得 到 要求的软件系统。例如,有一 块系统 结构,如图4-1(a)所示。其单元测试和 组装顺序如 图4-1(b)所示。ABCDEFd1d2d3d4d5D
11、BCs1s2EFAABCDFEs3s4s5(a)(b)图 4-1 一 次性组装 方式在 图中,模块 d1,d2,d3,d4,d5是对 各 个模块 做单元测试时 建立 的驱 动模块,s1,s2,s3,s4,s5 是为单元测试而 建立 的 桩模块。这种一 次性组装 方式 试图在辅助模块 的协助下,在 模块 单元测试的 基础上,将 所测模块 连接起 来进行测试。但是由于 程序中不 可避免 地存在模块间接 口、全 局数据 结构等 方面的 问题,所以一 次试运行成 功的可能 性 并不很大。其结果发现 有错误,但茫然找不到 原因。查错 和改错都 会遇到困难。增殖式组装方式(Incremental Inte
12、gration)软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE增值 式组装 方式又称渐增式组装。首先 是对一个个 模块 进行 模块 单元测试,然后将这些 模块组装 成较大系统,在 组装 的过程中 边连接边测试,以 发现 连接过程中 产生 的问题。最后 增殖逐 步组装 成为要 求的软件系统。自顶向下的增殖方式(Top-Down Integration)这 种组装 方式是将 模块 按系统程 序结构,沿控制 层次自顶 向下 进行 组装。其步骤如下:(1)以主模块 为所 测模块 兼驱动 模块,所有直属于主 模块 的下 属模块 全部 用 桩模块 对主模块进行测试。(2)采用深
13、度优先(depth-first)(如 图4-2)或 宽度优先(breadth-first)的策略,用实际模块 替换 相应桩 模块,再用桩 代替它们的 直接下 属模块,与 已测试的 模块 或 子系统 组装 成 新的子系统。(3)进行 回归测试(即重新执行以前 做过的 全部 测试或 部分测试),排除 组装 过程中引 起的错误 的可能。(4)判断 是否所有的 模块 都已组装 到系统中?是 则结束测试,否则转到(2)去 执行。AAAAs1s2s3s4s2s2s3s3BBBEECs3测 试 A加 入 B加 入 E加 入 CABCDEs5ABCDEF加 入 D加 入 F按 深 度 方 向 组 装图 4-2
14、 自顶 向下 增殖方 式(按 深度方 向组装)自顶 向下 的增殖方 式在测试过程中较早 地验证了 主要的 控制 和 判断点。在一个 功能 划分 合理的程 序模块 结构中,判断 常常 出现 在较高的层 次里,因而较早 就 能遇到。如果这主 要 控制 有问题,尽早发现 它能 够减少 以后的返 工,所以这是 十分必要的。如 果选用按 深度 方向组装 的方 式,可以 首先 实现和验证一个 完整的软件 功能,可先 对逻辑输入 的分 支进行 组装 和测试,检查和克服潜藏 的错误 和 缺陷,验证 其功能 的正确性,就 为其后对主要 加工 分支的组装 和测试提 供了 保证。此外,功能可 行性 较早 得到证实,
15、还能够给开发 者和用 户带来成 功的信心。自顶 各下的组装 和测试 存在一个 逻辑 次序问题。在为了 充分测试 较高层的 处理而需要较低层处理 的信息 时,就 会出现这 类问题。在 自顶 向下组装 阶段,还需 要用 桩模块 代 替较 低层的 模块,软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE所以关 于桩模块 的 编写,根据 情况 可能 不同有 如下 图4-3所示 的几种选择。桩 模 块 stub桩 模 块 stub桩 模 块 stub桩 模 块 stubABCD显 示 跟 踪 信 息显 示 传 递 的 信 息从 一 个 表(或 外部 文 件)返 回 一 个 值进
16、行 一 项 表 查 询以 根 据 输 入 参 数返 回 输 出 参 数表 示 传 递 的 数 据 消 息图4-3 桩模块 的几种选择为了 能够准确地实 施测试,应当让 桩模块 正确而有 效地模拟子 模块 的功能 和合理的接口,不能是 只包含 返回语句 或只显 示该模块 已调用信息,不 执行任何功能 的哑模块。如果不能使桩模块正确地 向上传递 有用的 信息,可以 采用以 下解决办 法。(1)将很多测试 推迟 到桩模块 用实 际模块 替代了 之后进行;(2)进一 步开发能 模拟实际模块 功能 的桩模块;(3)自底 向上组装 和测试软件;自底向上的增殖方式这 种组装 的方 式是从程 序模块 结 构的
17、最底层的 模块 开始组装 和测试。因为模块 是自底 向上进行组装,对 于一个 给定层次的模块,它的子模块(包括 子模块 的所有下属模块)已经 组装 并测试 完成,所以不 再需要 桩模块。在 模块 的测试过程中需要从 子模块 得 到的信息 可以 直接运行子模块 得到。自底 向上增殖 的步骤如下:(1)由驱动模块 控制最 底层模块 的并行测试;也 可以把最 底层 模块组 合成实 现 某一特定 软件功能 的簇,由驱动 模块 控制 它进行测试。(2)用实 际模块 代 替驱动模块,与它已测试的 直 属子模块组装 成为 子系统。(3)为子系统 配备驱 动模块,进行 新的测试。(4)判断 是否已组装 到达主
18、模块。是 则结束测试,否则执 行(2)。软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE以 图4-1(a)所示 的系统 结构 为例,用 下图 4-4来说明自底 向上组装 和测试的 顺序。d1d2d3d4d5EECCFDDBBEFFA图 4-4 自 底 向 上 增 值 组 装 方 式自底 向上进行 组装 和测试时,需 要为 所测模块 或 子系统 编制 相 应的驱动模块。常见的几种类型的 驱动模块如 图 4-5所示:驱 动 程 序 driver驱 动 程 序 driver驱 动 程 序 driver驱 动 程 序 driverABCD调 用 从 属 模 块从 表(或 外
19、部 文 件)中 传 送 参 数显 示 参 数兼 有 驱 动 程 序 B、C的 功 能图 4-5 驱 动 模 块 的 几 种 选 择表 示 传 送 的 参 数 信 息随 着组装 层次的向 上移动,驱动 模块 将大为减少。如果对程 序模块 结构的最上 面两层模块采用自顶 向下 进行 组装 和测试,可以明 显地 减少 驱动模块 的数目,而且 可以大大 减少 把几个系统 组装起 来所需 要做的 工作。混合增殖式测试自顶 向下 增殖的方 式和自底 向上 增殖的方 式各有 优缺点。一 般 来讲,一 种方式 的优点 是另一种方 式的缺点。自顶 向下 增殖方式 的缺点 是需要 建立 桩模块。要 使桩模块 能够
20、模 拟实际子模块 的功能 十分困难,因为桩模块 在接 收了所测 模块 发 送的 信息 后需 要按 照它所代 替的实 际子 模块 功能 返回应 该回送 的信息,这必 将增 加建立 桩 模块 的 复杂 度,而且 导致 增加一些附加 的测试。同时涉及复杂 算法和真 正输入/输 出的 模块 一般 在底层,它们是 最容易出问题 的模块,到组装 和测试的 后期 才遇 到这些 模块,一 旦发现 问题,导致 过多的 回归 测试,而 自顶 向下 增殖方式 的优点 能够较早 地发现 在主要控制 方面的 问题。自底 向上增殖方式 的缺点 是“程 序一直未能作 为一个实 体存在,直到最后 一个 模块 加上 去后才 形
21、 成一个实 体”。就 是 说,在 自底 向上 组装 和测试的过程中,对主要的 控制 直 到最后 才 接触到。但这 种方式 的优点 是不 需 要桩模块,而 建立 驱动模块 一般比 建立 桩模块 容易,同时 由于 涉及软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE到 复杂 算法和 真 正 输入/输 出的 模块 最 先得 到组装 和测试,可以把最 容 易出问题 的部 分在 早期解决。此外 自底 向 上增 殖的方 式 可以实 施多个 模块 的并行测试,提高测试效率。因此,通常是 把以上两种 方式结合起 来进行 组装 和测试。下面简单 介绍 三种常见的 综合的增殖方 式。(1
22、)衍变的自顶 向下 的增殖测试:它的 基 本思想 是强化 对输入/输 出 模块 的和引 入新 算法 模块的测试,并自底 向上 组装 成为 功能 相 当完 整 且相对独立 的子系统,然 后由主 模块 开 始自顶 向下 进行增 殖测试。(2)自底 向上-自顶 向下 的 增殖测试:它首先 对含 读操 作的子系统 自底 向上直至 根结点模块 进行组装 和测试,然 后对含 写操作的 子系统 做自顶 向下 的组装 与测试。(3)回归测试:这 种方 式采 取自顶 向下 的方 式测试 所 修改的 模块 及 其子 模块,然 后将这一部分视 为子系统,再 自底 向上测试,以 检查该子系统 与其上级模块 的接口是否
23、适 配。在 组装 测试时,测试者应当确定 关键模块,对 这些 关键模块 及早 进行测试。关键模块 至少应具有以 下几种特征 之一:(1)满足 某些软件 需求;(2)在程 序 的模块 结构中 位于较高的层 次(高层 控制模块);(3)较复杂、较易 发生 错误;(4)有明确定义 的性 能要求。在 做回归测试时,也 应该集中测试关 键模块 的功能。集成测试的组织和实施集成测试是一种正规 测试过程,必须 精心计划,并与单元测试的 完成时 间协调 起来。在 制定测试计划时,应考虑 如下因 素:1)是采 用何种系统 组装 方法 来进行 组装 测试;2)组装 测试过程中 连 接各个模块 的顺 序;3)模块
24、代码编制 和测试进 度是否与组装 测试的 顺序 一致4)测试过程中是否需 要专门 的硬件设 备;解 决了上述问题之 后,就可以列出 各个模块 的编制、测试计划 表,标明每个模块 单元测试 完成的 日期、首次 集成测试的 日 期、集成测试 全部 完成的 日期、以及需 要的测试用例和所期望 的测试结果。在 缺少 软件测试 所需 要的 硬件设 备时,应检 查该 硬件的 交付日 期是否与集成测试计划一致。例 如,若测试 需 要数 字化仪 和 绘图仪,则 相 应测试 应安 排在这些 设备 能够投 入使 用 之时,并 需要为 硬件的 安装和 交付 使用保留 一段时 间,以 留下时间余 量。此外,在测试计划
25、中需 要考虑 测试 所需软件(驱动模块、桩模块、测试用例 生 成程 序 等)的准备情况。集成测试完成的标志怎样 判定集成测试过程完成了,可按以 下 几个方面 检查:1)成功 地执行了测试计划中规定 的所 有集成测试;软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE2)修正 了所发现 的错误;3)测试 结果通 过了 专门小 组的评审。集成测试 应由专门 的测试 小组来 进行,测试 小组由 有经验的系统设计人员和程 序员组 成。整个测试活动要在评审 人员出席的情况 下进行。在 完成预定 的组装 测试 工作 之后,测试 小组应负责 对测试 结果 进行 整理、分析,形成测试
26、报告。测试 报告 中要 记录 实际的测试 结果、在测试中 发现 的问题、解决 这些 问题 的方法以 及解 决之后 再次测试的 结果。此外还 应 提出 目 前不 能 解决、还需 要管理 人员和 开发 人 员注意 的一 些问题,提供 测试 评审 和最 终决策,以提出 处理意见。集成测试 需要提 交 的文档有:集成测试计划、集成测试 规格说 明、集成测试分 析报告。确认测试(Validation Testing)确认测试 又称为效 性测试。它的 任务是验证软件的功能 和性 能 及其特性是 否与 用户的要 求一致。对软件的 功能 和性 能要求 在软件 需求规 格说明中已经 明确规定。在软件 需求规 格
27、说明中 描述了 全部 用户可 见 的软件 属性,其中有一 节 叫做 有效性准 则,它包含的 信息 就 是软件确认测试的基础。集成测试 完成以 后,分 散开发 的模块 被联接起 来,构成完整的程 序。其中 各模块之间接口存在的 种种 问题 都已 消除。于是测试 工作 进入最后阶段-确认测试(Validation testing)。什么 是确认测试,说法众多,其中 最简明、最 严格 的解 释 是检验所开发 的软件是 否 能按顾客 提出的要 求运 行。若 能达到这 一要 求,则认为 开发 的软件是 合 格的。因而有的软件开发部 门把 确认测试 称为合 格性测试(qualification testi
28、ng)。这里所说的顾客 要求通 常指 的是在软件 规 格说明书中确 定 的软件 功能 和技术指标,或是 专门 为测试 所规定 的确认 准则。在确认测试阶段需 要做 的工作 如下 图5-1所示。首先 要进行有 效 性测试以 及 软件 配置 复审,然后 进行验 收测试和 安装测试,在 通过了 专家鉴 定之后,才能成为 可交付 的软件。选 择 测 试 人 员构 造 测 试 用 例实 际 运 行 测 试软 件 计 划用 户 文 档开 发 文 档源 程 序 文 本支 持 环 境测 试 报 告软 件 配 置有 效性测 试软 件配 置审 查管 理机 构裁 决专 家鉴 定会交 用 户运 行 维 护图5-1 确
29、认测试的 步骤软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE确认测试的准则怎样 来 判断 被开发 的软件是成功的?为了确认 它的功能、性 能以 及 限制条 件是 否达 到了要求,应进行 怎样 的测试?在需求规 格 说明 书 中可能作 了原 则性规定,但在测试 阶段需 要更详细、更具 体地在测试 规 格说明书(Test specification)中作进一 步说明。例 如,制定 测试计划时,要说明确认测试 应测试 哪 些方面,并给 出必要的测试用例。除了 考虑 功能、性 能以外,还需检 验其它 方面的要 求。例 如,可 移植性、兼容性、可 维护 性、人机接口以及开发
30、的文件 资料等 是否符合要求。经过确认测试,应该为已 开发 的软件 作 出结 论性评价。这也 无非 是 两种 情况 之中的一个:(1)经过 检验的软件 功能、性能 及其它 要求均已满足需求规 格说明 书 的规定,因而 可被 接受。认为是 合格的软件。(2)经过 检验 发现 与 需求 说明书有 相当的偏离,得 到一个 各项缺陷 清单。对 于第二 种情况,往往 很难 在 交付 期 以前 把发现 的 问题 纠 正过 来。这就 需要 开发部 门 和 顾客 进行 协商,找出解 决的办 法。进行有效性测试(黑盒测试)有 效性测试是在模拟的 环境(可能 是就是 开发 的环境)下,运用黑盒测试的方法,验证所测
31、试件是 否满足需求规格说明 书列出的 需求。为 此,需 要首先 制定 测试计划,规定 要做测试的 种类,还需要制定 一组 测试 步骤,描述具 体 的测试用例。通过实 施预定 的测试计划和测试步骤,确定 软件的 特性是 否与 需求 相符,确 保所 有的软件 功能需求 都能得到满足,所 有的软件性 能需求能达 到,所有的文档 都 是正确且 便于使 用。同时,对其他 软件 需求,例 如可移 植性、兼容性,自动恢 复、可 维护 性 等,也 都要进行测试,确认是否满足。在 全部 软件测试的测试用例运行完后,所有的测试 结果可 以分为 两类:1)测试 结果 与预期的 结果 相符。这说 明软件的 这部 分功
32、能 或性 能特 征与需求规 格说明一致,因此 要为 它提交一 份问题 报告。2)测试 结果 与 预 期的 结果 不 符。这 说明 软件的 这部 分 功能 或性 能特 征与 需求规 格 说明不一致,因此 要为 它提 交一份问题 报告。软件配置审查软件 配置审 查是确认测试过程的重要环节.其的目 的是 保证软件 配置 的所有成分 都齐全,各方面的 质量 都符合 要求,维护 阶段所 必需的细 节,而且已经 编排 好分类的目录。除 了按 合同规定 的 内容 和要 求,由工人审查软件 配置 之外,在确认测试的过程,应当严格 遵守 用户手册 和操 作手册 中规定 的使用 步骤,以 便检查这些 文档 资料
33、的 完整性和 正确性。必须 仔细记录 发现 的遗漏和 错误,并且适当 地补充和改正。测试和测试在软件 交付 使用之 后,用 户将如何 实际使 用程 序,对 于开发 者 来说是无法预测的。因为用 户在使 用过程中 常常会 发生 对使 用方法的 误 解、异常的数 据组合,以 及 产生 对某 些用 户来 说似乎 是清晰 的但对另一些 用户来 说却难以 理解的 输出等等。软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE当 软件是为 特定 用 户开发 的时 候,需要进行一系列的验收,让 用户验证 所有的 需求 是否已经满足。这些 测试是以用户为主,而不是以系统开发 者为 主进行
34、的。验 收测试 可以是一 次简单的 非正 式的“测试 运 行”。也 可以是一 组 复杂 的有 组织有计划的测试活动。事实 上,验 收测试 可能 持续几 个星期到几个 月。但 是如果软件是为多个用户开发 的产品 的时 候,让每个用 户逐 个执行正式的验 收测试是不 切实 际的。很多软件 产品生产 者 采用一 种称之 为a测试和 b测试的测试方法,以发现可能 只有最终用户才 能发现 的错误。测试是 由一个用 户在开发 环境 下进行的测试,也可以是 开发 机构枘 部的用 户 在模拟实际操作 环境 下进行的测试。软件在一个自 然设 置 状态下使用。开发 者坐在用 户旁 边,随 时记下错误 情况 和 使
35、 用中的 问题。这 是在 受 控制 的 环境 下 进行的测试,测试的 目 的是 班 次 价 软件 产品 的FLURPS(即功能、局 域化、可 使用性、可 靠性、性 能和支持)。尤其注重产品 的界面和 特色。a测试人 员是除开产品开发人员之外 首先 见 到产品 的人,他们提出的 功能 和 修改意 见是特 别有价值 的。a测试 可以从软件 产品编码结 束之时开始,或在 模块(子系统)测试 完成之后开 始,也 可以在确认测试过程中 产品 达 到一定的稳定和 可靠程序之 后 再开始。有关的 手册(草稿)等 应事先准备好。测试是 由软件的多个用户在一个或多个用户的实 际使 用环境 下进行的测试。这些 用
36、户是与公司签 定了支持 产品预发 行合 同的 外 部客 户,他们要 求 使用该产品,并愿意 返回有关 错位错误 信息给 开发 者。与 测试不同的是,开发 者 通 常不在测试 现场。因而,测试是在 开发 者无法 控制的 环境 下进行的软件现场应用。在 测试中,由用户记 下遇到的所有 问题,包括 真 实的以 及 主观认 定的,定期向 开发 者报告,开发 者 在综 合 用户的报告 之后,做出修 改,最 将软件 产品 交付 给全体 用户使用。测试 主要 衡 量产品 的 FLURPS。着重 于产品 的支持性,包括文档、客 户培训和 支持 产品生产能 力。只 有当测试 达到 一定 的 可靠程度时,才能开
37、始 测试。由于它 处在整个测试的 最后阶段,不 能指 望 这 时 发现主 要 问题。同时,产品 的 所 有 手册 文本也 应 该在 此 阶段 完 全定稿。由 于 测试的 主 要目标 是测试 可支持 性,所 以测试 应尽可能 由 主 持产品发 行的人 员来管理。验收测试(Acceptance Testing)在 通过了系统的有效性测试 及软件 配置审 查之后,就应开 始系统的验 收测试。验 收测试是以用 户为主的测试。软件开发 人 员和QA(质量保 证)人员也 应参加。由用 户参加设计测试用例,使用用 户界面输入 测试 数 据,并分 析测试的 输 出 结果,一 般使 用生产 中的实 际数 据进行
38、测试。在测试过程中,除了考虑 软件的 功能 和性 能 外,还 应对软件的 可移植性、兼 容性、可 维护 性、错误 的恢复功能 等进行确认。验 收测试实验 上是对 整个测试计划进行一种“走 查(Walkthrough)”。确认测试的结构软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE确认测试的 结果 有 两种 情况:1)功能 和性 能与用户 的要 求一致,软件 可以接受;2)功能 和性 能与用户 的要 求有差距。出 现后 一种情况,通常与软件 需求 分析阶段 的差错 有关。这时 需要开列一 张软件 各项缺陷 表或软件 问题 报告,通过与用户的协 商,解 决所发现 的缺陷
39、 和错误。确认测试 应交付 的文档有:确认测试分 析报告、最 终的用 户手册 和操作手册、项目开发 总结报告。系统测试(System Testing)系统测试是将通过确认测试的软件,作为整个基于 计算机系统的一个元素,与 计算机硬 件、外 设、某些支持 软件、数据和人 员等 其他 系统元 素结合 在一 起,在实 际运行(使用)环境 下,对计算 机系统进行一系列的组装 测试和确认测试。系统测试的 目的在 于通 过与系统的 需求定义作 比较,发现 软件 与系统 定义 不符 合或与之矛盾的地方。系统测试的测试用例应根据 需求 分析说 明书来设计,并 在实 际使 用环境 下来运行。由 于软件 只是计
40、算 机系统中的一个组成部分,软件 开发 完成以 后,最终还要与 系统中 其它 部分 配套运行。系统在投入运行以前 各部 分 需 完成组装 和确认测试,以保证各 组成部 分不仅 能 单独地 受到检 验,而且在系统各部 分协调 工作 的 环境 下也能正 常工作。这 里所说 的系统 组成部分 除去软件 外,还可能 包括计 算机硬 件及其 相关的 外围设备、数据及其收集和 传输 机构、掌握 计算 机系统 运行的人 员及 其操 作等,甚 至还可能 包括 受计算控制 的执行机构。显然,系统的确认测试已经完 全超出了软件 工作 的范围。然而,软件在系统中毕竟占 有相当重要的 位置,软件的 质量 如何,软件的
41、测试 工作 进行 得是否扎 实势必 与能 否顺利、成功 地完成系统测试关系极大。另一方面,系统测试实 际上是 针对系统中 各 个组成 部分进行的 综合性 检验。尽管 每 一个 检 验有 着 特定 的目 标,然 而所有的 检测 工作 都要验证系统中每个 部 分均已得到正 确的集成,并能完 成指定 的功能。以 下分别 简要说明几种 系统测试:恢复测试恢 复测试是要 采取 各种人工干预 方式使软件出 错,而不 能正 常 工作,进而 检验系统的 恢复能力。如果系统本 身能 够自动地进行 恢 复,则 应检 验:重 新初始 化,检 验点设 置机构、数据恢 复以及 重新启动是 否 正确。如果这 一恢复 需要
42、人为 干预,则 应考虑 平均修 复时间 是否在 限定的范围 以内。安全测试安全 测试的 目的在 于验证 安装在系统 内的保护机 构确定能 够对系统进行 保护,使之不受各种非常 的干扰。系统的 安全 测试要设 置 一些 测试用例 谋略实在系统的安全保 密 措施,检验系统是 否有安全保 密的漏洞。软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE强度测试检 验系统的 能力最 高实 际限度。进行 强度 测试时,让系统的 运 行处于资源的异 常数 量、异常频 率和异常批量 的条 件下。例 如,如 果正 常 的中 断平均 频率为每秒一 到二次,强度 测试设计为 每秒10次中 断。
43、又如 某系统 正常 运行 可支持 10个终端并行 工作,强度 测试 则检验 15个 终端 并行 工作的情况。性能测试性 能测试 检验安装 在系统 内的软件 运行性 能。这 种测试 常常 与 强度 测试 结合起 来进行。为 记录性 能需 要在系统中 安装必 要的 量 测仪表或是为 度量 性能而设 置 的软件(或程 序段)。参考资料:1.计算 机软件测试 技术 郑 人杰,清 华大学出版社,1992。2.Software Engineering-A Practioner s Approach,R.S.Pressman,1998.3.实用软件 工程,郑人杰,殷 人昆,陶永雷,清华大学出版社,1997。软件集成、确认和系统测试方法 博为 峰软件 制作 BWF SOFTWARE