软件测试技术(第二版-全套ppt课件



《软件测试技术(第二版-全套ppt课件》由会员分享,可在线阅读,更多相关《软件测试技术(第二版-全套ppt课件(204页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,*,,软件测试技术,,(,第二版,),软件测试技术(第二版),第,1,章 软件测试基本知识,,第1章 软件测试基本知识,第1章 软件测试基本知识,1.1 软件的概念,1.2 软件测试基本概念,1.3 软件测试的必要性,1.4 软件测试的分类,第1章 软件测试基本知识1.1 软件的概念,1.1 软件的概念,软件就是程序加文档的集合体,计算机软件主要分为系统软件和应用软件二大类。,系统软件为计算机使用提供最基本的功能,
2、是负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。 系统软件又分为操作系统和支撑软件,其中操作系统是最基本的软件。,应用软件是为了某种特定的用途而被开发的软件。如:,QQ,、,MSN,、手机股票、游戏软件,1.1 软件的概念 软件就是程序加文档的集合体,1.2 软件测试基本概念,软件测试是测试的一种,顾名思义就是对软件进行测试。软件测试是由于软件缺陷的存在而产生的。我们将所有软件问题统称作软件缺陷,不管他们的规模和危害有多大,由于它们都会产生使用障碍,而都称为软件缺陷。,软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码实现的最终审查,它是软件质量保证的关键步骤,1.2
3、 软件测试基本概念 软件测试是测试的一种,顾名思义就是,1.2 软件测试基本概念,软件测试的定义,软件测试是为了发现错误而执行程序的过程。,软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。,测试用例,为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。,测试步骤:,测试步骤详细规定了如何设置、执行、评估特定的测试用例。,1.2 软件测试基本概念软件测试的定义,1.2 软件测试基本概念,软件测试的对象,软件测试不等于程序测试。,软件开发过程中所产生的需求规格说明、概要设
4、计规格说明、详细设计规格说明以及源程序都是软件测试的对象。,软件测试的目的,测试的目的是发现错误。,1.2 软件测试基本概念软件测试的对象,1.2 软件测试基本概念,软件测试的原则,尽早地和及时地测测试发现得越晚,修复的代价越高。,测试用例应当由测试数据和与之对应的预期结果这两部分组成;,在程序提交测试后,应当由专门的测试人员进行测试,避免由程序设计者自行检查程序。,测试用例应包括合理的输入条件和不合理的输入条件;,严格执行测试计划,排除测试的随意性;,充分注意测试当中的群体现象;,应对每一个测试结果做全面的检查;,保存测试计划、测试用例、出错统计和最终分析报告,为维护工作提供充分的资料。,1
5、.2 软件测试基本概念软件测试的原则,1.2 软件测试基本概念,测试停止的依据(标准),第一类标准:测试超过了预定时间,则停止测试。这类标准不能用来衡量测试质量。,第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。,第三类标准:使用特定的测试用例设计方案作为判断测试停止的基础。,第四类标准:正面指出停止测试的具体要求。,第五类标准:根据单位时间内查出故障的数量决定是否停止测试。,1.2 软件测试基本概念测试停止的依据(标准),1.2 软件测试基本概念,软件测试和修复,软件测试和修复是不同意义的行为过程,最能体现修复行为的是调试和修正。,经过测试发现错误后,往往不能直觉从测试结果中
6、找到错误的根源,这就需要充分利用测试结果和测试过程中提供的信息进行全面分析,通过调试发现错误,并修正这些发现的错误。,1.2 软件测试基本概念软件测试和修复,1.3 软件测试的必要性,Ashton Tate公司DbaseIV,Borland公司的Borland C++ 4.0,迪斯尼公司的狮子王游戏,千年虫问题,暴风软件召回,淘宝手机软件事件,1.3 软件测试的必要性 Ashton Tate公司Dbas,1.4 软件测试的分类,按照是否需要执行程序,软件测试可划分为静态测试和动态测试,静态测试:并不真正运行被测试程序,只是进行特征分析,动态测试:通过选择适当的测试用例,实际运行所测程序,比较实
7、际运行结果和预期结果,以找出错误。,1.4 软件测试的分类 按照是否需要执行程序,软件测试可划分,静态测试,静态分析程序不需要执行所测试的程序,它扫描所测试程序的正文,对程序的数据流和控制流进行分析。然后送出测试报告。,检查模块中的变量,检查模块接口的一致性,检查在逻辑上可能有错误的结构以及多余的不可达的程序段,建立“变量/语句交叉引用表”、“子程序调用顺序表”、“公用区/子程序交叉引用表”等,检查所测程序违反编程标准的错误,对一些静态特性的统计功能,静态分析并不等同于编译系统 ,静态分析的查错和分析功能是编译程序所不能代替的 。 静态分析工具的结构一般由四部分组成:语言程序的预处理器、数据库
8、、错误分析器和报告生成器。,静态测试静态分析程序不需要执行所测试的程序,它扫描所测试程序,动态测试,动态测试分为结构测试与功能测试,测试覆盖监视程序:主要用在结构测试中,可以监视测试的实际覆盖程度。,断言处理程序 :对照断言语句检查事先指定的断言是否成立。可以帮助复杂系统的检验、调试和维护,符号执行程序 :符号执行法是一种介于程序测试用例执行与程序正确性证明之间的方法。它使用了一个专用的程序,对输入的源程序进行解释。,动态测试 动态测试分为结构测试与功能测试,1.4 软件测试的分类,按照软件测试用例的设计方法而论,软件测试可以分为白盒测试和黑盒测试,白盒测试:按照程序内部的结构测试程序,检验程
9、序中的每条通路是否都有能按预定要求正确工作 ,主要方法有逻辑驱动、基路测试等,主要用于软件验证 。,黑盒测试:在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用 ,黑盒测试方法主要有等价类划分、边值分析、因,—,果图、错误推测等 。,1.4 软件测试的分类 按照软件测试用例的设计方法而论,软件,1.4 软件测试的分类,按照软件测试的策略和过程来分类,软件测试可分为单元测试、集成测试、系统测试、验证测试和确认测试 。,单元测试:对软件中的基本组成单位进行的测试,集成测试:在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。,系统测试:对已经集成好的软件系统
10、进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求 。,验证测试:旨在向软件的购买者展示该软件系统满足其用户的需求。,确认测试:在软件维护阶段,对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。,1.4 软件测试的分类按照软件测试的策略和过程来分类,软件测,本章小结,,,本章介绍了软件和软件测试的相关概念,分析了软件测试目的、软件测试的必要性、软件测试停止的标准、软件测试的分类。,本章小结 本章介绍了软件和软件测试的相关概念,分析了软,实训习题,练习1.上网查询相关软件测试网站,理解软件测试的基本概念。,练习2.说说你对软件测试的认识。,练习3.通过查
11、找资料,举一个不同于书上的案例来说明软件测试的重要性。,练习4.根据自己理解,介绍一下动态测试和静态测试的区别。,实训习题练习1.上网查询相关软件测试网站,理解软件测试的基本,第,2,章 软件测试阶段,第2章 软件测试阶段,第,2,章 软件测试阶段,2.1,软件生命周期,2.2,软件测试阶段,2.3,软件测试模型,第2章 软件测试阶段 2.1 软件生命周期,教学要求:,掌握:软件测试各阶段的主要任务。,,理解:软件测试模型与软件生命周期的关系、几种典型的软件测试模型。,,了解:几种典型的软件测试模型的应用。,教学要求:掌握:软件测试各阶段的主要任务。,2.1,软件生命周期,软件开发生命周期可以
12、划分成计划、设计、开发和运行维护,4,个时期,每个时期又进一步划分成若干阶段,2.1 软件生命周期 软件开发生命周期可以划分成计划、设计、,2.1,软件生命周期,软件生命周期每个阶段的主要任务如下:,问题定义,——“,要解决的问题是什么?,”,,可行性论证及软件计划,——“,有行得通的解决办法吗?,”,,需求分析,——“,系统必须做什么?,”,,总体设计,——“,概括地说,应该怎样做?,”,,详细设计,——“,具体怎样做?,”,,编码和单元测试,综合测试,运行,/,维护,2.1 软件生命周期 软件生命周期每个阶段的主要任务如下:,2.1 软件生命周期,瀑布模型,瀑布模型核心思想是按工序将问题化
13、简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设计方法将逻辑实现与物理实现分开。将,软件生命周期,划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等六个基本活动,并且规定了它们自上而下、相互衔接的固定次序,如同瀑布流水,逐级下落。,,2.1 软件生命周期瀑布模型,2.1 软件生命周期,原型模型,先建立一个能够反映用户需求的原型系统,,,使得用户和开发者可以对目标系统的概貌进行评价和判断,然后对原型系统进行反复的扩充、改进、求精,最终建立符合用户需求的目标系统。,,2.1 软件生命周期原型模型,2.1 软件生命周期,螺旋模型,将瀑布模型和原型模型结合起来,,,它把
14、软件开发过程组织成为一个逐步细化的螺旋周期,每经历一个周期,系统就得到进一步的细化和完善;整个模型紧密围绕开发中的风险分析,推动软件设计向深层扩展和求精。该模型要求开发人员与用户能经常直接进行交流,通常用来指导内部发行的大型软件项目的开发。,2.1 软件生命周期螺旋模型,2.1 软件生命周期,增量模型,,增量模型融合了瀑布模型的基本成分和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的,“,增量,”,。当使用增量模型时,第一个增量往往是核心的产品,即第一个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下
15、一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。,,2.1 软件生命周期增量模型,2.1 软件生命周期,迭代模型,迭代模型也是一种渐近式的模型,但它与增量模型又有区别。假设现在要开发,A,、,B,、,C,、,D,四个大的业务功能,每个功能都需要开发两周的时间。对于增量方法而言可以将四个功能分为两次增量来完成,第一个增量完成,A,、,B,功能,第二次增量完成,C,、,D,功能;而对于迭代开发来讲则是分两次迭代来开发,第一次迭代完成,A,、,B,、,C,、,D,四个基本业务功能,但不含复杂的业务逻辑,而第二次迭代再逐渐细化补充完整相关的业务逻辑。在第一个月
16、过去后,采用增量开发的时候,A,、,B,全部开发完成,而,C,、,D,还一点都没有动;而采用迭代开发的时候,A,、,B,、,C,、,D,四个的基础功能都已经完成。,,2.1 软件生命周期迭代模型,2.1 软件生命周期,喷泉模型,在面向对象方法中,提出了与瀑布模型相对应的喷泉模型,,,该模型的主要特点是认为软件生命周期的各个阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,水既可以落在中间,也可以落在最底部。整个开发过程中都使用统一的概念“对象”进行分析,使用统一的概念和符号表示分析设计过程,各阶段间没有明显的边界,即“无缝”衔接,因此各开发步骤可以多次反复迭代,逐步深化。,2.1 软件生命
17、周期喷泉模型,2.2,软件测试阶段,单元测试,集成测试,系统测试,验收测试,回归测试,,2.2 软件测试阶段 单元测试,2.2.1 单元测试,单元测试又称为模块测试,它是在软件开发过程中进行的最低级别的测试活动,其测试的对象是软件设计的最小单位,——,程序模块。,单元测试的目的是:检查每个模块能否正确实现详细设计说明书中的模块功能、性能、接口和设计约束等要求,发现模块内部可能存在的各种错误。,单元测试需要从程序的内部结构出发设计测试用例,进行单元测试时,通常需要两类信息:模块的规格说明书和模块的源代码,主要采用白盒测试技术。多个模块可以平行地独立进行单元测试。,2.2.1 单元测试单元测试又称
18、为模块测试,它是在软件开发过,2.2.2 集成测试,集成测试也叫做组装测试,通常在单元测试的基础上,通过适当的集成策略,将程序模块有序、递增地组装起来进行测试。,集成测试的目的是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。软件集成的过程是一个持续的过程,会形成很多个临时的版本,在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也叫版本验证测试或提交测试。,2.2.2 集成测试集成测试也叫做组装测试,通常在单元测试的,2.2.3 确认测试,确认测试又称有效性测试。任务是验证软件的功能和性能及
19、其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。,2.2.3 确认测试确认测试又称有效性测试。任务是验证软件的,2.2.4 系统测试,系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。,它为了验证和确认系统是否达到其原始目标,对集成的硬件和软件系统进行的测试。系统测试是在真实戒模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)
20、正确配置、连接,并满足用户需求。,2.2.4 系统测试系统测试,是将通过确认测试的软件,作为整,2.2.5 回归测试,回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。,2.2.5 回归测
21、试回归测试是指修改了旧代码后,重新进行测试,2.3,软件测试模型,V,模型,——,非常明确地标注了测试过程中存在的不同类型的测试。,W,模型,——,非常明确地标注了生产周期中开发与测试之间的对应关系。,X,模型,——,这个模型指出整个测试过程是在探索中进行的。,H,模型,——,软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。,2.3 软件测试模型 V模型——非常明确地标注了测试过程中存,2.3.1 V模型,V,模型是最具有代表意义的测试模型。,V,模型是软件开发瀑布模型的变种,它反映了测试活动与分析和设计的关系,,2.3.1 V模型V模型是最具有代表意义的测试模型。V
22、模型,2.3.2,W,模型,W,模型由,Evolutif,公司提出,相对于,V,模型,,W,模型更科学。,W,模型是,V,模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。,,,2.3.2 W模型W模型由Evolutif公司提出,相对于V,2.3.3 X模型,X,模型也是对,V,模型的改进,,X,模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序,,2.3.3 X模型X模型也是对V模型的改进,X模型提出针对单,2.3.4 H模型,H,模型中
23、,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行,2.3.4 H模型H模型中,软件测试过程活动完全独立,贯穿于,本章小结,本章从软件工程的角度介绍了软件生命周期及主要的软件过程模型,讲解了软件测试的阶段划分,明确了软件测试各阶段的主要任务,介绍了四种主要的软件测试模型,即,V,模型、,W,模型、,X,模型及,H,模型。,本章小结 本章从软件工程的角度介绍了软件生命周期及主要的软件,实训习题,练习,1,.软件生命周期?,练习,2,.什么是软件过程模型,
24、怎样合理地选择软件过程模型?,练习,3,.软件测试通常可以划分为哪几个阶段,各个阶段的主要任务是什么?,练习,4,.典型的软件测试模型有哪些?,练习,5,.软件测试模型与软件过程模型有什么联系?,练习,6,.怎样合理地选择软件测试模型?,实训习题 练习1.软件生命周期?,第,3,章 软件测试过程与管理,第3章 软件测试过程与管理,第,3,章 软件测试过程与管理,,3.1,软件测试过程,3.2,软件测试团队管理,3.3,软件测试文档管理,第3章 软件测试过程与管理 3.1 软件测试过程,教学要求,掌握:软件测试过程的具体步骤,,理解:测试计划、测试设计和测试执行的工作要点,,了解:软件测试团队管
25、理和文档管理,教学要求掌握:软件测试过程的具体步骤,3.1,软件测试过程,为了保证软件的质量,软件测试过程应该从软件项目的确立就开始进行,并且贯穿于整个的软件开发生命周期。对软件测试过程的有效管理能更好的保证软件的质量。一般来说软件测试过程包括测试需求分析、测试计划、测试设计、测试执行和测试总结等几个步骤。,3.1 软件测试过程 为了保证软件的质量,软件测试过程应该从,3.1.1,测试需求分析,在制订测试计划之前,需要先进行测试需求分析。测试需求分析是软件测试过程中的一个重要环节,测一款软件首先要知道软件的应用领域、能实现哪些功能,用户对该软件的性能需求是怎样的,软件需要运行在什么软硬件环境中
26、,进行测试需要准备哪些资源等。,,3.1.1 测试需求分析 在制订测试计划之前,需要先进行测试,3.1.2,测试计划,测试计划一般包括以下一些内容:,项目背景,系统视图,测试的策略,测试资源配置,时间进度安排,缺陷跟踪报告规定,测试团队和文档管理,测试计划的评审,,3.1.2 测试计划 测试计划一般包括以下一些内容:,3.1.3 测试设计,当测试计划制定好了以后,就可以进行测试设计了,有时候是测试计划中的测试范围和策略确定以后就开始进行测试设计,将测试计划和测试设计并行,从而加快项目进度。软件测试设计是测试过程中的重要活动,测试设计是否合理直接影响测试过程后续活动的效率和有效性,从而影响软件产
27、品的最终质量。,3.1.3 测试设计当测试计划制定好了以后,就可以进行测试设,3.1.4 测试执行,测试过程中最基础的工作就是测试执行。当一个新人刚进入软件测试这个行业时,最开始做的就是按照别人设计好的测试用例进行测试执行。,测试执行通常采用自动化工具测试和人工测试相结合的方式进行。,3.1.4 测试执行测试过程中最基础的工作就是测试执行。当一,3.1.5 测试总结,测试执行完成后,需要进行测试总结,进行测试总结的内容包括以下几点:,通过对测试结果的分析,得到对软件质量的评价,分析测试的过程,产品,资源和信息,为以后制定测试计划提供参考,评估测试测试执行和测试计划是否符合,分析系统存在的缺陷,
28、为修复和预防缺陷提供建议,3.1.5 测试总结 测试执行完成后,需要进行测试总结,,3.2 软件测试团队管理,软件测试团队在软件项目中处于重要的地位,肩负着保证软件质量的任务,总的说来软件测试团队有以下职责:,在项目的前景、需求文档确定前对文档进行测试,从用户体验和测试的角度提出自己的看法。,编写合理的测试计划,并与项目整体计划有机地整合在一起。,编写覆盖率高的测试用例。,针对测试需求进行相关测试技术的研究。,认真仔细地实施测试工作,并提交测试报告供项目组参考。,,,3.2 软件测试团队管理 软件测试团队在软件项目中处,3.2 软件测试团队管理,要提高软件测试的效率,保证软件产品的
29、质量,软件测试团队的建设和管理是非常重要的一个环节,应从以下几个方面进行考虑:,团队的规模,团队成员的角色职责,团队成员的类型,团队的稳定性,工作记录机制,管理制度,3.2 软件测试团队管理 要提高软件测试的效率,,3.3,软件测试文档管理,在软件测试过程中需要编制一系列的文档,从项目启动前的测试计划文档到项目结束时的测试总结报告,其中还有测试方案,测试用例文档和测试规程文档等。这些文档在测试过程中起着重要的作用,能很好的反映测试的计划、设计、执行和完成情况,体现项目负责人的管理水平、测试设计员的用例设计水平以及测试员的执行力,可以作为员工考核的重要依据。因此,进行有效的测试文档的
30、管理和规范是非常有必要的。,3.3 软件测试文档管理 在软件测试过程中需要编制一系列的文,3.3,软件测试文档管理,软件测试文档按照功能和目的大致可以分为如下几类:,测试计划文档,测试方案文档,测试用例文档,测试规程文档,测试报告文档,其他测试文档,3.3 软件测试文档管理 软件测试文档按照功能和目的大,本章小结,有效的软件测试过程的实施和管理是软件质量的重要保证,软件过程包括测试需求分析、测试计划、测试设计、测试执行和测试总结等步骤。测试需求分析的关键在于确定测试的范围;测试计划的关键在于进度的安排和任务分配;测试设计的关键在于测试方法和策略的灵活应用;测试执行的关键在于执行的效率和缺
31、陷识别;测试总结的关键在于测试过程的评估和缺陷分析。,本章小结 有效的软件测试过程的实施和管理是软件质量的重要,实训习题,练习,1,.软件测试过程分为哪几个主要的步骤?,练习,2,.软件测试计划主要包括哪些内容?,练习,3,.缺陷状态有哪些?如何进行缺陷状态分布分析?,实训习题练习1.软件测试过程分为哪几个主要的步骤?,第4章 黑盒测试,第4章 黑盒测试,第4章 黑盒测试,4.1,黑盒测试方法,4.2,黑盒测试工具,第4章 黑盒测试4.1 黑盒测试方法,教学要求:,理解:黑盒测试概念,掌握:等价类划分、边界值分析和因果图等方法、黑盒测试工具,QTP,的使用,教学要求:理解:黑盒测试概念,4
32、.1,黑盒测试方法,黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。,黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。,4.1 黑盒测试方法 黑盒测试也称功能测试,它是通过测试来检,4.1 黑盒测试方法 (续),黑盒测试主要试图发现下列几类错误:,是否有不正确或遗漏了的功能,在接口上,能否正确地接受输入数据,能否产生正确地输出信息,访问外部信息是否有错;,性能上是否满足要求;,界面是否错误,是否不美观;,初始化或终止错误。,4.1 黑盒测试方法 (续)黑盒测试主要试图发现下列几类错误,4.1 黑盒测试方法 (续),黑盒测试的优点有:,1,)
33、比较简单,不需要了解程序内部的代码及实现;,2,)与软件的内部实现无关;,3,)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;,4,)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;,5,)在做软件自动化测试时较为方便。,,4.1 黑盒测试方法 (续)黑盒测试的优点有:,4.1 黑盒测试方法 (续),黑盒测试的缺点有:,1,)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的,30%,;,2,)自动化测试的复用性较低。,,4.1 黑盒测试方法 (续)黑盒测试的缺点有:,4.1 黑盒测试方法 (续),具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错
34、误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。,4.1 黑盒测试方法 (续)具体的黑盒测试用例设计方法包括等,4.1.1,等价类划分法,等价类划分的办法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。,每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误。,使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表,,4.1.1 等价类划分法 等价类划分的
35、办法是把程序的输入域,4.1.1 等价类划分法 (续),1,.划分等价类和列出等价类表,等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。,等价类划分:有效等价类和无效等价类。,有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。,无效等价类:与有效等价类的定义恰巧相反。,4.1.1 等价类划分法 (续)1.划分等价类和列出等价类表,4.1.1 等价类划分法 (续),确定等价类的原则,:,在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。,在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况
36、下,可以确立一个有效等价类和一个无效等价类。,在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。,在规定了输入数据的一组值(假定,n,个),并且程序要对每一个输入值分别处理的情况下,可确立,n,个有效等价类和一个无效等价类。,在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。,在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类。,4.1.1 等价类划分法 (续)确定等价类的原则:,4.1.1 等价类划分法 (续),2,.确定测试用例,,为每个等价类规定一个惟
37、一的编号。,设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。,,4.1.1 等价类划分法 (续)2.确定测试用例,4.1.1 等价类划分法 (续),例,2-1,某程序规定:,“,输入三个整数,a,、,b,、,c,分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算,…,”,。用等价类划分方法为该程序进行测试用例设计。,4.1.1 等价类划分法 (续)例2-1某程序规定:“输入三,4.1.1 等价类划分法 (续),分析:,(,1,)整数 (,2,)三个
38、数 (,3,)非零数 (,4,)正数,(,5,)两边之和大于第三边 (,6,)等腰 (,7,)等边,如果,a,、,b,、,c,满足条件(,1,),~,(,4,),则输出下列四种情况之一:,如果不满足条件(,5,),则程序输出为,",非三角形,",。,如果三条边相等即满足条件(,7,),则程序输出为,",等边三角形,",。,如果只有两条边相等、即满足条件(,6,),则程序输出为,",等腰三角形,",。,如果三条边都不相等,则程序输出为,",一般三角形,",。,,4.1.1 等价类划分法 (续)分析:,4.1.1 等价类划分法 (续),例,2-3,城市的电话号码由两部分组
39、成。这两部分的名称和内容分别是:,地区码:以,0,开头的三位或者四位数字(包括,0,);,电话号码:以非,0,、非,1,开头的七位或者八位数字。,4.1.1 等价类划分法 (续)例2-3 城市的电话号码由,4.1.1 等价类划分法 (续),划分等价类,,输入数据,有效等价类,无效等价类,地区码,以,0,开头的,3,位数串,以,0,开头的,4,位数串,以,0,开头的含有非数字字符的串,以,0,开头的小于,3,位的数串,以,0,开头的大于,4,位的数串,以非,0,开头的数串,电话号码,以非,0,、非,1,开头的,7,位数串,以非,0,、非,1,开头的,8,位数串,以,0,开头的数串,以,1,开头
40、的数串,以非,0,、非,1,开头的含有非法字符,7,或者,8,位数串,以非,0,、非,1,开头的小于,7,位数串,以非,0,、非,1,开头的大于,8,位数串,4.1.1 等价类划分法 (续)划分等价类 输入数据有效等价,4.1.1 等价类划分法 (续),例,2-4,保险公司计算保费费率的程序,某保险公司的人寿保险的保费计算方式为:投保额,×,保险费率,其中,保险费率依点数不同而有别,,10,点及,10,点以上保险费率为,0.6%,,,10,点以下保险费率为,0.1%,;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下所示:,,,年龄,,性别,婚姻,抚养人数,,20~39
41、,40~59,其它,,,M,,F,已婚,,未婚,,,1,人扣,0.5,点,,最多扣,3,点,(四舍五入取整),,,6,点,,,4,点,,,2,点,,5,点,,3,点,,,3,点,,5,点,4.1.1 等价类划分法 (续)例2-4 保险公司计算保费,4.1.1 等价类划分法 (续),分析:,年龄:一位或两位非零整数,值的有效范围为,1~99,性别:一位英文字符,只能取值‘,M’,或’,F’,婚姻:字符,只能取值‘已婚’或‘未婚’,抚养人数:空白或一位非零整数(,1~9,),点数 :一位或两位非零整数,值的范围为,1~99,,4.1.1 等价类划分法 (续)分析:,4.1.2,边界值分析法,
42、边界点: 边界点分为上点、内点和离点,,闭区间,半开半闭区间,开区间,离点,离点,离点,离点,离点,离点,上点,上点,上点,上点,上点,上点,内点,内点,内点,4.1.2 边界值分析法 边界点: 边界点分为上点、内点和,4.1.2 边界值分析法 (续),边界值分析方法的原则:,如果输入(输出)条件规定了取值范围,则应该以该范围的边界值及边界附近的值作为测试数据;,如果输入(输出)条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据;,如果程序规格说明书中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试数据;,4.1.2
43、 边界值分析法 (续)边界值分析方法的原则:,4.1.2 边界值分析法 (续),1,.边界条件,就是特殊情况,因为编程从根本上说不怀疑边界有问题。,,,4.1.2 边界值分析法 (续)1.边界条件,4.1.2 边界值分析法 (续),2,.次边界条件,在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查。,,4.1.2 边界值分析法 (续)2.次边界条件,4.1.2 边界值分析法 (续),3,.边界值的选择方法,边界值分析是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例。,4.1.2 边界值分析法 (续)3.边界值的选择方法,4.1.2 边界值分
44、析法 (续),例,2-6,:测试计算平方根的函数,输入:实数,输出:实数,规格说明:当输入一个,0,或比,0,大的数的时候,返回其正平方根;当输入一个小于,0,的数时,显示错误信息,",平方根非法,-,输入值小于,0",并返回,0,;库函数,Print-Line,可以用来输出错误信息。,4.1.2 边界值分析法 (续) 例2-6:测试计算平方根的,4.1.2 边界值分析法 (续),1),等价类划分:,I.,可以考虑作出如下划分:,,a,、输入,(i)<0,和,(ii)>=0,b,、输出,(a)>=0,和,(b) Error,II.,测试用例有两个:,a,、输入,4,,输出,2,。对应于,(ii
45、),和,(a),。,b,、输入,-10,,输出,0,和错误提示。对应于,(i),和,(b),。,2),边界值分析:,划分,(ii),的边界为,0,和最大正实数;划分,(i),的边界为最小负实数和,0,。,a,、输入,{,最小负实数,},b,、输入,{,绝对值很小的负数,},c,、输入,0,d,、输入,{,绝对值很小的正数,},e,、输入,{,最大正实数,},4.1.2 边界值分析法 (续)1)等价类划分:,4.1.2 边界值分析法 (续),例,2-6,现有一个学生标准化考试批阅试卷,,,产生成绩报告的程序。其规格说明如下,:,程序的输入文件由一些有,80,个字符的记录组成,,,4.1.2 边界
46、值分析法 (续)例 2-6现有一个学生标准化,4.1.3,因果图法,因果图法是从用自然语言书写的程序规格说明的描述中找出因(输入条件)和果(输出或程序状态的改变),通过因果图转换为判定表。,因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况。,,4.1.3 因果图法 因果图法是从用自然语言书写的程序规格,4.1.3 因果图法 (续),因果图设计步骤如下:,分析程序规格说明的描述中,哪些是原因,哪些是结果。并给每个原因和结果赋予一个标识符。,分析软件规格说明描述中的语义,找出原因与结果之间,,,原因与原因之间对应的关系,根据这些关系,,,画出因果图。,由于语法或环境限制,,
47、,有些原因与原因之间,,,原因与结果之间的组合情况不可能出现,为表明这些特殊情况,,,在因果图上用一些记号表明约束或限制条件。,把因果图转换成判定表。,把判定表的每一列拿出来作为依据,,,设计测试用例。,,4.1.3 因果图法 (续)因果图设计步骤如下:,4.1.3 因果图法 (续),判定表(,Decision Table,)是分析和表达多逻辑条件下执行不同操作的情况下的工具。,利用判定表能够设计出完整的测试用例集合。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合。,4.1.3 因果图法 (续)判定表(Decision Tab,4.1.3 因果图法 (续),判定表组成,,,4.
48、1.3 因果图法 (续)判定表组成,4.1.3 因果图法 (续),例,2-9,订购单的检查。如果金额超过,500,元,又未过期,则发出批准单和提货单;如果金额超过,500,元,但过期了,则不发批准单;如果金额低于,500,元,则不论是否过期都发出批准单和提货单,在过期的情况下还需要发出通知单。,将这段需求进行判定表分析,可以得到如下判定表,,金额,>500,>500,<=500,<=500,状态,未过期,已过期,未过期,已过期,发出批准单,O,,O,O,发出提货单,O,,O,O,发出通知单,,,,O,4.1.3 因果图法 (续)例2-9 订购单的检查。如果金额,4.1.3 因果图法 (续),例
49、,2-10,有一个处理单价为,1,元,5,角钱的盒装饮料的自动售货机软件。若投入,1,元,5,角硬币,按下,“,可乐,”,、,“,雪碧,”,或,“,红茶,”,按钮,相应的饮料就送出来。若投入的是两元硬币,在送出饮料的同时退还,5,角硬币。,原因:,投入,1,元,5,角硬币;,投入,2,元硬币;,按,“,可乐,”,按钮;,按,“,雪碧,”,按钮;,按,“,红茶,”,按钮。,中间状态:,已投币;,已按钮。,结果:,退还,5,角硬币;,送出“可乐”饮料;,送出“雪碧”饮料;,送出“红茶”饮料。,4.1.3 因果图法 (续)例2-10 有一个处理单价为1元,4.1.3 因果图法 (续),根据原因和结果
50、,设计这样一个因果图,,4.1.3 因果图法 (续)根据原因和结果,设计这样一个因果,4.2,黑盒测试工具,常用的黑盒测试工具包括:,功能测试工具。用于检测程序能否达到预期的功能呢要求并正常运行。,性能测试工具。用于确定软件和系统的性能。,,4.2 黑盒测试工具 常用的黑盒测试工具包括:,4.2.1,黑盒测试工具介绍,WinRunner,Mercury Interactive,公司的,WinRunner,是一种企业级的功能测试工具,用于检测应用程序,4.2.1 黑盒测试工具介绍 WinRunner,4.2.1,黑盒测试工具介绍 (续),QTP是quicktest Professional的
51、简称,是一种自动测试工具。,QTP是一个功能测试工具,主要帮助测试人员完成软件的功能测试,与其他测试工具一样,QTP不能完全取代测试人员的手工操作,但是在某个功能点上,使用QTP的确能够帮助测试人员做很多工作。,4.2.1 黑盒测试工具介绍 (续) QTP是quickte,4.2.2,使用,QTP,进行黑盒测试,QuickTest,工作流程,录制测试脚本前的准备,录制测试脚本,加强测试脚本,4.2.2 使用QTP进行黑盒测试 QuickTest工作,4.2.2 使用QTP进行黑盒测试(续),测试脚本,当浏览网站或使用应用程序时,,QuickTest,会纪录你的操作步骤,并产生测试脚本。当停
52、止录制后,会看到,QuickTest,在,Keyword View,中以表格的方式显示测试脚本的操作步骤。,录制测试前的准备,录制测试脚本,分析录制的测试脚本,执行测试脚本,分析测试结果,4.2.2 使用QTP进行黑盒测试(续)测试脚本,4.2.2 使用QTP进行黑盒测试(续),建立检查点,检查点是将指定属性的当前值与该属性的期望值进行比较的验证点。,检查点的种类,对象检查,网页检查,文字检查,表格检查,执行并分析使用检查点的测试脚本,,4.2.2 使用QTP进行黑盒测试(续)建立检查点,4.2.2 使用QTP进行黑盒测试(续),参数化测试脚本,参数化测试脚本包括数据输入的参数化和检测
53、点的参数化,定义参数,修正受到参数化影响的步骤,执行并分析使用参数的测试脚本,,4.2.2 使用QTP进行黑盒测试(续)参数化测试脚本,4.2.2 使用QTP进行黑盒测试(续),输出值的测试,创建输出值,执行并分析使用输出值的测试脚本,,4.2.2 使用QTP进行黑盒测试(续)输出值的测试,实训习题,现有一个小程序,能够求出三个在,-10000,到,+10000,间整数中的最大者,有一个文本框要输入我们国家的身份证号,请设计相应的测试用例。,现在要测试一个程序,在文本框中输入一个日期,能够显示出这个日期的下一天的日期。例如,在文本框中输入,2006-5-1,,能够显示出,2006-5-2
54、,。请写出该程序的设计用例。,实训习题 现有一个小程序,能够求出三个在-10000到+10,实训习题,4.,下面是医院管理系统中的入院管理模块的需求说明,请根据需求说明写出测试用例。,1,)病人基本资料表录入、修改、删除、复制,2,)病人基本资料查询。,3,)病人预交款资料查询。,,实训习题4.下面是医院管理系统中的入院管理模块的需求说明,请,实训习题,5.,实现,QTP,运行时从,EXCEL,文件中循环读取手机号码,自动生成唯一的随机密码(需要查询数据库),若生成密码在数据库中不唯一则重新生成,直到密码唯一后方可执行下一步操作。设置检查点,检查充值是否成功,若不成功则需要重新充值,直到充值成
55、功为止;为满足业务要求不使用,QTP,自带的检查点功能;为了使脚本能在不同机器上正常运行,不使用,QTP,对象库中生成的对象而使用手工编写对象识别。,实训习题5. 实现QTP运行时从EXCEL文件中循环读取手机,第5章 白盒测试,第5章 白盒测试,第5章 白盒测试,5.1 白盒测试方法,5.2 白盒测试工具,第5章 白盒测试5.1 白盒测试方法,5.1,白盒测试方法,,一般来说,测试任何产品有两种方法:第一种测试方法就是我们第二章提到的黑盒测试,第二种测试方法为白盒测试又称为结构测试。,,5.1 白盒测试方法一般来说,测试任何产品有两种方法:第一,5.1.1 代码检查,代码检查即静态白盒测试
56、,在不执行程序的条件下仔细审查代码(可采用互查、走查等形式),从而找出软件故障的过程。,正式审查过程中有,4,个关键要素:,1,、确定问题。,2,、遵守准则。,3,、提前准备。,4,、编写审查报告。,5.1.1 代码检查代码检查即静态白盒测试,在不执行程序的条,5.1.1代码检查,代码检查应注意的哪些可能存在的软件缺陷呢?首先必须对代码的规范性进行审查,另外还要考虑以下几种类别的错误。,1,、数据的引用错误。,2,、数据类型错误。,3,、数据声明错误。,4,、计算错误。,5,、逻辑运算错误。,6,、控制流程错误。,7,、子程序参数错误。,,8,、输入,/,输出错误。,9,、其他错误。,5.1.
57、1代码检查代码检查应注意的哪些可能存在的软件缺陷呢?,5.1.2覆盖测试,覆盖测试以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解。根据覆盖测试的目标不同,可分为:语句覆盖、判定覆盖、条件覆盖、判定,-,条件覆盖、组合覆盖及路径覆盖。下面以一个小程序为例。,Begin,if(x>0)and(y<0) then z=z-(x+y);,if(x>2)or(z>0) then z=z+5;,其中,and,、,or,是逻辑运算符,,3,个输入参数是,x,y,z,。其对应的程序流程图如图,3-1,所示(,a,、,b,、,c,、,d,、,e,为控制流上的若干程序点)。,
58、5.1.2覆盖测试覆盖测试以程序内部的逻辑结构为基础设计测试,5.1.2覆盖测试,1,、语句覆盖,所谓语句覆盖是指设计若干个测试用例,使程序中的每个可执行语句至少被执行一次。,语句覆盖在测试程序时,对检查不可执行语句方面起到一定作用,但被测程序并不是语句间无序的堆积,语句之间存在着各种各样的内部联系。所以,语句覆盖并不能排除被测试程序中存在故障的风险。,,5.1.2覆盖测试1、语句覆盖,5.1.2覆盖测试,2,、判定覆盖,所谓判定覆盖是指设计若干个测试用例,使得程序中的每个判定至少得到一次真值和假值,即判断中的真假分支至少均执行一次。判定覆盖又称为分支覆盖。,5.1.2覆盖测试2、判定覆盖,5
59、.1.2覆盖测试,3,、条件覆盖,所谓条件覆盖是指设计若干个测试用例,使得程序中每个判断中每个条件的可能值至少得到一次。因此,条件覆盖与判定覆盖相比增加了对符合判定情况的测试以及测试路径。,4,、判定,/,条件覆盖,所谓判定,/,条件覆盖是指设计若干个测试用例,使得判断中每个条件的所有(真或假)取值至少出现一次,并且每个判断的所有(真或假)判断结果也至少出现一次。,,5.1.2覆盖测试3、条件覆盖,5.1.2覆盖测试,5,、组合覆盖,所谓组合覆盖是指设计若干个测试用例,使得每个判定条件的各种情况至少出现一次。,6,、路径覆盖,所谓路径覆盖是指设计若干个测试用例覆盖程序中所有的路径。,,5.1.
60、2覆盖测试5、组合覆盖,5.1.3路径测试,路径测试就是从一个程序的入口开始,执行所经历的各个语句的完整过程。,路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法路径测试方法。,(1)画出程序的控制流图。,5.1.3路径测试路径测试就是从一个程序的入口开始,执行所经,5.1.3路径测试,(2)程序环形复杂度:McCabe复杂性度量。,(3)导出基本路径集,确定程序的独立路径。,(4)根据(3)中的独立路径,设计测试用例的输入数据和预期输出,确保基本路径集中的每一条路径的执行。,,5.1.3路径测试(2)程序环形复杂度:McCabe复
61、杂性度,5.1.3路径测试,1、程序路径表达,采用弧序列或者节点序列的方式并引入了两个运算:加和乘。,(1)弧a和弧b相加,表示为a+b,它表明两条弧是“或”的关系,是并行的路段。,(2)弧a和弧b相乘,表示为ab,它表明路径是先经历弧a,接着再经历弧b,弧a和弧b是先后相接的。,5.1.3路径测试1、程序路径表达,5.1.3路径测试,路径表达式运算满足一下规律。,加法交换律:,a+b=b+a,加法结合律:,a+(b+c)=(a+b)+c,加法幂运算:,a+a=a,乘法结合律:,a(bc)=(ab)c,分配律:,a(b+c)=ab+ac (a+b)c=ac+bc (a+b)(c+d
62、)=a(c+d)+b(c+d),值得注意的是路径表达式中乘法不满足交换律。,,5.1.3路径测试路径表达式运算满足一下规律。,5.1.3路径测试,2、程序的环路复杂性,环路复杂性V(G)的计算方式有以下三种。,第一种:V(G)=区域数目。,第二种:V(G)=E-N+2。其中E表示边界数目,N表示节点数目。,第三种:V(G)=P+1。其中P表示判断节点数目。,5.1.3路径测试2、程序的环路复杂性,5.1.3路径测试,3,、,Z,路径覆盖,通过对路径覆盖的分析中可以知道,对于路径较少且比较简单程序而言,实现路径覆盖是可能实现的。但是,如果程序中出现多个循环或者判断的话,所涉及的路径数目也会快速增
63、加,这就可能造成无法实现路径覆盖。为了解决这个问题,就必须去除一些次要因素,限制循环次数,从而减少路径数量。这种简化循环下的路径覆盖称为,Z,路径覆盖。,程序中比较典型的循环控制结构即为,while,和,do-while,。两者的区别在于,while,是先判断,再执行。,do-while,是先执行,再判断。因此,,do-while,至少执行一次。,5.1.3路径测试3、Z路径覆盖,5.1.3路径测试,现在通过一个具体的例子来看如何实现路径测试。有如下程序段:,void Sort ( int x, int y ),1 {,2 int a=1,b=2;,3 wh
64、ile ( x> 0 ),4 {,5 if (y==0 ),6 a=b-3;,7 else,8 if (y==1 ),9 a=b+5;,10 else,11 a=b*2;,12 },13 },步骤,1,:画控制流图。,5.1.3路径测试现在通过一个具体的例子来看如何实现路径测试,5.1.3路径测试,步骤2:计算环形复杂度:,该流程图有4个
65、区域。,步骤3:导出独立路径(用语句编号表示),路径1:3→13,路径2:3→5→6→13,路径3:3→5→8→9→12→3→13,路径4:3→5→8→11→12→3→13,步骤4:设计测试用例,5.1.3路径测试步骤2:计算环形复杂度:,5.2,白盒测试工具(,JUnit,),,软件测试在软件投入使用前,对软件需求分析,设计规格说和编码进行最后的审查,这是软件质量保证的关键步骤。,软件测试在软件开发过程中跨越了两个阶段:单元测试和综合测试。,5.2 白盒测试工具(JUnit)软件测试在软件投入使用前,5.2.1 白盒测试工具介绍,,在,JUnit,单元测试框架的设计时,设定了三个总体目标:
66、,第一个是简化测试的编写;,第二个是使测试单元保持持久性;,第三个则是可以利用既有的测试来编写相关的测试。,5.2.1 白盒测试工具介绍 在JUnit单元测试框架,5.2.1 白盒测试工具介绍,JUnit,安装与配置,要使用,JUnit,,请先至,JUnit,官方网站,http://www.junit.org/,,点击“,Download JUnit”,后出现,JUnit,下载列表,5.2.1 白盒测试工具介绍JUnit安装与配置,5.2.1,白盒测试工具介绍,,5.2.1 白盒测试工具介绍,5.2.1 白盒测试工具介绍,5.2.1 白盒测试工具介绍,5.2.1 白盒测试工具介绍,下载后解开压缩文件,当中会含有,junit.jar,文件,将这个档案复制到指定的文件夹中,如,c:\junit3.8.1\junit.jar,,然后设定,CLASSPATH,。,,5.2.1 白盒测试工具介绍下载后解开压缩文件,当中会含有j,5.2.1 白盒测试工具介绍,5.2.1 白盒测试工具介绍,5.2.1 白盒测试工具介绍,如果是Windows 2000/XP,请在[系统内容/进阶/设定环境变量]
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。