软件测试

上传人:马*** 文档编号:240512157 上传时间:2024-04-13 格式:PPT 页数:190 大小:612.50KB
收藏 版权申诉 举报 下载
软件测试_第1页
第1页 / 共190页
软件测试_第2页
第2页 / 共190页
软件测试_第3页
第3页 / 共190页
资源描述:

《软件测试》由会员分享,可在线阅读,更多相关《软件测试(190页珍藏版)》请在装配图网上搜索。

1、第五章第五章 软件测试软件测试n n测试的目的和原则测试的目的和原则n n测试方法与测试用例设计测试方法与测试用例设计n n软件测试的策略软件测试的策略n n软件测试的种类软件测试的种类n n程序的静态测试程序的静态测试n n程序调试程序调试1软件测试的目的和原则软件测试的目的和原则软件测试的目的软件测试的目的软件测试的原则软件测试的原则软件测试的对象软件测试的对象测试信息流测试信息流测试与软件开发各阶段的关系测试与软件开发各阶段的关系测试的充分性测试的充分性2软件测试的目的软件测试的目的基于不同的立场,存在着两种完全不同基于不同的立场,存在着两种完全不同的测试目的。的测试目的。从从用户的角度

2、用户的角度出发,普遍希望通过软件出发,普遍希望通过软件测试测试暴露软件中隐藏的错误和缺陷暴露软件中隐藏的错误和缺陷,以,以考虑是否可接受该产品。考虑是否可接受该产品。从从软件开发者的角度软件开发者的角度出发,则希望测试出发,则希望测试成为成为表明软件产品中不存在错误表明软件产品中不存在错误的过程,的过程,验证该软件已正确地实现了用户的要求,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。确立人们对软件质量的信心。3Myers软件测试目的软件测试目的(1)测试是测试是程序的执行过程程序的执行过程,目的在于,目的在于发现错误发现错误;(2)一个好的测试用例在于一个好的测试用例在于能发

3、现至今能发现至今未发现的错误未发现的错误;(3)一个成功的测试是一个成功的测试是发现了至今未发发现了至今未发现的错误的测试现的错误的测试。4换言之,测试的目的是换言之,测试的目的是uu 想以最少的时间和人力,想以最少的时间和人力,系统地找系统地找出软件中潜在的各种错误和缺陷出软件中潜在的各种错误和缺陷。如。如果我们成功地实施了测试,我们就能果我们成功地实施了测试,我们就能够发现软件中的错误。够发现软件中的错误。uu 测试的附带收获是,它测试的附带收获是,它能够证明软能够证明软件的功能和性能与需求说明相符合件的功能和性能与需求说明相符合。uu 实施测试收集到的测试结果数据为实施测试收集到的测试结

4、果数据为可靠性分析提供了依据。可靠性分析提供了依据。uu 测试不能表明软件中不存在错误,测试不能表明软件中不存在错误,它只能说明软件中存在错误。它只能说明软件中存在错误。5软件测试的原则软件测试的原则1.应当把应当把“尽早地和不断地进行软件测试尽早地和不断地进行软件测试”作为软件开发者的座右铭。作为软件开发者的座右铭。2.测试用例应由测试用例应由测试输入数据测试输入数据和对应的和对应的预预期输出结果期输出结果这两部分组成。这两部分组成。3.程序员应避免检查自己的程序。程序员应避免检查自己的程序。4.在设计测试用例时,应包括在设计测试用例时,应包括合理的输入合理的输入条件条件和和不合理的输入条件

5、不合理的输入条件。65.充分注意测试中的群集现象。经验表明,充分注意测试中的群集现象。经验表明,测试后测试后程序中残存的错误数目与该程序程序中残存的错误数目与该程序中已发现的错误数目成正比中已发现的错误数目成正比。6.严格执行测试计划,严格执行测试计划,排除测试的随意性排除测试的随意性。7.应当对每一个测试结果做全面检查。应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错统妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。计和最终分析报告,为维护提供方便。7软件测试的对象软件测试的对象软件测试并不等于程序测试。软件测试并不等于程序测试。软件测试软件测试应贯穿

6、于软件定义与开发的整个期间应贯穿于软件定义与开发的整个期间。需求分析需求分析、概要设计概要设计、详细设计以及程详细设计以及程序编码序编码等各阶段所得到的等各阶段所得到的文档文档,包括需,包括需求规格说明、概要设计规格说明、详细求规格说明、概要设计规格说明、详细设计规格说明以及源程序,设计规格说明以及源程序,都应成为软都应成为软件测试的对象件测试的对象。8为把握软件开发各个环节的正确性,需为把握软件开发各个环节的正确性,需要进行各种要进行各种确认确认和和验证验证工作。工作。确认确认(Validation),是一系列的活动和是一系列的活动和过程,目的是想证实在一个给定的外部过程,目的是想证实在一个

7、给定的外部环境中软件的逻辑正确性。环境中软件的逻辑正确性。uu 需求规格说明确认需求规格说明确认uu 程序确认程序确认(静态确认、动态确认静态确认、动态确认)验证验证(Verification),试图证明在软件试图证明在软件生存期各个阶段,以及阶段间的逻辑协生存期各个阶段,以及阶段间的逻辑协调性、完备性和正确性。调性、完备性和正确性。910测试信息流测试信息流可靠性可靠性分析分析测试测试软件软件配置配置测试测试配置配置测试测试工具工具结果结果分析分析测试结果测试结果预预期期结结果果出出错错率率数数据据预测的可靠性预测的可靠性错误错误调试调试修改后的软件修改后的软件11测试信息流测试信息流软件配

