软件测试_哈工大

上传人:第*** 文档编号:56953801 上传时间:2018-10-17 格式:PDF 页数:125 大小:3.11MB
返回 下载 相关 举报
软件测试_哈工大_第1页
第1页 / 共125页
软件测试_哈工大_第2页
第2页 / 共125页
软件测试_哈工大_第3页
第3页 / 共125页
软件测试_哈工大_第4页
第4页 / 共125页
软件测试_哈工大_第5页
第5页 / 共125页
点击查看更多>>
资源描述

《软件测试_哈工大》由会员分享,可在线阅读,更多相关《软件测试_哈工大(125页珍藏版)》请在金锄头文库上搜索。

1、第2章 软件过程与方法 1 第12章 软件测试 1 软件工程软件工程 第十二章第十二章 软件测试软件测试 乔立民乔立民 2011年年5月月25日日 第2章 软件过程与方法 2 第12章 软件测试 2 主要内容 12.1 什么是软件测试什么是软件测试 12.2 软件测试策略软件测试策略 12.3 软件软件测试测试战术战术 第2章 软件过程与方法 3 第12章 软件测试 3 1 软件测试的概念 IEEE:测试是使用人工和自动手段来运行或检测某个系统测试是使用人工和自动手段来运行或检测某个系统 的过程,其目的在于检验系统是否满足规定的需求或弄清的过程,其目的在于检验系统是否满足规定的需求或弄清 预

2、期结果与实际结果之间的差别。预期结果与实际结果之间的差别。 该定义明确提出了软件测试以“检验是否满足需求”为目标。该定义明确提出了软件测试以“检验是否满足需求”为目标。 第2章 软件过程与方法 4 第12章 软件测试 4 用Venn Diagram来理解测试 考虑一个程序行为全域,给定一段程序及其规格说明考虑一个程序行为全域,给定一段程序及其规格说明 集合S是所描述的行为; 集合P是用程序实现的行为; 程序行为(全域) S P 规格说明 (预期的) 程序 (观察的) 正确的部分 被程序遗漏的 部分:遗漏缺陷 此部分程序没有被 描述过:过错缺陷 第2章 软件过程与方法 5 第12章 软件测试 5

3、 用Venn Diagram来理解测试 设计测试用例集合设计测试用例集合T 程序行为(全域) S P 规格说明 (预期的) 程序 (观察的) 正确的部分 被程序遗漏的 部分:遗漏缺 陷 此部分程序没有被 描述过:过错缺陷 T 测试用例 (已检验) 没有测试 的区域 经过测试 的区域 未通过 程序实现 第2章 软件过程与方法 6 第12章 软件测试 6 2 软件测试的目标 找到错误找到错误 Glen Myers关于软件测试目的提出以下观点:关于软件测试目的提出以下观点: 测试是为了发现错误而执行程序的过程 测试是为了证明“程序有错”,而无法证明“程序正确” 一个好的测试用例在于能够发现至今未发现

4、的错误 一个成功的测试是发现了至今未发现的错误的测试 第2章 软件过程与方法 7 第12章 软件测试 7 3 软件测试组织 开发者开发者 独立测试组独立测试组 系统的构建者,理解系统系统的构建者,理解系统 测试是“温和”的,试图证明正确测试是“温和”的,试图证明正确 性性 发布驱动发布驱动 必须学会系统必须学会系统 测试是破坏性的,试图证明错误存在测试是破坏性的,试图证明错误存在 质量驱动质量驱动 第2章 软件过程与方法 8 第12章 软件测试 8 3 软件测试组织 测试小组 (Test Team) 需求分析员 专业测试人员 最终用户 配置管理专家 系统设计人员 程序员 第2章 软件过程与方法

5、 9 第12章 软件测试 9 软件测试人员的素质要求 沟通能力沟通能力 理想的测试人员必须能与测试涉及到的所有人进行沟通,具有与技 术人员(开发者)和非技术人员(客户、管理人员)的交流能力。 移情能力移情能力 和系统开发有关的所有人员(用户、开发者、管理者)都处于一种既关 心又担心的状态中。测试人员必须和每一类人打交道,因此需要对 每一类人都具有足够的理解和同情,从而将测试人员与相关人员之 间的冲突和对抗减少到最低程度。 技术能力技术能力 一个测试人员必须既明白被测软件系统的概念又要会使用工程中的 那些工具,最好有几年以上的编程经验,从而有助于对软件开发过 程的较深入理解。 第2章 软件过程与

