软件测试过程与方法分解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.3 单元测试
程序员编写代码时,一定会反复调试保证其能够 编译通过。如果是编译没有通过的代码,没有任何 人会愿意交付给自己的老板。但代码通过编译,只 是说明了它的语法正确,程序员却无法保证它的语 义也一定正确。没有任何人可以轻易承诺这段代码 的行为一定是正确的,单元测试这时会为此做出保 证。编写单元测试就是用来验证这段代码的行为是 否与软件开发人员期望的一致。
第3章 软件测试过程与方法
3.1 3.2 3.3 3.4 3.5 3.6 3.7 软件测试过程 软件测试过程与软件开发的关系 单元测试 集成测试 确认测试 系统测试 验收测试
ห้องสมุดไป่ตู้
3.1 软件测试过程
软件测试从测试计划编写到测试实施,需要经过一 系列的过程。这些测试按软件从编写到交付的各个阶 段的先后顺序可分为:单元测试、集成测试、确认 (有效性)测试、系统测试和验收(用户)测试5个阶 段,如下图所示
单元测试的主要内容有:模块接口测试;局部数据结构测试; 独立路径测试;出错处理测试;边界条件测试。如下图所示, 这些测试都作用于模块,共同完成单元测试任务。
模块接口 出错处理
模块
独立路径 边界条件
3.3 单元测试
3、单元测试的步骤 通常单元测试在编码阶段进行。当源程序代码编制完成, 经过评审和验证,确认没有语法错误之后,就开始进行单元 测试的测试用例设计。利用设计文档,设计可以验证程序功 能、找出程序错误的多个测试用例。对于每一组输入,应有 预期的正确结果。 由于模块接口测试中的被测模块并不是一个独立的程序, 在考虑测试模块时,同时要考虑它和外界的联系,用一些辅 助模块去模拟与被测模块相关联的其他模块。这些辅助模块 可分为两种:
项目规划 产品发布
项目需求分析
测试需求分析 系统测试 系统测试计划
项目概要分析 集成测试计划 项目详细分析 单元测试计划 代码编号 测试代码编号
集成测试
单元测试
3.2.3 测试在开发阶段的作用
1、项目规划阶段 由专人负责从中单元测试到系统测试的整个测试阶段的监控。 2、需求分析阶段 确保测试需求分析、系统测试计划的制订,并经评审后成为 配置管理项。 测试需求分析对产品生命周期中测试所需要的资源、配置、 每阶段评判通过标志进行规约。 系统测试计划是依据软件的需求规格说明书,制订测试计划 和设计相应的测试用 例。 系统测试计划最大的好处是能够更进一步明确需求。 最大的困难是如何设计测试用例才能验证需求,测试用例的 预测结果是什么。
测试用例 驱动模块 测试结果
被测模块
桩模块
桩模块
桩模块
3.4 集成测试
1、集成测试的定义 集成测试(Integration Testing)是单元测试的扩展和 延伸,是为了测试程序模块之间接口的规范性、一致性等, 在测试时根据实际情况对程序模块采用适当的策略组装起来, 对系统的接口及集成后的功能进行正确校验。 通常经过单元测试后的模块能够单独工作,能够达到设 计要求,但在把模块集成后并不能保证各模块能够正常地协 同工作。程序在某些局部反映不出来的问题,在全局上很有 可能暴露出来,从而影响到软件功能的实现。因此,在各模 块完成单元测试的基础上,还应将模块按设计要求组装成起 来,针对程序整体结构进行集成测试。
3.3 单元测试
1、单元测试的定义
单元测试(Unit Testing)是对软件基本构成单元进行的测 试。单元测试的对象是软件设计的最小单位——模块。作为 一个最小的单元应该有明确的功能定义、性能定义和接口定 义,而且可以清晰地与其他单元区分开来。一个菜单、一个 显示界面或者能够独立完成的具体功能都可以是一个单元。 单元测试通常是开发者编写的一小段代码,用于检验被测 代码的一个很小的、很明确的功能是否正确。通常而言,一 个单元测试是用于判断某个特定条件(或者场景)下某个特 定函数的行为。因此,单元测试通常是由程序员自己来完成 的。
3.2.3 测试在开发阶段的作用
3、详细设计和概要设计阶段 确保集成测试计划和单元测试计划完成。 测试计划后,会对参考的设计文档进行修改,也可能会修改 前一阶段的文档。 4、编码阶段 开发人员在编写代码的同时,还必须撰写自己负责部分的测 试代码。 在项目较大的情况下,必须由专人负责编写项目组各开发人 员都需要的测试代码。 5、测试阶段(单元测试、集成测试、系统测试) 测试工程师依据测试代码进行测试。 专人主持测试工作,并提交相应的测试状态报告和测试结果 报告。
3.3 单元测试
2、单元测试的目标 单元测试的主要目标是确保各单元模块被正确的 编码。单元测试除了保证测试代码的功能性,还需 要保证代码在结构上具有可靠性和健全性,并且能 够在所有的条件下做出正确的响应。进行全面的单 元测试,可以减少应用级别所需的工作量,并且彻 底减少系统产生错误的可能性。
3.3 单元测试
关系
3.2.1 软件测试与软件开发各阶段的关系 3.2.2 测试与开发模型 3.2.3 测试在开发阶段的作用
3.2.1软件测试与软件开发各阶
段的关系
需求 分析 说明 书
概要 设计 说明 书
详细 设计 说明 书
源程 序代 码
单元 测试
集成 测试
确认 测试
软件测试与软件开发过程的关系
3.2.2 测试与开发模型
3.3 单元测试
驱动模块(driver)。相当于被测模块的主程序,它接收测 试数据,把这些数据传给被测模块,最后输出实测结果。 桩模块(stub)。用以代替被测模块调用的子模块,桩模块 可以做少量的数据操作,不需要把子模块所有功能都带进来, 但不允许什么事情也不做。被测模块与被测模块相关的驱动 模块及桩模块共同构成了一个“测试环境”,如下图所示。
3.1 软件测试过程
被测模块 单元 测试 设 计 信 息 软 件 需 求 系 统 其 它 元 素 系统 测试 已确认 的软件 基本可 交付的 软件 用 户 预 定 要 求 验收 测试
被测模块
单元 测试 基本可 交付的 软件
集成 测试 已集成 的软件
确认 测试
被测模块
单元 测试
3.2软件测试过程与软件开发的
3.4 集成测试