软件测试教案(共55页).doc
《软件测试教案(共55页).doc》由会员分享,可在线阅读,更多相关《软件测试教案(共55页).doc(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章 软件及其开发过程教学目的1、理解软件的含义2、了解软件开发过程教学内容11软件的含义1、软件概念 能够完成预定功能和性能的、可执行的指令(计算机程序); 使得程序能够适当地操作信息的数据结构; 描述程序的操作和使用的文档。 软件 = 程序 + 数据 (库) + 文档 + 服务 2、软件组成 客户需求 - Customer Requirements 市场需求文档 - MRD (Marketing Requirement Document) 软件规格说明书 - Specifications 技术设计文档 Technical Design Docs 测试文档 Tes
2、t Documents 在线帮助 - Online help 产品发布注释 - Release Notes / Read Me 产品软件包 - Release packages 3、软件特征软件是逻辑的、知识性的产品集合,是对物理世界的一种抽象,或者是某种物理形态的虚拟化。 软件是硬件的灵魂,硬件是软件的基础 软件,是智慧和知识的结晶 软件不会“磨损”,而是逐步完善 .12软件开发过程的特性121软件开发的基本过程 需求分析: 根据客户的要求,清楚了解客户需求中的产品功能、特性、性能、界面和具体规格等,然后进行分析,确定软件产品所能达到的目标。 设计: 根据需求分析的结果,考虑如何在逻辑、程序
3、上去实现所定义的产品功能、特性等,可以分为概要设计和详细设计,也可分为数据结构设计、软件体系结构设计、应用接口设计、模块设计、界面设计等。 编程: 将设计转换成计算机可读的形式。 测试: 对设计、编程进行验证和用户需求确认的过程 维护:维持软件运行,修改软件缺陷、增强已有功能、增加新功能、升级等。 122软件开发过程模型瀑布模型 原型模型 快速应用开发(RAD)模型 改进的V模型 螺旋模型 增量模型和迭代模型 构件组装模型 并发模型 XP模型13软件测试的重要性131软件所带来的悲剧1、千年虫(缺陷问题) 2、迪斯尼的圣诞节礼物(软件兼容性问题) 3、美国航天局火星登陆事故(未进行集成测试)为
4、什么会发生这些问题?没有足够测试 缺乏测试平台 不正确的测试环境 缺少集成测试 缺少性能测试 缺少强度测试 缺少可靠性测试 132测试的重要性“程序测试是为了发现错误而执行程序的过程”。测试的目的是发现程序中的错误,是为了证明程序有错,而不是证明程序无错。在软件开发过程中,分析、设计与编码等工作都是建设性的,惟独测试是带有“破坏性”,测试可视为分析、设计和编码3个阶段的“最终复审”,在软件质量保证中具有重要地位。第二章 软件测试的基本概念和方法教学目的1、理解软件测试的基本概念2、理解软件测试在软件开发过程中的重要性3、理解软件测试的意义4、理解软件测试的基本方法和测试分类教学内容21软件质量
5、软件质量就是客户满意度211软件质量的内涵1、构成: 软件产品的质量,即满足使用要求的程序 软件开发过程的质量,即能否满足开发所带来的成本、时间、风险等要求 软件在其商业环境中所表现出的质量即就品质的软件应该是相对的无产品缺陷或只有极少量的缺陷,能够准时递交给客户,所花费用在预算内,并且满足客户需求,是可维护的。2、特性:可说明性、有效性、易用性。广义的软件质量由产品质量、过程质量、商业环境质量三者决定。22软件缺陷(bug)软件缺陷:计算机系统或者程序中存在的任何一种破坏正常运行能力的问题、错误、或者隐藏的功能缺陷、瑕疵。缺陷会导致软件产品在某种程序上不能满足用户的需要。IEEE1983 O
6、F IEEE Standard729中对软件缺陷的定义:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背软件缺陷的主要类型:功能特性没有实现或部分实现 设计不合理,存在缺陷 实际结果和预期结果不一致 运行出错 数据结果不正确、精度不够 用户不能接受的其它问题,如存取时间长,界面不美观等。软件缺陷严重性级别: 致命的(fatal):致命的错误,造成系统或应用程序崩溃、死机、系统悬挂,或造成数据丢失、主要功能完全缺失 严重的(critical):严重的错误,指功能或特性没有实现 ,主要功能部分缺失,次要功能完全缺失
7、,或致命的错误声明。 一般的( major):不及严重的错误,不影响系统的基本使用,但没有很好地实现功能,没有达到预期的效果。 微小的( minor):小问题,对功能几乎没有影响 建议(suggestion)软件缺陷的状态: 激活状态 己修正状态 关闭或非渡海状态222软件缺陷的产生 技术问题 团队工作 软件本身223软件缺陷的构成图2-1软件缺陷构成示意图图2-2软件缺陷存在不同阶段分布图2-3 软件缺陷随着时间带来越来越大的成本图2-4 软件缺陷随着时间引起的成本曲线23软件测试的基本方法231软件测试的原则P29232白盒测试和黑盒测试根据测试是针对系统的内部结构还是针对具体实现算法的角
8、度,分为白盒测试和黑盒测试1、 黑盒测试(black-box-texting)(功能测试/数据驱动测试)不管程序内部结构是什么,从用户出发,根据产品应该实现的实际功能和巳经定义好的产品规格验证产品所应该具有的功能是否实现,每个功能是不都能正常使用,是否满足用户的要求。图2-5黑盒测试方法示意图功能;用于软件确认测试 是否有不正确或遗漏了功能 在接口上,能否正确地接受输入数据,能否产生正确的输出信息 访问外部信息是否有错 性能上是否满足要求 界面是否错误,是否不美观 初始化和终止错误方法:等价类划分、边界值分析、错误推测法、因果图等2、 白盒测试(white-box-texting)(结构测试或
9、逻辑驱动测试)已知产品内部工作过程,清楚最终产生软件产品的计算机程序的结构和语句,按照程序内部的结构测试程序,测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否按规定正常进行。功能:用于软件验证方法:逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖)、基本路径测试、循环覆盖等思考:通过白盒测试的软件是否一定没有错误?原则: 保证每个模块中所有独立路径至少被使用一次 对所有逻辑值均测试为真假值 在上下边界及可操作范围内运行所有循环 检查内部数据结构以确保其有效性233静态和动态的方法根据程序是否运行,测试可以分为静态和动态测试静态测试:对模块的源
10、泉代码进行研读,查找错误或悼念一些度量数据,并不需要对代码进行编译和仿真运行。 用人工检测 计算机辅助静态分析测试包括对软件产品的设计规格说明书的审查、对程序代码的阅读、审查动态测试:通过观察代码运行时的动作,来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。234验证和确认(verification&validation)1、验证检验软件是否已经正确地实现了产品规格说明书所定义的系统功能和特性2、有效性确认保证所生产的软件可追溯到用户需求的一系列活动。确认过程提供证据表明软件是否满足系统需求,并解决相应问题3、 两者区别验证:是否正确构造了软件,检验软件是否与设计规格说明书一致确认:是否构
11、造了正确的软件,是否满足用户的真正需求235 ALAC测试ALAC(act-like-a-cusomer)基于客户使用产品的知识开发出来的测试方法。用于功能测试图2-6 ALAC测试方法的原理示意图ALAC测试方法适合特别的场合,如演示版、开发预算低,开发计划日程表紧等情况,降低测试成本,缩短测试时间,缺陷查找和改正针对客户最容易遇到的错误236自动化测试和随机测试自动化测试:通过工具自动动执行软件的测试可完成负载测试、性能测试、可靠性测试随机测试:模拟客户操作的随意性,进行大量的、自动化的随机测试,来发现今后用户可能会碰到的问题。237软件测试的误区 如果说发布出去的软件有质量问题,那是软件
12、测试人员的错。 软件测试技术要求不高,至少比编程容易多。 有时间就多测试一些,来不及就少测试一些 软件测试是测试人员的事,与开发人员无关 根据软件开发瀑布模型,软件测试是开发的最后期的一个阶段24软件测试的分类和阶段241软件测试的分类1、按测试范围分类 单元测试 组件测试 集成测试 系统测试 验收测试 安装测试2、按测试目的分类 正确性测试n 白盒测试n 黑盒测试 性能测试 可靠性测试n 强壮性测试n 异常处理测试n 负载测试 安全性测试3、按测试对象分类 单元测试 组件测试 模块测试 程序测试 系统测试 文档测试4、 按测试过程分类 需求阶段的测试 设计阶段的测试 程序阶段的测试 测试结果
13、的评估 安装测试 验收测试 测试变化5、 其它测试技术和方法 回归法 压力法 恢复测试 安全测试 兼容性测试242测试的阶段图2-7 软件测试阶段示意图25软件测试的工作范畴软件测试工作范畴 软件测试工作的组织与管理制定测试策略、测试计划、确认所采用的测试方法与规范、控制测试进度、管理测试资源 测试工作的实施编制符合标准的测试文档,研制测试环境,与开发组织协作实现各阶段的测试活动软件测试工作的六个方面 测试组织和管理 测试计划PDCA模型:计划plan,执行do,检查check,措施action图2-9 软件开发流程改进模型PDCA示意图 制定测试策略分析测试的目标和指标、确定测试的对象和依据
14、、明确测试的重点和所要采用的方法 确定测试范围 所需资源和日程安排资源:计算机硬件、软件、人力资源资源安排:项目经理、组长、系统工程师、测试设计工程师、资深测试工程师、一般测试工程师等,定义每个人的工作内容和责任日程安排:设置整个测试周期的项目进程,有产品设计规格说明书审查结束时间,测试计划初稿完成时间、设计测试用例的时间、测试计划/用例审查结束时间、单元测试完成的日期、系统测试完成的日期、测试全部完成的日期等。 设计测试用例测试用例是按一定顺序执行的,与测试目标相关的测试活动的描述,是确定怎样测试。包括测试环境、输入值、期望结果或标准测试用例的特性:可复用性、有效性、可管理性、继承性、基础性
15、 测试实施 测试结果分析 测试评审与报告第三章质量保证与测试策略教学目的1、理解软件质量保证体系2、理解测试3、理解测试计划的重要性及其内容4、了解软件质量的可靠性评估教学内容31软件质量保证( software quality assurance, SQA)311 SQA概述1、SQA:通过对软件产品有计划的进行评审和审计来验证软件是否合乎标准的系统工程2、活动原则: 确保SQA活动要自始至有计划的进行 审查软件产品和活动是否遵守适用的标准、规程和要求并得到客观验证。 SQA的活动和结果要保证全员参与,沟通顺畅。 逐级解决不符合问题312 SQA活动 技术方法的应用 正式技术评审的实施 软件
16、测试 标准的执行 修改的控制 度量 质量记录和记录保存1、 SQA活动效果的影响因素 知识结构:专业的技术,例如质量管理与控制知识、统计学知识等。 经验 依据:如果没有这些标准,就无法准确地判断开发活动中的问题,容易引发不必要的争论,因此组织应当建立文档化的开发标准和规程。 全员参与:全员参与至关重要,高层管理者必须重视软件质量保证活动。 把握重点:一定要抓住问题的重点与本质,尽可能避免陷入对细节的争论之中。2、 SQA活动 提出软件质量需求 确定开发方案 阶段评审 测试管理 文档化管理 验证产品与相应文档和标准的一致致性 建立测量机制 记录并生成报告SQA策略 以检测为重:产品制成之后进行检
17、测,只能判断产品质量,不能提高产品质量。 以过程管理为重:把质量的保证工作重点放在过程管理上,对制造过程中的每一道工序都要进行质量控制。 以新产品开发为重:在新产品的开发设计阶段,采取强有力的措施来消灭由于设计原因而产生的质量隐患SQA与软件测试有什么关系和区别 SQA 是管理工作、审查对象是流程、强调以预防为主 测试是技术工作、测试对象是产品、主要是以事后检查 SQA指导测试、监控测试 测试为SQA提供依据32测试策略321测试策略的概念测试策略通常是描述测试工程的总体方法和目标。描述目前在进行哪一阶段的测试(如单元测试、集成测试、系统测试)以及每个阶段内进行的测试种类(如功能测试、性能测试
18、、压力测试等),以确定合理的测试方案使得测试更有效。 322影响测试策略的因素1、测试完成的标准标准的高低对策略确定有着重要的影响。比如该软件的应该用场合为军用,这将对软件的可靠性、安全性要求非常高,但如果是用于小型商场的收费系统由于是内部使用,主要考虑其计算的准确与精度及复杂统计与报表生成等方面准确性与易用性。2、资源状况参与测试的人、测试中所需要的软件平台(如操作系统甚至会涉及到第三方的一些应用软件)及测试可能用到的相关硬件设备(如计算机,网络硬件其它外设等) 323测试策略的确定p 全面细致地了解产品的项目信息:应用领域,测试范围,市场需求,产品的特点和主要功能,技术架构p 基于模块、功
19、能、整体、系统、版本、压力、性能、配置和安装等各个因素对产品的影响,公正客观地开展测试计划p 根据程序的重要性和一旦发生故障将造成的损失,来确定它的测试等级和测试重点p 认真研究测试策略,以便能使用尽可能少的有效测试用例,发现尽可能多的程序错误,因为一次完整的软件测试过后,如果程序中遗漏的错误过多并且很严重,则表明本次测试是失败的,是不足的;而测试不足意味着让用户承担隐藏错误带来的危险.同时反过来说,如果过度测试,则又会浪费许多宝贵的资源. 找到一个最佳平衡点。 测试范围的确立p 优先级最高的需求功能 p 新功能和编码改动较大(提高性能表现)的旧功能 p 运用有效的测试技术去提高测试效果 p
20、经常容易出现问题部分的功能 p 一些经常被用户使用的功能和配置 测试持续阶段的确定当测试任务明确后,测试计划将依赖于测试小组的人力资源而最终确定.通过/失败的标准v 单个的测试通过/失败 测试用例 v 全部产品测试通过/失败 每个阶段的通过/失败 阶段通过/失败的标准风险评估 测试小组开始项目测试时,硬件资源没有按时配备或仍然不足 开始项目测试时, 软件产品编码没有按计划完成 开始项目测试时, 测试用例没有准备好 缺少按计划参加项目测试的测试人员 在项目测试过程中, 需求总是不停地改动 当项目测试进行时, 在设计说明书中被定义的功能总是不停地被修改测试评估里程碑的定义和跟踪可以帮助项目管理者掌
21、握项目的进行状态 n 里程碑 日期 n 测试计划完成 - 1/15n 测试用例完成 - 1/29n 功能验证完成器 - 2/5n 代码冻结前完成系统测试 - 2/20n 版本发布前完成确认测试 -2/2833测试计划331测试计划内容构成测试计划制定的第一步就是将软件分解较小而且相对独立的功能模块,写成测试需求。测试需求有很多分类方法,最普通的一种就是按照功能分类:p 测试需求是测试设计和开发测试用例的基础,分解功能模块可以更好地进行设计;p 详细的测试需求是用来衡量测试覆盖率的重要指标;p 测试需求包括各种测试实际和开发以及所需资源。一个测试计划应包括:产品基本情况、测试需求说明、测试策略和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 教案 55
限制150内