8、置软件配置:软件需求规格说明、软件设:软件需求规格说明、软件设计规格说明、源代码等;计规格说明、源代码等;测试配置测试配置:测试计划、测试用例、测试:测试计划、测试用例、测试程序等;程序等;测试工具测试工具:测试数据自动生成程序、静:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库分析程序、以及驱动测试的测试数据库等等。等等。12测试结果分析测试结果分析:比较实测结果与预期结:比较实测结果与预期结果,评价错误是否发生。果,评价错误是否发生。排错排错(调试调试):对已经发现的错误进行错:对已经发现的错误进行错误定位和确

9、定出错性质,并改正这些错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。误,同时修改相关的文档。修正后的文档再测试修正后的文档再测试:直到通过测试为:直到通过测试为止。止。13通过收集和分析测试结果数据,对软件通过收集和分析测试结果数据,对软件建立可靠性模型建立可靠性模型利用可靠性分析,评价软件质量:利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的软件的质量和可靠性达到可以接受的程度;程度;所做的测试不足以发现严重的错误;所做的测试不足以发现严重的错误;如果测试发现不了错误,可以肯定,测如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然试配置考虑得不够

10、细致充分,错误仍然潜伏在软件中。潜伏在软件中。14测试与软件开发各阶段的关系测试与软件开发各阶段的关系软件开发过程是一个自顶向下,逐步细软件开发过程是一个自顶向下,逐步细化的过程化的过程软件计划阶段定义软件范围(作用域)软件计划阶段定义软件范围(作用域)软件需求分析阶段建立软件信息域、功软件需求分析阶段建立软件信息域、功能和性能需求、约束等能和性能需求、约束等软件设计阶段建立软件体系结构、用户软件设计阶段建立软件体系结构、用户接口、数据结构和细部设计接口、数据结构和细部设计程序编码阶段把设计用某种程序设计语程序编码阶段把设计用某种程序设计语言转换成程序代码言转换成程序代码15测试过程是依相反顺

11、序安排的自底向上,测试过程是依相反顺序安排的自底向上,逐步集成的过程。逐步集成的过程。需求分析需求分析设计设计程序编码程序编码单元测试单元测试集成测试集成测试确认测试确认测试详细设计规格说明详细设计规格说明概要设计规格说明概要设计规格说明需求规格说明需求规格说明16测试的充分性测试的充分性测试的充分性是测试的充分性是1975年由年由Goodenough和和Gerhart提出来的。提出来的。他们提出了一些软件测试充分性准则,他们提出了一些软件测试充分性准则,用以表明测试数据必须具备什么性质才用以表明测试数据必须具备什么性质才能算作是一个彻底的测试。能算作是一个彻底的测试。软件测试的充分性从软件在

12、有限多个输软件测试的充分性从软件在有限多个输入数据的行为,判断软件在所有输入数入数据的行为,判断软件在所有输入数据上的行为。据上的行为。17Weyuker测试充分性准则测试充分性准则1.空测试对任何软件都是不充分的。空空测试对任何软件都是不充分的。空测试用例集合意味着软件没有测试。测试用例集合意味着软件没有测试。2.有限性有限性 对任何软件都存在有限的充对任何软件都存在有限的充分测试集合。因为软件测试必须的有分测试集合。因为软件测试必须的有限时间内完成。限时间内完成。3.单调性单调性 如果一个软件系统在一个测如果一个软件系统在一个测试用例集合上是的测试是充分的,那试用例集合上是的测试是充分的,

13、那么,再多测试一些用例也应是充分的。么,再多测试一些用例也应是充分的。184.非非复合性复合性 即使对软件所有成分都作即使对软件所有成分都作了充分的测试,也不表明整个软件的了充分的测试,也不表明整个软件的测试已经充分了。测试已经充分了。5.非分解性非分解性 即使对软件整体做了充分即使对软件整体做了充分的测试,也不表明软件系统中各个成的测试,也不表明软件系统中各个成分都已得到充分的测试。分都已得到充分的测试。6.复杂性复杂性 软件越复杂,需要的测试用软件越复杂,需要的测试用例就越多。例就越多。7.回报递减率回报递减率 测试得越多,进一步测测试得越多,进一步测试所能得到的充分性增长就越少。试所能得

14、到的充分性增长就越少。198.软件测试的充分性与软件需求和软件软件测试的充分性与软件需求和软件实现有关。例如,实现有关。例如,对于两个结构相同的程序,会有一对于两个结构相同的程序,会有一个测试用例集合,它对一个程序是个测试用例集合,它对一个程序是充分的,而对另一个程序系统则是充分的,而对另一个程序系统则是不充分的;不充分的;类似地,存在两个程序,它们的语类似地,存在两个程序,它们的语义是相同的,但存在一个测试用例义是相同的,但存在一个测试用例集合,它对于一个程序是充分的,集合,它对于一个程序是充分的,而对于另一个程序则是不充分的。而对于另一个程序则是不充分的。20测试方法与测试用例设计测试方法

15、与测试用例设计黑盒测试黑盒测试uu等价类划分等价类划分uu边界值分析边界值分析uu错误推测法错误推测法uu因果图因果图白盒测试白盒测试uu逻辑覆盖逻辑覆盖uu判定结构分析判定结构分析uu循环结构分析循环结构分析u基本路径覆盖基本路径覆盖21黑盒测试黑盒测试这种方法是把这种方法是把测试对象测试对象看做看做一个黑盒一个黑盒,测试人员完全不考虑程序内部的逻辑结测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求和功构和内部特性,只依据程序的需求和功能规格说明,检查程序的功能是否符合能规格说明,检查程序的功能是否符合它的功能说明。它的功能说明。黑盒测试叫做黑盒测试叫做功能测试功能测试或或数

