软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础

上传人:E**** 文档编号:89322893 上传时间:2019-05-23 格式:PPT 页数:55 大小:842.50KB
返回 下载 相关 举报
软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础_第1页
第1页 / 共55页
软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础_第2页
第2页 / 共55页
软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础_第3页
第3页 / 共55页
软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础_第4页
第4页 / 共55页
软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础》由会员分享,可在线阅读,更多相关《软件测试技术 教学课件 ppt 作者 徐芳 第一章软件测试基础(55页珍藏版)》请在金锄头文库上搜索。

1、1,软 件 测 试 技 术,2,第一章 软件测试基础知识,1.1关于软件测试课程 1.2 软件开发过程 1.3 软件质量保证 1.4 理解软件测试 1.5 软件测试的分类 1.6 软件测试工作流程 1.7 软件测试的职业要求,3,编程大师说:“任何一个程序,无论它多么小,总存在着错误。” 初学者不相信大师的话,他问:“如果一个程序小得只执行一个简单的功能,那会怎样?” “这样的一个程序没有意义,”大师说,“但如果这样的程序存在的话,操作系统最后将失效,产生一个错误。” 但初学者不满足,他问:“如果操作系统不失效,那么会怎样?” “没有不失效的操作系统,”大师说,“但如果这样的操作系统存在的话,

2、硬件最后将失效,产生一个错误。” 初学者仍不满足,再问:“如果硬件不失效,那么会怎样?” 大师长叹一声道:“没有不失效的硬件。但如果这样的硬件存在的话,用户就会想让那个程序做一件不同的事,这件事也是一个错误。”,没有错误的程序世间难求,4,1.1 关于软件测试课程,有关测试的思考题: 软件测试是一门非常重要的学科,主要研究内容是什么? 软件测试需要什么样的专业基础 软件质量到底是什么? 测试的目标是什么? 开发一个测试系统之前你是否明白:,可以测试什么? 应该测试什么? 最终能够测试什么?,5,1.2 软件开发过程,软件开发过程几个主要阶段: 定义:明确软件开发的目标、软件的需求 计划:制订软

3、件开发所涉及的各种计划 实现:进行设计、编码、文档编写工作 稳定化:以测试和缺陷修复工作为主 部署:安装、提交开发完成的软件,6,软件生命周期模型,软件生存周期 定义、计划、实现、稳定化、部署、运行与维护 软件生存期模型,瀑布模型 原型模型 增量模型 螺旋模型,7,瀑布模型,整个开发包括六个阶段:计划、需求分析、设计、编码、测试、运行维护。六个阶段自上而下、相互衔接,以固定的次序来进行。 特点 阶段的顺序性和依赖性 推迟实现的观点 质量保证 存在问题 不适合需求模糊的系统,8,原型模型,先建立一个能反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型进行反复的

4、扩充、改进和求精,最终建立符合用户需求的目标系统。 特点 快速开发工具 循环 低成本 种类 渐进型 抛弃型,9,增量模型,增量模型中,在每个阶段都生成软件的一个可发布版本。这些阶段是交错进行的。 在增量模型中,软件版本是逐步完善的。 在原型中,每个阶段是发布一个原型,而在增量模型中,是完成一个正式的版本。,进度,10,螺旋模型,螺旋模型将瀑布模型和快速原型模型结合起来,并且加入了两种模型均忽略的风险分析。 螺旋模型的每一周期都包括制定计划、风险分析、实施工程和评审四个阶段。,11,1.3 软件质量保证,软件质量定义 满足用户的需求 合理进度、成本、功能关系 具备扩展性和灵活性,能够适应一定程度

5、的需求变化 能够有效的处理例外的情况 保持成本和性能的平衡 软件错误定义 当程序没有实现其最终用户合理预期的功能要求时,就表现为软件错误,12,错误的几种情况: 未将规格说明正确实现。 规定的或预期的需求未体现在产品中(可能未将规格说明全面实现,也可能在开发过程中追加了需求。) 规格说明并未规定的需求被纳入产品,得到实现。,13,软件质量保证定义 为了确保软件开发过程和结果符合预期的要求,而建立的一系列规程,以及依照规程和计划采取的一系列活动及其结果评价。 软件质量保证内容 技术方法的应用 正式技术评审的实施 软件测试 标准的执行 修改的控制 度量 记录和记录保存,14,1.4 理解软件测试,