6、方法 10 第12章 软件测试 10 软件测试人员的素质要求 自信心自信心 开发人员指责测试人员出了错是常有的事,测试人员必须对自己的 观点有足够的自信心。 外交能力外交能力 当你告诉某人他出了错时,就必须使用一些外交方法,机智老练和 外交手法有助于维护与开发人员之间的协作关系。 幽默感幽默感 在遇到狡辩的情况下,一个幽默的批评将是很有帮助的。 很强的记忆力很强的记忆力 理想的测试人员应该有能力将以前曾经遇到过的类似的错误从记忆 深处挖掘出来,这一能力在测试过程中的价值是无法衡量的。 第2章 软件过程与方法 11 第12章 软件测试 11 软件测试人员的素质要求 耐心耐心 一些质量保证工作需要

7、难以置信的耐心,有时需要花费惊人的时间 去分离、识别一个错误。 怀疑精神怀疑精神 开发人员会尽他们最大的努力将所有的错误解释过去,测试人员必 须听每个人的说明,但他必须保持怀疑直到他自己看过以后。 自我督促自我督促 干测试工作很容易变得懒散,只有那些具有自我督促能力的人才能 够使自己每天正常地工作。 洞察力洞察力 一个好的测试人员具有“测试是为了破坏”的观点、捕获用户观点 的能力、强烈的质量追求、对细节的关注能力。 第2章 软件过程与方法 12 第12章 软件测试 12 4 软件测试的对象 软件测试并不等于程序测试,应贯穿于软件定义与开发的软件测试并不等于程序测试,应贯穿于软件定义与开发的 各

8、个阶段。各个阶段。 测试对象包括:测试对象包括: 需求规格说明 设计规格说明 源程序 第2章 软件过程与方法 13 第12章 软件测试 13 软件测试对象之间关系 需求文档 用户: 要什么 分析文档 分析员:可以 提供什么 设计文档 设计员:让软件 怎么做 源程序 程序员:让计算 机做什么 运行结果 计算机:程序运 行得到的 结果 理解正确性 表达正确性 理解正确性 设计正确性 表达正确性 理解正确性 编码正确性 输入正确性 运行正确性 相符吗? 第2章 软件过程与方法 14 第12章 软件测试 14 主要内容 12.1 什么是软件测试什么是软件测试 12.2 软件测试策略软件测试策略 12.

9、2.1 软件测试策略软件测试策略 12.2.2 软件测试步骤软件测试步骤 12.2.3 软件调试软件调试 12.3 软件软件测试测试战术战术 第2章 软件过程与方法 15 第12章 软件测试 15 软件测试策略 测试策略:描述将要进行的测试步骤测试策略:描述将要进行的测试步骤 测试计划 测试用例设计 测试执行 测试结果的收集与评估 第2章 软件过程与方法 16 第12章 软件测试 16 软件测试策略 测试计划测试计划(Test Plan) 测试计划是测试工作的指导性文档,规定测试活动的范 围、方法、资源和进度;明确正在测试的项目、要测试 的特性、要执行的测试任务、每个任务的负责人,以及 与计划

10、相关的风险。 主要内容:测试目标、测试方法、测试范围、测试资源、 测试环境和工具、测试进度表 第2章 软件过程与方法 17 第12章 软件测试 17 软件测试策略 测试用例测试用例(Test Case) 测试用例是数据输入和期望结果组成的对,其中“输入” 是对被测软件接收外界数据的描述,“期望结果”是对 于相应输入软件应该出现的输出结果的描述,测试用例 还应明确指出使用具体测试案例产生的测试程序的任何 限制。 测试用例可以被组织成一个测试系列,即为实现某个特 定的测试目的而设计的一组测试用例。例如,一部分测 试用例用来测试系统的兼容性,另一部分是用来测试系 统在特定的环境中,系统的典型应用是否