16、据驱动测试数据驱动测试。一种特殊的黑盒测试叫做一种特殊的黑盒测试叫做接口测试接口测试,它,它不管程序的需求和实现细节,仅依据程不管程序的需求和实现细节,仅依据程序与其外部环境的接口来选择测试数据。序与其外部环境的接口来选择测试数据。22黑盒测试方法是在程序接口上进行测试,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误主要是为了发现以下错误:uu 是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?uu 在接口上,在接口上,输入能否正确地接受输入能否正确地接受?能否输出正确的结果能否输出正确的结果?uu 是否有数据结构错误或外部信息是否有数据结构错误或外部信息(例如数据文件例如数据

17、文件)访问错误访问错误?uu 性能上是否能够满足要求性能上是否能够满足要求?uu 是否有初始化或终止性错误是否有初始化或终止性错误?23用黑盒测试发现程序错误,必须在用黑盒测试发现程序错误,必须在所有所有可能的输入条件和输出条件可能的输入条件和输出条件中确定测试中确定测试数据,检查程序能否产生正确的输出。数据,检查程序能否产生正确的输出。但这是但这是不可能不可能的。例如,设一个的。例如,设一个程序程序P有有输入量输入量X和和Y及及输出量输出量Z。在字长为在字长为32位的计算机上运行。若位的计算机上运行。若X、Y取整数,取整数,按黑盒方法进行穷举测试:可能采用的按黑盒方法进行穷举测试:可能采用的

18、测试数据组个数测试数据组个数:232232264 如果测试一组数据需要如果测试一组数据需要1毫秒毫秒,一年工作一年工作36524小时,完成所有测试需小时,完成所有测试需5亿年亿年。24白盒测试白盒测试此方法此方法把测试对象看做一个透明的盒子把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑结它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。对程序所有逻辑路径进行测试。通过通过在不同点检查程序的状态在不同点检查程序的状态,确定实,确定实际的状态是否与预期的状态一致。因此际的状态是否与预期的状态一致。因此白

19、盒测试又称为结构测试或逻辑驱动测白盒测试又称为结构测试或逻辑驱动测试。试。25软件人员使用白盒测试方法,主要想对软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:程序模块进行如下的检查:uu 对程序模块的对程序模块的所有独立的执行路径所有独立的执行路径至少测试一次至少测试一次 路径覆盖测试路径覆盖测试;uu 对对所有的逻辑判定所有的逻辑判定,取取“真真”与取与取“假假”的两种情况都至少测试一次的两种情况都至少测试一次 逻辑覆盖测试逻辑覆盖测试;uu 在循环的边界和运行界限内执行循在循环的边界和运行界限内执行循环体环体 控制流测试控制流测试;uu 测试测试内部数据结构的有效性内部数据结构

20、的有效性 数数据流测试、领域测试据流测试、领域测试等。等。26对一个具有对一个具有多重选择和循环嵌套多重选择和循环嵌套的程序,的程序,不同的路径数目可能是天文数字不同的路径数目可能是天文数字。给出。给出一个小程序的流程图,它包括了一个执一个小程序的流程图,它包括了一个执行行20次的循环。次的循环。包含的不同执行路径数达包含的不同执行路径数达 520 条,对每条,对每一条路径进行测试需要一条路径进行测试需要1毫秒,假定一毫秒,假定一年工作年工作36524小时,要想把所有路径测小时,要想把所有路径测试完,需试完,需3170年。年。2728逻辑覆盖逻辑覆盖 语句覆盖语句覆盖 判定覆盖判定覆盖 条件覆

21、盖条件覆盖 判定条件覆盖判定条件覆盖 条件组合覆盖条件组合覆盖 路径覆盖路径覆盖逻辑覆盖是以逻辑覆盖是以程序内部的逻辑结构为基础程序内部的逻辑结构为基础的设计测试用例的技术。它属白盒测试。的设计测试用例的技术。它属白盒测试。29(A1)and(B=0)(A=2)or(X1)X=X/AX=X+1T TT TF FF Fabdce30L1(a c e)=(A 1)and(B=0)and (A=2)or(X/A 1)=(A 1)and(B=0)and(A=2)or (A 1)and(B=0)and(X/A 1)=(A=2)and(B=0)or (A 1)and(B=0)and(X/A 1)31L2(

22、a b d)=not(A 1)and(B=0)and not(A=2)or(X 1)=not(A 1)or not(B=0)and not(A=2)and not(X1)=not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)32L3(a b e)=not(A 1)and(B=0)and (A=2)or(X 1)=not(A 1)or not(B=0)and (A=2)or(X 1)=not(A 1)and(A=2)or not(A 1)and(X 1)or not(B=0)and(A=2)or not(B=0)a

23、nd(X 1)33L4(a c d)=(A 1)and(B=0)and not(A=2)or(X/A 1)=(A 1)and(B=0)and not(A=2)and not(X/A 1)34语句覆盖语句覆盖语句覆盖就是设计若干个测试用例,运语句覆盖就是设计若干个测试用例,运行被测程序,使得行被测程序,使得每一可执行语句至少每一可执行语句至少执行一次执行一次。在图例中,正好所有的可执行语句都在在图例中,正好所有的可执行语句都在路径路径L1上,所以选择上,所以选择路径路径 L1设计测试用设计测试用例,就可以覆盖所有的可执行语句。例,就可以覆盖所有的可执行语句。35测试用例的设计格式如下测试用例的设

24、计格式如下【输入的【输入的(A,B,X),输出的输出的(A,B,X)】为图例设计满足为图例设计满足语句覆盖语句覆盖的测试用例是的测试用例是:【(2,0,4),(2,0,3)】覆盖覆盖 ace【L1】(A=2)and(B=0)or (A1)and(B=0)and(X/A1)36 判定覆盖判定覆盖判定覆盖就是设计若干个测试用例,运判定覆盖就是设计若干个测试用例,运行被测程序,使得行被测程序,使得程序中每个判断的取程序中每个判断的取真分支和取假分支至少经历一次真分支和取假分支至少经历一次。判定覆盖又称为判定覆盖又称为分支覆盖分支覆盖。对于图例,如果选择对于图例,如果选择路径路径L1和和L2,就可就可

