电子教案·软件测试技术(第二版)课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《电子教案·软件测试技术(第二版)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 教案 软件 测试 技术 第二 课件
- 资源描述:
-
1、软件测试技术(第二版)第1章软件测试基本知识 第1章 软件测试基本知识 1.1软件的概念 1.2软件测试基本概念 1.3软件测试的必要性 1.4软件测试的分类 1.1 软件的概念 软件就是程序加文档的集合体 计算机软件主要分为系统软件和应用软件二大类。系统软件为计算机使用提供最基本的功能,是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件又分为操作系统和支撑软件,其中操作系统是最基本的软件。应用软件是为了某种特定的用途而被开发的软件。如:QQ、MSN、手机股票、游戏软件 1.2 软件测试基本概念 软件测试是测试的一种,顾名思义就是对软件进行测试。软件测试是由于软件缺陷的存在而
2、产生的。我们将所有软件问题统称作软件缺陷,不管他们的规模和危害有多大,由于它们都会产生使用障碍,而都称为软件缺陷。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤 1.2 软件测试基本概念 软件测试的定义 软件测试是为了发现错误而执行程序的过程。软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。测试用例 为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试
3、用例。1.2 软件测试基本概念 软件测试的对象 软件测试不等于程序测试。软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。软件测试的目的 测试的目的是发现错误。1.2 软件测试基本概念 软件测试的原则 尽早地和及时地测测试发现得越晚,修复的代价越高。测试用例应当由测试数据和与之对应的预期结果这两部分组成;在程序提交测试后,应当由专门的测试人员进行测试,避免由程序设计者自行检查程序。测试用例应包括合理的输入条件和不合理的输入条件;严格执行测试计划,排除测试的随意性;充分注意测试当中的群体现象;应对每一个测试结果做全面的检查;保存测试计划、测试用例
4、、出错统计和最终分析报告,为维护工作提供充分的资料。1.2 软件测试基本概念 测试停止的依据(标准)第一类标准:测试超过了预定时间,则停止测试。这类标准不能用来衡量测试质量。第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。第四类标准:正面指出停止测试的具体要求。第五类标准:根据单位时间内查出故障的数量决定是否停止测试。1.2 软件测试基本概念 软件测试和修复 软件测试和修复是不同意义的行为过程,最能体现修复行为的是调试和修正。经过测试发现错误后,往往不能直觉从测试结果中找到错误的根源,这就需要充分利用测试结果和测试过
5、程中提供的信息进行全面分析,通过调试发现错误,并修正这些发现的错误。1.3 软件测试的必要性 Ashton Tate公司DbaseIV Borland公司的Borland C+4.0 迪斯尼公司的狮子王游戏 千年虫问题 暴风软件召回 淘宝手机软件事件 1.4 软件测试的分类 按照是否需要执行程序,软件测试可划分为静态测试和动态测试 静态测试:并不真正运行被测试程序,只是进行特征分析 动态测试:通过选择适当的测试用例,实际运行所测程序,比较实际运行结果和预期结果,以找出错误。静态测试 静态分析程序不需要执行所测试的程序,它扫描所测试程序的正文,对程序的数据流和控制流进行分析。然后送出测试报告。检
6、查模块中的变量 检查模块接口的一致性 检查在逻辑上可能有错误的结构以及多余的不可达的程序段 建立“变量语句交叉引用表”、“子程序调用顺序表”、“公用区子程序交叉引用表”等 检查所测程序违反编程标准的错误 对一些静态特性的统计功能 静态分析并不等同于编译系统,静态分析的查错和分析功能是编译程序所不能代替的。静态分析工具的结构一般由四部分组成:语言程序的预处理器、数据库、错误分析器和报告生成器。动态测试 动态测试分为结构测试与功能测试 测试覆盖监视程序:主要用在结构测试中,可以监视测试的实际覆盖程度。断言处理程序:对照断言语句检查事先指定的断言是否成立。可以帮助复杂系统的检验、调试和维护 符号执行
7、程序:符号执行法是一种介于程序测试用例执行与程序正确性证明之间的方法。它使用了一个专用的程序,对输入的源程序进行解释。1.4 软件测试的分类 按照软件测试用例的设计方法而论,软件测试可以分为白盒测试和黑盒测试 白盒测试:按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,主要方法有逻辑驱动、基路测试等,主要用于软件验证。黑盒测试:在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用,黑盒测试方法主要有等价类划分、边值分析、因果图、错误推测等。1.4 软件测试的分类 按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测
8、试。单元测试:对软件中的基本组成单位进行的测试 集成测试:在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。系统测试:对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求。验证测试:旨在向软件的购买者展示该软件系统满足其用户的需求。确认测试:在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。本章小结 本章介绍了软件和软件测试的相关概念,分析了软件测试目的、软件测试的必要性、软件测试停止的标准、软件测试的分类。实训习题 练习1上网查询相关软件测试网站,理解软件测试的基本概念。练习2说说你对软件测试
9、的认识。练习3通过查找资料,举一个不同于书上的案例来说明软件测试的重要性。练习4根据自己理解,介绍一下动态测试和静态测试的区别。软件测试技术(第二版)主编 库波 杨国勋 中国水利水电出版社第2章 软件测试阶段 第2章 软件测试阶段 2.1 软件生命周期 2.2 软件测试阶段 2.3 软件测试模型 教学要求:掌握:软件测试各阶段的主要任务。理解:软件测试模型与软件生命周期的关系、几种典型的软件测试模型。了解:几种典型的软件测试模型的应用。2.1 软件生命周期 软件开发生命周期可以划分成计划、设计、开发和运行维护4个时期,每个时期又进一步划分成若干阶段 2.1 软件生命周期 软件生命周期每个阶段的
10、主要任务如下:问题定义“要解决的问题是什么?”可行性论证及软件计划“有行得通的解决办法吗?”需求分析“系统必须做什么?”总体设计“概括地说,应该怎样做?”详细设计“具体怎样做?”编码和单元测试 综合测试 运行/维护 2.1 软件生命周期瀑布模型瀑布模型 瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。2.1 软件生命周期原型模型原型模型 先建立一个能够反映
11、用户需求的原型系统先建立一个能够反映用户需求的原型系统,使得用户和开发者可以对目标系统的概貌使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型系统进行反进行评价和判断,然后对原型系统进行反复的扩充、改进、求精,最终建立符合用复的扩充、改进、求精,最终建立符合用户需求的目标系统。户需求的目标系统。2.1 软件生命周期螺旋模型螺旋模型 将瀑布模型和原型模型结合起来将瀑布模型和原型模型结合起来,它把软件它把软件开发过程组织成为一个逐步细化的螺旋周开发过程组织成为一个逐步细化的螺旋周期,每经历一个周期,系统就得到进一步期,每经历一个周期,系统就得到进一步的细化和完善;整个模型紧密围绕开发中
12、的细化和完善;整个模型紧密围绕开发中的风险分析,推动软件设计向深层扩展和的风险分析,推动软件设计向深层扩展和求精。该模型要求开发人员与用户能经常求精。该模型要求开发人员与用户能经常直接进行交流,通常用来指导内部发行的直接进行交流,通常用来指导内部发行的大型软件项目的开发。大型软件项目的开发。2.1 软件生命周期增量模型增量模型 增量模型融合了瀑布模型的基本成分和原型实现的迭代增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的列,每一个线性序列产生软件的一个可发布
13、的“增量增量”。当使用增量模型时,第一个增量往往是核心的产品,即当使用增量模型时,第一个增量往往是核心的产品,即第一个增量实现了基本的需求,但很多补充的特征还没第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。后不断重复,直到产生了最终的完善产品。2.1 软件生命周期迭代模型迭代模型 迭代模型也是一种渐近式的模型,但它与增量模型又有迭代模型也是一种渐近式的模型,但它与增
14、量模型又有区别。假设现在要开发区别。假设现在要开发A、B、C、D四个大的业务功能,四个大的业务功能,每个功能都需要开发两周的时间。对于增量方法而言可每个功能都需要开发两周的时间。对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成以将四个功能分为两次增量来完成,第一个增量完成A、B功能,第二次增量完成功能,第二次增量完成C、D功能;而对于迭代开发来功能;而对于迭代开发来讲则是分两次迭代来开发,第一次迭代完成讲则是分两次迭代来开发,第一次迭代完成A、B、C、D四个基本业务功能,但不含复杂的业务逻辑,而第二四个基本业务功能,但不含复杂的业务逻辑,而第二次迭代再逐渐细化补充完整相关的业务
15、逻辑。在第一个次迭代再逐渐细化补充完整相关的业务逻辑。在第一个月过去后,采用增量开发的时候月过去后,采用增量开发的时候A、B全部开发完成,而全部开发完成,而C、D还一点都没有动;而采用迭代开发的时候还一点都没有动;而采用迭代开发的时候A、B、C、D四个的基础功能都已经完成。四个的基础功能都已经完成。2.1 软件生命周期喷泉模型喷泉模型 在面向对象方法中,提出了与瀑布模型相对应的喷泉模在面向对象方法中,提出了与瀑布模型相对应的喷泉模型型,该模型的主要特点是认为软件生命周期的各个阶段是该模型的主要特点是认为软件生命周期的各个阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,相互重叠和多次反复的
16、,就像水喷上去又可以落下来,水既可以落在中间,也可以落在最底部。整个开发过程水既可以落在中间,也可以落在最底部。整个开发过程中都使用统一的概念中都使用统一的概念“对象对象”进行分析,使用统一的概进行分析,使用统一的概念和符号表示分析设计过程,各阶段间没有明显的边界,念和符号表示分析设计过程,各阶段间没有明显的边界,即即“无缝无缝”衔接,因此各开发步骤可以多次反复迭代,衔接,因此各开发步骤可以多次反复迭代,逐步深化。逐步深化。2.2 软件测试阶段 单元测试 集成测试 系统测试 验收测试 回归测试 2.2.1 单元测试 单元测试又称为模块测试,它是在软件开发过程中进行的最低级别的测试活动,其测试的
17、对象是软件设计的最小单位程序模块。单元测试的目的是:检查每个模块能否正确实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例,进行单元测试时,通常需要两类信息:模块的规格说明书和模块的源代码,主要采用白盒测试技术。多个模块可以平行地独立进行单元测试。2.2.2 集成测试 集成测试也叫做组装测试,通常在单元测试的基础上,通过适当的集成策略,将程序模块有序、递增地组装起来进行测试。集成测试的目的是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。软件集成的过程是一个持续的过程,会形成很多
18、个临时的版本,在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试或提交测试。2.2.3 确认测试 确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。2.2.4 系统测试 系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。它为了验证和确认
19、系统是否达到其原始目标,对集成的硬件和软件系统进行的测试。系统测试是在真实戒模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。2.2.5 回归测试 回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。自动回归测试将大幅降低系统测试、维护升级等
20、阶段的成本。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。2.3 软件测试模型 V模型非常明确地标注了测试过程中存在的不同类型的测试。W模型非常明确地标注了生产周期中开发与测试之间的对应关系。X模型这个模型指出整个测试过程是在探索中进行的。H模型软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。2.3.1 V模型 V模型是最具有代表意义的测试模型。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系 2.3.2 W模型 W模型由Evolutif公司提出,相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开
21、发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。2.3.3 X模型 X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序 2.3.4 H模型 H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行 本章小结 本章从软件工程的角度介绍了软件生命周期及主要的软件过程模型,讲解了软件测试的阶段划分,明确了软件测试
22、各阶段的主要任务,介绍了四种主要的软件测试模型,即V模型、W模型、X模型及H模型。实训习题 练习1软件生命周期?练习2什么是软件过程模型,怎样合理地选择软件过程模型?练习3软件测试通常可以划分为哪几个阶段,各个阶段的主要任务是什么?练习4典型的软件测试模型有哪些?练习5软件测试模型与软件过程模型有什么联系?练习6怎样合理地选择软件测试模型?软件测试技术(第二版)主编 库波 杨国勋 中国水利水电出版社第3章 软件测试过程与管理 第3章 软件测试过程与管理 3.1 软件测试过程 3.2 软件测试团队管理 3.3 软件测试文档管理 教学要求掌握:软件测试过程的具体步骤理解:测试计划、测试设计和测试执
23、行的工作要点了解:软件测试团队管理和文档管理 3.1 软件测试过程 为了保证软件的质量,软件测试过程应该从软件项目的确为了保证软件的质量,软件测试过程应该从软件项目的确立就开始进行,并且贯穿于整个的软件开发生命周期。对立就开始进行,并且贯穿于整个的软件开发生命周期。对软件测试过程的有效管理能更好的保证软件的质量。一般软件测试过程的有效管理能更好的保证软件的质量。一般来说软件测试过程包括测试需求分析、测试计划、测试设来说软件测试过程包括测试需求分析、测试计划、测试设计、测试执行和测试总结等几个步骤。计、测试执行和测试总结等几个步骤。3.1.1 测试需求分析 在制订测试计划之前,需要先进行测试需在
24、制订测试计划之前,需要先进行测试需求分析。测试需求分析是软件测试过程中求分析。测试需求分析是软件测试过程中的一个重要环节,测一款软件首先要知道的一个重要环节,测一款软件首先要知道软件的应用领域、能实现哪些功能,用户软件的应用领域、能实现哪些功能,用户对该软件的性能需求是怎样的,软件需要对该软件的性能需求是怎样的,软件需要运行在什么软硬件环境中,进行测试需要运行在什么软硬件环境中,进行测试需要准备哪些资源等。准备哪些资源等。3.1.2 测试计划 测试计划一般包括以下一些内容:测试计划一般包括以下一些内容:项目背景项目背景系统视图测试的策略测试资源配置时间进度安排缺陷跟踪报告规定测试团队和文档管理
25、测试计划的评审3.1.3 测试设计 当测试计划制定好了以后,就可以进行测试设计了,有时候是测试计划中的测试范围和策略确定以后就开始进行测试设计,将测试计划和测试设计并行,从而加快项目进度。软件测试设计是测试过程中的重要活动,测试设计是否合理直接影响测试过程后续活动的效率和有效性,从而影响软件产品的最终质量。3.1.4 测试执行 测试过程中最基础的工作就是测试执行。当一个新人刚进入软件测试这个行业时,最开始做的就是按照别人设计好的测试用例进行测试执行。测试执行通常采用自动化工具测试和人工测试相结合的方式进行。3.1.5 测试总结 测试执行完成后,需要进行测试总结,进行测试总结的内容包括以下几点:
展开阅读全文