11、能够很好地运 作。 第2章 软件过程与方法 18 第12章 软件测试 18 软件测试策略 测试结果评估测试结果评估 缺陷报告是编写在需要调查研究的测试过程期间发生的 任何事件,简而言之,就是记录软件缺陷。 主要内容:缺陷编号、题目、状态、提出、解决、所属 项目、测试环境、缺限报告步骤、期待结果、附件 在报告缺陷时,一般要讲明缺陷的严重性和优先级。 严重性表示软件的恶劣程度,反映其对产品和用户的影响。 优先级表示修复缺陷的重要程度和应该何时修复。 第2章 软件过程与方法 19 第12章 软件测试 19 主要内容 12.1 什么是软件测试什么是软件测试 12.2 软件测试策略软件测试策略 12.2

12、.1 软件测试策略软件测试策略 12.2.2 软件测试步骤软件测试步骤 12.2.3 软件调试软件调试 12.3 软件软件测试测试战术战术 第2章 软件过程与方法 20 第12章 软件测试 20 软件测试步骤 单元测试 Unit Testing 集成测试 Integration Testing 确认测试 Validation Testing 系统测试 System Testing 单元测试模块单元测试模块单元测试模块集成测试确认测试系统测试软件设计文档软件需求文档其他系统元素可 交 付 软 件用户手册已集成软件已确认软件由开发者测试性能测试验收测试安装测试非功能性需求客户对需求 的理解用户使用

13、环境已验证软件可接受系统试用测试最终用户的理解由客户测试由用户测试可使用系统第2章 软件过程与方法 21 第12章 软件测试 21 软件测试的V模型 确认测试 需求分析 概要设计 集成测试 编码 单元测试 系统测试 系统工程 详细设计 第2章 软件过程与方法 22 第12章 软件测试 22 1 单元测试(Unit Testing) 目的目的 验证开发人员所书写的代码是否可以按照其所设想的方式执行而产 出符合预期值的结果,确保产生符合需求的可靠程序单元。 范围范围 单元测试是对软件基本组成单元(构件或模块)进行的测试 单元测试侧重于构件中的内部处理逻辑和数据结构(依据详细设计) 结构化程序单元是

14、模块,面向对象程序单元是类 规程规程 单元测试通常被认为是编码阶段的附属工作,单元测试可以再编码 开始之前或源代码生成之后完成 第2章 软件过程与方法 23 第12章 软件测试 23 单元测试 内容内容 接口 局部数据结构 独立路径 边界条件 错误处理路径 单元测试 单元测试 单元测试 单元测试 单元测试 模块接口 局部数据结构 边界条件 独立路径 出错处理 第2章 软件过程与方法 24 第12章 软件测试 24 单元测试 单元测试环境单元测试环境 驱动模块(driver):模拟被测模块的上一级模块,接收测试数据,把 这些数据传送给所测模块,最后再输出实际测试结果; 桩模块(stub):模拟被

15、测单元需调用的其他函数接口,模拟实现子函 数的某些功能。 接口 局部数据结构 边界条件 独立的路径、循环路径、循环路径 错误处理驱动模块被测模块桩模块桩驱动器驱动器驱动器驱动器驱动器测试用例桩模块第2章 软件过程与方法 25 第12章 软件测试 25 模块A显示跟踪 信息模块A显示传递 信息模块A从一个表或 外部文件返 回一个值模块A进行一项表 查询根 据输入参数 返回输出参 数单元测试的驱动模块/桩模块 驱动程序 A驱动程序 B驱动程序 C驱动程序 D调用从 属模块从表或外 部文件中 传送参数显示参数兼有驱动 程序B、C 的功能表示传送的参数信息桩模块:只做少量的数据操作 驱动模块:为被测模块提供数据 第2章 软件过程与方法 26 第12章 软件测试 26 2 集成测试 每个模块都能单独工作每个模块都能单独工作集成在一起却不能工作集成在一起却不能工作 Why? 模块通过接口相互调用时会引入很多新问题模块通过接口相互调用时会引入很多新问题 集成测试集成测试(Integration Testing) 在单元测试的基础上,将所有模块按照总体设计的要求组装成为子 系统或系统进行的测试。 集成测试是构造软件体系结构的系统化技术,同时也是进行一些旨 在发

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号