25、得满足要求的测试用例得满足要求的测试用例:37【(2,0,4),(2,0,3)】覆盖】覆盖 ace【L1】【(1,1,1),(1,1,1)】覆盖覆盖 abd【L2】(A=2)and(B=0)or (A 1)and(B=0)and(X/A 1)not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)38如果选择路径如果选择路径L3和和L4,还可得另一组可还可得另一组可用的测试用例用的测试用例:【(2,1,1),(2,1,2)】覆盖】覆盖 abe【L3】【(3,0,3),(3,0,1)】覆盖覆盖 acd【L4】not(A

26、 1)and(X 1)or not(B=0)and (A=2)or not(B=0)and(X 1)(A 1)and(B=0)and not(A=2)and not(X/A 1)39条件覆盖条件覆盖条件覆盖就是设计若干个测试用例,运行条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中被测程序,使得程序中每个判断的每个条每个判断的每个条件的可能取值至少执行一次件的可能取值至少执行一次。在图例中,我们事先可对所有条件的取值在图例中,我们事先可对所有条件的取值加以标记。例如,加以标记。例如,对于第一个判断:对于第一个判断:uu 条件条件 A1 取真为取真为 ,取假为,取假为 条件条件 B0 取

27、真为取真为 ,取假为,取假为40对于第二个判断:对于第二个判断:uu 条件条件A2 取真为取真为 ,取假为,取假为 条件条件X1 取真为取真为 ,取假为,取假为 测试用例测试用例 覆盖分支覆盖分支 条件取条件取值值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或或41 测测 试试 用用 例例覆盖分支覆盖分支 条件取值条件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)判定条件覆盖就是设计足够的测试用判定条件覆盖就是设计足够的测试用例,使得例,使得

28、判断中每个条件的所有可能取判断中每个条件的所有可能取值至少执行一次值至少执行一次,每个判断中的每个分每个判断中的每个分支至少执行一次支至少执行一次。判定条件覆盖判定条件覆盖42 测测 试试 用用 例例覆盖分支覆盖分支 条件取值条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)(A=2)and(B=0)or (A 1)and(B=0)and(X/A 1)not(A 1)and not(A=2)and not(X 1)or not(B=0)and not(A=2)and not(X 1)43 andorA1T TB=0T TX=X/AT TF

29、FF FA=2T TF FX1F FX=X+144条件组合覆盖条件组合覆盖条件组合覆盖就是设计足够的测试用例,条件组合覆盖就是设计足够的测试用例,运行被测程序,使得运行被测程序,使得每个判断的所有可每个判断的所有可能的条件取值组合至少执行一次能的条件取值组合至少执行一次。记记 A1,B0 作作 A1,B0 作作 A 1,B0 作作 A 1,B0 作作45 A2,X1 作作 A2,X 1 作作 A2,X1 作作 A2,X 1 作作 测测 试试 用用 例例 覆盖条件覆盖条件 覆盖组合覆盖组合【(2,0,4),(2,0,3)】(L1),【(2,1,1),(2,1,2)】(L3),【(1,0,3),(

30、1,0,4)】(L3),【(1,1,1),(1,1,1)】(L2),46路径测试路径测试路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,覆覆盖程序中所有可能的路径盖程序中所有可能的路径。测测 试试 用用 例例 通过路径通过路径 覆盖条件覆盖条件【(2,0,4),(2,0,3)】ace(L1)【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3)【(3,0,3),(3,0,1)】acd(L4)47判定结构分析判定结构分析当程序中判定多于一个时,形成的分支当程序中判定多于一个时,形成的分支结构可以分为两类:结构可以分为两类:嵌套型分支结构嵌

31、套型分支结构和和连锁型分支结构连锁型分支结构。对于嵌套型分支结构,若有对于嵌套型分支结构,若有n个判定语句,个判定语句,需要需要n+1个测试用例;个测试用例;对于连锁型分支结构,对于连锁型分支结构,若有若有n个判定语句,个判定语句,需要有需要有2n个测试用例,覆盖它的个测试用例,覆盖它的2n条路径。条路径。48嵌套型分支结构嵌套型分支结构连锁型分支结构连锁型分支结构s1s2s3s4p1p2p3s1s2s3s4s5s6p1p2p349对于连锁型分支结构,当对于连锁型分支结构,当 n 较大时将无较大时将无法测试。法测试。为减少测试用例的数目,可采用为减少测试用例的数目,可采用试验设试验设计法计法,

32、抽取部分路径进行测试抽取部分路径进行测试。由于抽样服从均匀分布,因此,在假定由于抽样服从均匀分布,因此,在假定各条路径的重要性相同,或暂不明确各各条路径的重要性相同,或暂不明确各条路径的重要性的情况下可以做到均匀条路径的重要性的情况下可以做到均匀抽样。如果明确了各条路径的重要性,抽样。如果明确了各条路径的重要性,还可以采取加权的办法,筛选掉部分路还可以采取加权的办法,筛选掉部分路径,再用如下的措施进行抽样。径,再用如下的措施进行抽样。50设设连锁型分支结构中有连锁型分支结构中有 n 个判定,计算个判定,计算满足关系式满足关系式 n+12m 的最小自然数的最小自然数m;设设t=2m,取正交表取正