6、排除软件错误的重要手段,软件测试 测试在软件开发中占有重要地位 测试成本占有开发成本的近一半,15,软件开发成本分布,16,软件开发中,在需求、设计、编码阶段都有可能发生错误。 软件测试就是为了发现程序中的错误而分析或执行程序的过程。 软件测试是软件质量保证的重要手段。 软件测试有两个基本的功能:验证(Verification)和确认(Validation)。,1.4.1 基本概念,17,测试的目的:,测试是程序执行的过程,目的在于发现错误(缺陷) 好的测试用例能有效地发现别的测试用例未发现的错误(缺陷) 成功的测试是发现了未曾发现的错误(缺陷),18,测试的对象,程序测试:发现程序中的错误(

7、缺陷),19,程序正确性的各种情况 程序编写无语法错误 程序执行中未发现明显的运行错误 程序中无不适当语句,20,需求规格 说明 SRS,设计规格 说明 DS,程序,软件测试的对象,软件测试:发现程序及前期开发的错误,测试的对象,21,软件测试原则: 测试能提高软件的质量,但是提高质量不能依赖测试 测试只能证明错误存在,不能证明错误不存在 测试的主要困难是不知道如何进行有效地测试,也不知道什么时候可以放心地结束测试 每个程序员都应当测试自己的程序(份内之事),但是不能作为该程序已经通过测试的依据(所以项目需要独立测试人员) 80-20原则:80的错误聚集在20的模块中,经常出错的模块改错后还会

8、经常出错 测试应当循序渐进,不要企图一次性干完,注意“欲速则不达”,22,软件错误产生原因: 开发人员不太了解需求 软件系统越来越复杂,开发人员不太可能精通所有的技术 技术文档普遍比较糟糕,文档本身就有错误 软件需求、设计报告、程序经常发生变更,每次变更都可能产生新的错误 任何人在编程时都可能犯错误,导致程序中有错误 人们常处于进度的压力之下,急忙之下容易产生错误 人们过于自信,不真实的“没问题”将产生真正的问题,23,测试成本曲线,不足测试,过度测试,测试的程度 t,未发现的缺陷数,测试成本,最佳测试点,24,为什么不可能做穷举测试,M1,D1,D2,D3,D4,M2,M3,M4,M5,M6

9、,M7,D5,=20次,循环次数 0 1 220 独立路径数 51+52+53+5211014 (1百万亿) 每个测试用例(考虑、执行、验证结果)5分钟 共需测试时间 10亿年,25,为什么不可能做穷举测试,若X、Y为所有可能的整数 在字长32位机上 测试 X1、Y1 Z1 Xn、Yn Zn n = 232232 = 264 1.84 1019,26,1.4.2 测试用例,测试用例是由前提条件和操作步骤、预期结果、实际结果构成。 在对软件进行测试时,需要: 构造测试用例 执行测试用例,检查结果是否与期望的输出一致 在编写测试用例时,需要以软件需求为依据。,27,1.5 软件测试的分类,对于软件

10、测试,可以从不同的角度加以分类: 基于是否关注软件结构与算法 黑盒测试 白盒测试 基于是否执行被测试软件 静态测试 动态测试 基于测试的不同阶段 单元测试 集成测试 系统测试 验收测试,28,软件测试的内容 回归测试 功能测试 负载测试 压力测试 性能测试 易用性测试 安装与反安装测试,29,软件测试的内容 恢复测试 安全性测试 兼容性测试 内存泄露测试 比较测试 Alpha 测试 Beta测试,30,1.5.1 黑盒测试和白盒测试,两种测试方法从不同的角度出 发,反映了软件的不同侧面,也 适用于不同的开发环境,31,32,33,1.5.2 静态测试和动态测试,静态测试不执行被测试的软件。类似