33、交表Lt,并利用它设计测并利用它设计测试数据。试数据。例如,一个连锁型分支结构中有三个判例如,一个连锁型分支结构中有三个判定语句定语句p1,p2,p3。全部路径是全部路径是238 条。条。先计算先计算3+12m=t 的的 t,得得 t=4。取正交取正交表表L4,把每一列当做一个判定,每一行把每一列当做一个判定,每一行当做可取的测试用例,可得当做可取的测试用例,可得4个测试用例。个测试用例。51用各个判定的用各个判定的取假分支取假分支取代正交表取代正交表L4中中的的“0”,用,用取真分支取真分支取代正交表中的取代正交表中的“1”,就建立起一个测试路径矩阵。这,就建立起一个测试路径矩阵。这样,测试

34、路径数目从样,测试路径数目从238条减少到条减少到314条。条。L40 0 01 0 10 1 11 1 01 2 31234用例用例s1 s3 s5s2 s3 s6s1 s4 s6s2 s4 s5p1 p2 p31234s1 s3 s5s2 s3 s6s1 s4 s6s2 s4 s5路路路路 径径径径52s1s3s5p1p2p3s2s3s6p1p2p3s1s4s6p1p2p3s2s4s5p1p2p353L201112L40 0 01 0 10 1 11 1 01 2 31234L80 0 0 0 0 0 01 0 1 0 1 0 10 1 1 0 0 1 111 0 0 1 1 00 0 0

35、 1 1 1 110 1 1 0 1 00 1 1 1 1 0 01 1 0 1 0 0 11 2 3 4 5 6 712345678L2L454循环结构分析循环结构分析循环分为循环分为4种不同类型:种不同类型:简单循环简单循环、连锁连锁循环循环、嵌套循环嵌套循环和和非结构循环非结构循环。(1)简单循环简单循环 零次循环零次循环:从循环入口到出口:从循环入口到出口 一次循环一次循环:检查循环初始值:检查循环初始值 二次循环二次循环:检查多次循环:检查多次循环 m次循环:次循环:检查在多次循环检查在多次循环 最大次数循环、比最大次数多一次、最大次数循环、比最大次数多一次、少一次的循环。少一次的循

36、环。5556简单循环设计测试用例的例子:简单循环设计测试用例的例子:求最小值求最小值k=i;for(j=i+1;j=n;j+)if(Aj Ak)k=j;57k=i;j=i+1;j=n?AjAk?k=jj+fdcabe58测试用例选择测试用例选择59 对对最内层循环做简单循环的全部测最内层循环做简单循环的全部测试试。所有其他层的循环变量置为最小值;。所有其他层的循环变量置为最小值;逐步外推,对其逐步外推,对其外面一层循环进行外面一层循环进行测试测试。测试时保持所有外层循环的循环变。测试时保持所有外层循环的循环变量取最小值,所有其他嵌套内层循环的循量取最小值,所有其他嵌套内层循环的循环变量取环变量

37、取“典型典型”值。值。反复进行,直到所有各层循环测试反复进行,直到所有各层循环测试完毕。完毕。(2)嵌套循环嵌套循环60 对全部各层循环同时取最小循环次数,对全部各层循环同时取最小循环次数,或者同时取最大循环次数或者同时取最大循环次数(3)连锁循环连锁循环如果各个循环如果各个循环互相独立互相独立,则可以用与简,则可以用与简单循环相同的方法进行测试。但如果几单循环相同的方法进行测试。但如果几个循环不个循环不是互相独立是互相独立的,则需要使用测的,则需要使用测试嵌套循环的办法来处理。试嵌套循环的办法来处理。(4)非结构循环非结构循环这一类循环应该使用结构化程序设计方这一类循环应该使用结构化程序设计

38、方法重新设计测试用例。法重新设计测试用例。61基本路径测试基本路径测试基本路径测试方法把覆盖的路径数压缩基本路径测试方法把覆盖的路径数压缩到一定限度内,到一定限度内,程序中的循环体最多只程序中的循环体最多只执行一次执行一次。它是在程序控制流图的基础上,它是在程序控制流图的基础上,分析控分析控制构造的环路复杂性制构造的环路复杂性,导出基本可执行导出基本可执行路径集合路径集合,设计测试用例的设计测试用例的方法。设计方法。设计出的测试用例要保证在测试中,程序的出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。每一个可执行语句至少要执行一次。621.程序的控制流图程序的控制流图符号符号

39、为控制流图的一个结点,表示一为控制流图的一个结点,表示一个或多个无分支的个或多个无分支的PDL语句或源程序语语句或源程序语句。箭头为边,表示控制流的方向。句。箭头为边,表示控制流的方向。63在选择或多分支结构中,分支的汇聚处在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。应有一个汇聚结点。边和结点圈定的区域叫做区域边和结点圈定的区域叫做区域,当对区,当对区域计数时,图形外的区域也应记为一个域计数时,图形外的区域也应记为一个区域。区域。如果判断中的条件表达式是由一个或多如果判断中的条件表达式是由一个或多个逻辑运算符个逻辑运算符(OR,AND,.)连接的复连接的复合条件表达式,则需改为合条件表

40、达式,则需改为 一系列一系列只有单只有单个条件的嵌套的判断个条件的嵌套的判断。6465abyxxif a or b then procedure x else procedure y;.662.程序环路复杂性程序环路复杂性程序的环路复杂性给出了程序的环路复杂性给出了程序基本路径程序基本路径集中的独立路径条数集中的独立路径条数,这是确保程序中,这是确保程序中每个可执行语句至少执行一次所必需的每个可执行语句至少执行一次所必需的测试用例数目的上界。测试用例数目的上界。从控制流图来看,一条独立路径是至少从控制流图来看,一条独立路径是至少包含有一条在其他独立路径中从未有过包含有一条在其他独立路径中从未有

41、过的边的路径。的边的路径。67例如,在图示的控制流图中,一组独立例如,在图示的控制流图中,一组独立的路径是的路径是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11路径路径 path1,path2,path3,path4组成组成了控制流图的一个基本路径集。了控制流图的一个基本路径集。683.导出测试用例导出测试用例导出测试用例,导出测试用例,确保基本路径集中的每确保基本路径集中的每一条路径的执行一条路径的执行。根据判断结点给出的条件,选择适当的根据判断结点给出的条件,选择适当的数

42、据以保证某一条路径可以被测试到数据以保证某一条路径可以被测试到 用逻辑覆盖方法用逻辑覆盖方法。每个每个测试用例执行之后测试用例执行之后,与预期结果进与预期结果进行比较行比较。如果所有测试用例都执行完毕,。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至则可以确信程序中所有的可执行语句至少被执行了一次。少被执行了一次。69必须注意,一些独立的路径必须注意,一些独立的路径(如例中的如例中的path1),往往不是完全孤立的,有时它往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试这些路径的测试可以是另一条路径

43、测试的一部分。的一部分。70等价类划分等价类划分等价类划分是一种典型的黑盒测试方法,等价类划分是一种典型的黑盒测试方法,使用这一方法时,使用这一方法时,完全不考虑程序的内完全不考虑程序的内部结构部结构,只依据程序的规格说明来设计只依据程序的规格说明来设计测试用例测试用例。等价类划分方法等价类划分方法把所有可能的输入数据把所有可能的输入数据,即程序的输入域即程序的输入域划分成若干部分划分成若干部分,然后,然后从每一部分中选取少数有代表性的数据从每一部分中选取少数有代表性的数据做为测试用例做为测试用例。71使用这一方法设计测试用例要经历使用这一方法设计测试用例要经历划分划分等价类等价类(列出等价类

44、表)和(列出等价类表)和选取测试用选取测试用例例两步。两步。(1)划分等价类划分等价类等价类是指某个输入域的子集合。在该等价类是指某个输入域的子集合。在该子集合中,子集合中,各个输入数据对于揭露程序各个输入数据对于揭露程序中的错误都是等效的中的错误都是等效的。测试某等价类的。测试某等价类的代表值就等价于对这一类其他值的测试。代表值就等价于对这一类其他值的测试。72等价类的划分有两种不同的情况:等价类的划分有两种不同的情况:有效等价类有效等价类:是指对于程序的规格说:是指对于程序的规格说明来说,是合理的,有意义的输入数据明来说,是合理的,有意义的输入数据构成的集合。构成的集合。无效等价类无效等价

45、类:是指对于程序的规格说:是指对于程序的规格说明来说,是不合理的,无意义的输入数明来说,是不合理的,无意义的输入数据构成的集合。据构成的集合。在设计测试用例时,要同时考虑有效等在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。价类和无效等价类的设计。73划分等价类等价类的原则。划分等价类等价类的原则。1)如果输入条件规定了取值范围,或值如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和的个数,则可以确立一个有效等价类和两个无效等价类。两个无效等价类。例如,在程序的规格说明中,对输入条例如,在程序的规格说明中,对输入条件有一句话:件有一句话:“项数可以从项数可以从1到到9

46、99”则有效等价类是则有效等价类是“1项数项数999”两个无效等价类是两个无效等价类是“项数项数1”或或“项数项数999”。74在数轴上表示成在数轴上表示成:2)如果输入条件规定了输入值的集合,或如果输入条件规定了输入值的集合,或者是规定了者是规定了“必须如何必须如何”的条件,这时可的条件,这时可确立一个有效等价类和一个无效等价类。确立一个有效等价类和一个无效等价类。例如,在例如,在Pascal语言中对变量标识符规定语言中对变量标识符规定为为“以字母打头的以字母打头的串串”。那么所有以。那么所有以字母打头的构成有效等价类,而不在此集字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于

47、无效等价类。合内(不以字母打头)的归于无效等价类。753)如果输入条件是一个布尔量,则可以确如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。定一个有效等价类和一个无效等价类。4)如果规定了输入数据的一组值,而且程如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。序要对每个输入值分别进行处理。这时可这时可为为 每一个输入值确立一个有效等价类,此每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。所有不允许的输入值的集合。76 例如,在教师上岗方案中规定对教授、例如,在教师上岗方案中规

48、定对教授、副教授、讲师和助教分别计算分数,做副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定相应的处理。因此可以确定4个有效等个有效等价类为教授、副教授、讲师和助教,一价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身个无效等价类,它是所有不符合以上身分的人员的输入值的集合。分的人员的输入值的集合。5)如果规定了输入数据必须遵守的规则,如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反和若干个无效等价类(从不同角度违反规则)。规则)。77 例如,例如,Pascal语言规定语言规

49、定“一个语句必须一个语句必须以分号以分号;结束结束”。这时可以确定一。这时可以确定一个有效等价类个有效等价类“以以;结束结束”,若干,若干个无效等价类个无效等价类“以以:结束结束”、“以以,结束结束”、“以以 结束结束”、“以以LF结束结束”等。等。(2)确立测试用例确立测试用例在确立了等价类之后,建立等价类表,在确立了等价类之后,建立等价类表,列出所有划分出的等价类。列出所有划分出的等价类。78再从划分出的等价类中按以下原则选择再从划分出的等价类中按以下原则选择测试用例:测试用例:1)为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;2)设计一个新的测试用例,使其设计一个新的测