11、于汽车检查。,34,动态测试是在测试过程中执行被测试软件,类似于试车。,35,1.5.3测试不同阶段,按测试阶段分类,测试可分4个主要阶段:单元测试、集成测试、系统测试和验收测试。 这是一种从小到大、循序渐进的测试过程。 单元测试是对程序员编写完成的一个个程序单元进行测试。,36,单元测试,单元通常不是可运行的程序。 单元测试必须编写额外的可运行的测试驱动程序。,37,集成测试,集,成,测,试,38,集成测试有渐增式和非渐增式两种方式 渐增式的集成中可以采用两种:“自顶向下”和“自底向上”。 集成测试中,会混合使用白盒测试和黑盒测试方法。 集成测试可以发现模块间接口以及全局数据结构等问题。,3

12、9,系统测试,系统测试,40,系统测试的目的是检查系统是否符合软件需求 系统测试采用黑盒测试方式 系统测试的主要内容有:功能测试、健壮性测试、性能效率测试、用户界面测试、安全性测试、压力测试、可靠性测试、安装/反安装测试等。 为了保证测试的客观性,一般由机构的独立测试小组来执行系统测试。,41,验收测试,验收测试是由用户完成的测试 验收测试的内容与系统测试的内容类似 验收测试可以分成Alpha测试和Beta测试。,42,系统维护 二次开发 项目更新,单元测试,集成测试,系统测试,验收测试,回归测试,43,1.5.4 测试各种分类间关系,44,1.6 软件测试工作流程,测试工作的主要步骤 测试计

13、划 :测试人员对需求进行分析,最终定义一个测试集合 测试设计与开发 :测试人员根据软件需求,完成测试用例 执行测试 :建立测试环境;根据前面编写的测试计划和测试用例运行测试;记录测试结果;报告软件缺陷;跟踪软件缺陷,直至其被处理;分析测试结果,45,测试信息流,整个测试过程需要三类输入 软件配置 :包括软件需求规格说明、软件设计规格说明、源代码等; 测试配置:包括测试计划、测试用例、测试驱动程序等。 测试工具:为提高软件测试效率,可使用测试工具支持测试工作,46,测试过程,需求分析,设计,编码,系统,组装,单元,修正,修正,修正,通过,通过,通过,(集成),47,测试与开发前期工作的关系,需求

14、分析,概要设计,详细设计,编码,单元测试,集成测试,系统测试,48,生存期各阶段活动,分析,设计,编码,维护,安装,测试,单元测试,系统测试,验证,确认,系统测试 质量控制,集成测试,回归测试,验收测试,49,软件生存期各阶段的活动,需求分析阶段 制定本项目的计划 设置基于需求的测试用例 对需求进行评审与分析 对用户手册初稿进行评审与分析 概要设计阶段 修订计划 制定基于设计的测试步骤 对概要设计进行评审与分析 详细设计阶段 设置基于设计的功能测试数据 对详细设计进行评审与分析,50,软件生存期各阶段的活动,程序编写和单元测试 完成测试用例说明书 进行单元测试 进行集成测试 安装 进行系统测试

15、 进行验收测试 运行和维护阶段 软件评价 软件修改评价 回归测试 (引自美国国家标准局信息处理标准FIPS PUB101),51,1.7软件测试的职业要求,测试人员的目标:分析或运行代码来暴露代码中潜在的错误 软件测试员的基本目标是发现软件错误 软件测试员所追求的是尽可能早地找出软件错误 软件测试人员必需确保找出的软件错误得以关闭,52,测试人员主要工作 设计测试 建立一个合适的测试执行环境 评估、获取、安装和配置自动测试工具 执行测试 撰写适当的测试文档,53,测试工程师职业素质 责任心 学习能力 怀疑精神 沟通能力 专注力 洞察力 团队精神 注重积累,54,测试工程师职业前景 软件测试在整个软件开发中不可或缺 软件测试需要面对巨大的技术挑战,可以不断地积累经验和技术,从而做得更好 软件测试所需要掌握的技术内容是无止境的,需要进行新的学习 测试工程师需要的能力和技术,对特定行业领域的了解 相对全面的技术能力 对软件开发过程的深入了解,55,总结,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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