50、试用例,使其尽可能尽可能多地覆盖尚未被覆盖的有效等价类多地覆盖尚未被覆盖的有效等价类,重,重复这一步,直到所有的有效等价类都被复这一步,直到所有的有效等价类都被覆盖为止;覆盖为止;3)设计一个新的测试用例,使其设计一个新的测试用例,使其仅覆盖仅覆盖一个尚未被覆盖的无效等价类一个尚未被覆盖的无效等价类,重复这,重复这一步,直到所有的无效等价类都被覆盖一步,直到所有的无效等价类都被覆盖为止。为止。79用等价类划分法设计测试用例的实例用等价类划分法设计测试用例的实例 在某一在某一PASCAL语言版本中规定:语言版本中规定:“标识符是由字母开头标识符是由字母开头,后跟字母或数后跟字母或数字的任意组合构

51、成字的任意组合构成。有效字符数为有效字符数为8个个,最大字符数为最大字符数为80个个。”并且规定:并且规定:“标识符必须先说明标识符必须先说明,再使再使用用。”“在同一说明语句中在同一说明语句中,标识符至标识符至少必须有一个少必须有一个。”80用等价类划分方法,建立输入等价类表用等价类划分方法,建立输入等价类表:81下面选取了下面选取了 9 个测试用例,它们覆盖了所个测试用例,它们覆盖了所有的等价类。有的等价类。VAR x,T1234567:REAL;BEGIN x:=3.414;T1234567:=2.732;.(1),(2),(4),(8),(9),(12),(14)VAR :REAL;(

52、3)VAR x,:,:REAL;(5)82 VAR T12345678:REAL;(6)VAR T12345.:REAL;(7)多于多于80个字符个字符 VAR T$:CHAR;(10)VAR GOTO:INTEGER;(11)VAR 2T:REAL;(13)VAR PAR:REAL;(15)BEGIN .PAP:=SIN(3.14*0.8)/6;83边界值分析边界值分析边界值分析也是一种黑盒测试方法,是边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。对等价类划分方法的补充。人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,大量大量的错误是发生在输入或输出范围的边界的错误是

53、发生在输入或输出范围的边界上,而不是在输入范围的内部。上,而不是在输入范围的内部。因此针因此针对各种边界情况设计测试用例,对各种边界情况设计测试用例,可以查可以查出更多的错误出更多的错误。84比如,在做三角形计算时,要输入三角比如,在做三角形计算时,要输入三角形的三个边长:形的三个边长:A、B和和C。我们应注意我们应注意到这三个数值应当满足到这三个数值应当满足 A0、B0、C0、ABC、ACB、BCA,才能才能构成三角形。但如果把六个不等式中的构成三角形。但如果把六个不等式中的任何一个大于号任何一个大于号“”错写成大于等于错写成大于等于号号“”,那就不能构成三角形。问题,那就不能构成三角形。问

54、题恰出现在容易被疏忽的边界附近。恰出现在容易被疏忽的边界附近。85这里所说的边界是指,相当于输入等价这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首使用边界值分析方法设计测试用例,首先应确定边界情况。先应确定边界情况。应当选取正好等于,应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测刚刚大于,或刚刚小于边界的值做为测试数据试数据,而不是选取等价类中的典型值,而不是选取等价类中的典型值或任意值做为测试数据。或任意值做为测试数据。86错误推测法

55、错误推测法人们也可以靠经验和直觉推测程序中可人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推写检查这些错误的例子。这就是错误推测法。测法。错误推测法的基本想法是:错误推测法的基本想法是:列举出程序列举出程序中所有可能有的错误和容易发生错误的中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例特殊情况,根据它们选择测试用例。87因果图因果图因果图的适用范围因果图的适用范围 如果在测试时必须考虑如果在测试时必须考虑输入条件的各种输入条件的各种组合组合,可使用一种适合于描述,可使用一种适合于描述对于多

56、种对于多种条件的组合条件的组合,相应产生多个动作相应产生多个动作的形式的形式来设计测试用例,这就需要利用因果图。来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是因果图方法最终生成的就是判定表判定表。它。它适合于检查程序输入条件的各种组合情适合于检查程序输入条件的各种组合情况。况。用因果图生成测试用例的基本步骤用因果图生成测试用例的基本步骤88 1)分析软件规格说明描述中,哪些是分析软件规格说明描述中,哪些是原原因因(即输入条件或输入条件的等价类即输入条件或输入条件的等价类),哪些是哪些是结果结果(即输出条件即输出条件),并给每个原,并给每个原因和结果赋予一个标识符。因和结果赋予一个

57、标识符。2)分析软件规格说明描述的语义,找出分析软件规格说明描述的语义,找出原因与结果之间原因与结果之间,原因与原因之间原因与原因之间对应对应的关系的关系?根据这些关系,画出因果图。根据这些关系,画出因果图。3)由于语法或环境限制由于语法或环境限制,有些原因与原有些原因与原因之间,原因与结果之间的组合情况不因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因可能出现。为表明这些特殊情况,在因果图上用一些记号果图上用一些记号标明约束或限制条件标明约束或限制条件。89 4)把因果图转换成判定表。把因果图转换成判定表。5)把判定表的每一列拿出来作为依据,把判定表的每一列拿出来作为依据

58、,设计测试用例。设计测试用例。在因果图中出现的基本符号在因果图中出现的基本符号 通常在因果图中用通常在因果图中用Ci表示原因,用表示原因,用Ei表表示结果,各结点表示状态,可取值示结果,各结点表示状态,可取值“0”或或“1”。“0”表示某状态不出现,表示某状态不出现,“1”表示某状态出现。表示某状态出现。90主要的原因和结果之间的关系有主要的原因和结果之间的关系有:91表示约束条件的符号表示约束条件的符号为了表示原因与原因之间,结果与结果为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。可以附加一些表示约束条件

59、的符号。92 例如,有一个处理单价为例如,有一个处理单价为5角钱的饮料的角钱的饮料的自动售货机软件测试用例的设计。其规格自动售货机软件测试用例的设计。其规格说明如下:说明如下:若若投入投入5角钱或角钱或1元钱的硬币,元钱的硬币,押下押下橙橙汁或啤酒的按钮,则相应的饮料就汁或啤酒的按钮,则相应的饮料就送出来。若售货机送出来。若售货机没有零钱找没有零钱找,则一个显,则一个显示零钱找完的红灯亮,这时在投入示零钱找完的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若元硬币也退出来;若有零钱找有零钱找,则显示,则显示零钱找完的红灯灭,在送出

60、饮料的同零钱找完的红灯灭,在送出饮料的同时退还时退还5角硬币。角硬币。”931)分析这一段说明,列出原因和结果分析这一段说明,列出原因和结果原因原因:1.售货机有零钱找售货机有零钱找 2.投入投入1元硬币元硬币 3.投入投入5角硬币角硬币 4.押下橙汁按钮押下橙汁按钮 5.押下啤酒按钮押下啤酒按钮建立中间结点,表示处理中间状态建立中间结点,表示处理中间状态11.投入投入1元硬币且押下饮料按钮元硬币且押下饮料按钮12.押下橙汁或啤酒的按钮押下橙汁或啤酒的按钮13.应当找应当找5角零钱并且售货机有零钱找角零钱并且售货机有零钱找14.钱已付清钱已付清94 结果:结果:21.售货机零钱找完灯亮售货机零

61、钱找完灯亮 22.退还退还1元硬币元硬币 23.退还退还5角硬币角硬币 24.送出橙汁饮料送出橙汁饮料 25.送出啤酒饮料送出啤酒饮料 2)画出因果图。画出因果图。所有原因结点列在左所有原因结点列在左边,所有结果结点列在右边。边,所有结果结点列在右边。3)由于由于 2 与与 3,4 与与 5 不能同时发生,不能同时发生,分别加上约束条件分别加上约束条件E。4)因果图因果图 5)转换成判定表转换成判定表95 96 97使用各种测试方法的综合策略使用各种测试方法的综合策略n n在任何情况下都必须使用在任何情况下都必须使用边界值分析法边界值分析法。用这种方法设计出测试用例发现程序错用这种方法设计出测

62、试用例发现程序错误的能力最强。误的能力最强。n n必要时用必要时用等价类划分法等价类划分法补充一些测试用补充一些测试用例。例。n n用用错误推测法错误推测法再追加一些测试用例。再追加一些测试用例。n n对照程序逻辑,检查已有测试用例的逻对照程序逻辑,检查已有测试用例的逻辑覆盖程度。如果未达到要求的覆盖标辑覆盖程度。如果未达到要求的覆盖标准,应再补充足够的测试用例。准,应再补充足够的测试用例。98n n如果程序的功能说明中含有输入条件的如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用组合情况,则一开始就可选用因果图法因果图法。99软件测试的策略软件测试的策略测试过程按测试过程按4个步

63、骤进行,即个步骤进行,即单元测试单元测试、组装测试组装测试、确认测试确认测试和和系统测试系统测试。开始是开始是单元测试单元测试,集中对用源代码实现,集中对用源代码实现的每一个程序单元进行测试,检查各个的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。程序模块是否正确地实现了规定的功能。组装测试组装测试把已测试过的模块组装起来,把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构主要对与设计相关的软件体系结构的构造进行测试。造进行测试。100被测被测模块模块单元单元测试测试集成集成测试测试被测被测模块模块单元单元测试测试被测被测模块模块单元单元测试测试确认确认测试测试

64、系统系统测试测试系系统统其其他他元元素素软软件件需需求求设设计计信信息息已已集集成的成的软件软件已已确确认的认的软件软件可交可交付的付的软件软件已经过已经过测试的测试的模块模块101确认测试确认测试则是要检查已实现的软件是否则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。求,以及软件配置是否完全、正确。系统测试系统测试把已经经过确认的软件纳入实把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在际运行环境中,与其他系统成份组合在一起进行测试。一起进行测试。102单元测试单元测试(Unit Testing)单元

65、测试又称模块测试,单元测试又称模块测试,是针对软件设是针对软件设计的最小单位计的最小单位 程序模块程序模块,进行正确性进行正确性检验检验的测试工作。其目的在于发现各模的测试工作。其目的在于发现各模块内部可能存在的各种差错。块内部可能存在的各种差错。单元测试需要单元测试需要从程序的内部结构出发设从程序的内部结构出发设计测试用例计测试用例。多个模块可以平行地独立。多个模块可以平行地独立进行单元测试。进行单元测试。1031.单元测试的内容单元测试的内容在单元测试时,测试者需要依据详细设在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的计说明书和源程序清单,了解该模块的I/O条件和模

66、块的逻辑结构,主要采用白条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。合理的输入,都能鉴别和响应。104模块模块出错处理出错处理独立路径独立路径模块接口模块接口局部数据结构局部数据结构边界条件边界条件105(1)模块接口测试模块接口测试在单元测试的开始,应对在单元测试的开始,应对通过被测模块通过被测模块的数据流的数据流进行测试。测试项目包括:进行测试。测试项目包括:调用本模块的输入参数是否正确;调用本模块的输入参数是否正确;本模块调用子模块时输入给子模块的本模块调用子模块时输入给子模块的参数是否正确;参数是否正确;全局量的定义在各模块中是否一致;全局量的定义在各模块中是否一致;106在做在做内外存交换内外存交换时要考虑:时要考虑:文件属性是否正确;文件属性是否正确;OPEN与与CLOSE语句是否正确;语句是否正确;缓冲区容量与记录长度是否匹配;缓冲区容量与记录长度是否匹配;在进行读写操作之前是否打开了文件;在进行读写操作之前是否打开了文件

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档

相关搜索

关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!