第六章软件测试课件

上传人:无*** 文档编号:241703903 上传时间:2024-07-17 格式:PPT 页数:115 大小:658.50KB
返回 下载 相关 举报
第六章软件测试课件_第1页
第1页 / 共115页
第六章软件测试课件_第2页
第2页 / 共115页
第六章软件测试课件_第3页
第3页 / 共115页
点击查看更多>>
资源描述
第第6章章 软件测试软件测试文档-【教学目标】:【教学目标】:n了解软件测试的目标、常用方法和测试信息流了解软件测试的目标、常用方法和测试信息流n掌握软件测试用例设计方法(白盒法和黑盒法)掌握软件测试用例设计方法(白盒法和黑盒法)n掌握软件测试的过程(单元测试、集成测试、确认测试、掌握软件测试的过程(单元测试、集成测试、确认测试、系统测试)系统测试)n了解程序调试方法了解程序调试方法【重点】:【重点】:n软件测试用例设计方法软件测试用例设计方法n软件测试过程软件测试过程【难点】:【难点】:n软件测试用例设计软件测试用例设计n软件测试过程,主要是单元测试和集成测试过程。软件测试过程,主要是单元测试和集成测试过程。-6.1 6.1 基本概念基本概念软件软件开发过程必须伴有质量保证活动。开发过程必须伴有质量保证活动。软件测试是软件质量保证的关键元素软件测试是软件质量保证的关键元素,代表了规,代表了规约、设计和编码的最终检查。约、设计和编码的最终检查。软件产品最大的成本是检测软件错误、修正软件软件产品最大的成本是检测软件错误、修正软件错误的成本错误的成本。在整个软件开发中在整个软件开发中,测试工作量测试工作量一般占一般占30%30%40%40%,甚至,甚至50%50%。在人命关天的软件在人命关天的软件(如飞机控制、核反应堆等)如飞机控制、核反应堆等)测试所花费的时间往往是其它软件工程活动时间测试所花费的时间往往是其它软件工程活动时间之和的三到五倍之和的三到五倍-6.1.1 检验的手段检验的手段1、动态检验、动态检验 软件测试软件测试从多种角度观察程序运行发现程序中的错误。从多种角度观察程序运行发现程序中的错误。测试的关键是设计测试用例测试的关键是设计测试用例2、静态检验、静态检验指人工评审软件文档或程序,发现其中的错误。指人工评审软件文档或程序,发现其中的错误。效率高效率高,发现错误的比例占,发现错误的比例占8080静态检验也可用计算机辅助完成。静态检验也可用计算机辅助完成。说明:说明:以上两种方法只能发现程序中的错误,不能证明程序以上两种方法只能发现程序中的错误,不能证明程序中不存在错误。中不存在错误。-3、程序正确性证明、程序正确性证明从理论上对程序的正确性进行论证,通过证明得出程序逻从理论上对程序的正确性进行论证,通过证明得出程序逻辑上是正确的。辑上是正确的。通过证明一个程序同它的功能描述是一致的,来确定程序通过证明一个程序同它的功能描述是一致的,来确定程序是正确的。是正确的。该方法理论可行,实际实现却很困难。该方法理论可行,实际实现却很困难。说明:说明:开发过程中可以将以上三种技术相结合使用,对系统开发过程中可以将以上三种技术相结合使用,对系统关键的核心部分采用关键的核心部分采用正确性证明正确性证明,开发过程中每个阶段交,开发过程中每个阶段交付的文档进行付的文档进行人工评审人工评审,程序完成后进行,程序完成后进行软件测试软件测试。-软件测试的问题软件测试的问题软件缺陷是什么?软件缺陷是什么?谁执行测试?谁执行测试?开发者?开发者?单独的测试人员?单独的测试人员?两方面人员?两方面人员?测试什么?测试什么?每个部分都测试?每个部分都测试?测试软件中高风险部分?测试软件中高风险部分?什么时候测试?什么时候测试?怎样测试?怎样测试?测试应进行到什么程度?测试应进行到什么程度?-难以说清的软件缺陷难以说清的软件缺陷古谚:古谚:“一片树叶飘落在森林中没有人听见,一片树叶飘落在森林中没有人听见,谁能说它发出了声音?谁能说它发出了声音?”由于不能报告没有看见的问题,因此,由于不能报告没有看见的问题,因此,没有看见就不能说存在软件缺陷没有看见就不能说存在软件缺陷 “如果软件中的问题没有人发现,那么它如果软件中的问题没有人发现,那么它算不算软件缺陷?算不算软件缺陷?”只有看到了,才能断言软件缺陷,尚未只有看到了,才能断言软件缺陷,尚未发现的软件缺陷只能说是发现的软件缺陷只能说是未知软件缺陷未知软件缺陷。眼眼见见为为实实-6.1.2 软件测试的目标和原则软件测试的目标和原则1、软件测试目标、软件测试目标l预防错误预防错误:几乎不可实现几乎不可实现l发现错误发现错误l软件测试跨越两个阶段软件测试跨越两个阶段编码阶段由程序员完成测试编码阶段由程序员完成测试测试阶段由专门测试人员完成测试阶段由专门测试人员完成l软件测试需要设计一批软件测试需要设计一批典型的、具有代表性典型的、具有代表性的测试用例。的测试用例。-G.J.MyersG.J.Myers在在 中认为中认为:1.1.测试是为了寻找错误而运行程序的过程。测试是为了寻找错误而运行程序的过程。2.2.一个好的测试用例是指很可能找到迄今一个好的测试用例是指很可能找到迄今为止尚未发现的错误的测试。为止尚未发现的错误的测试。3.3.一个成功的测试是揭示了迄今为止尚未一个成功的测试是揭示了迄今为止尚未发现的错误的测试。发现的错误的测试。-E.W.Dijkstra E.W.Dijkstra 指出指出:“程序测试能证明错误的存在程序测试能证明错误的存在,但不能证明错但不能证明错误不存在误不存在.”.”测试的目的是以尽量少的时间和人力尽测试的目的是以尽量少的时间和人力尽可能多的发现程序中的各种错误和缺陷,是可能多的发现程序中的各种错误和缺陷,是为了为了证明程序有错证明程序有错,而不是证明程序无错而不是证明程序无错.-把把证证明明程程序序无无错错当当作作测测试试目目的的不不仅仅是是不不正正确确的的,完完全全做做不不到到的的,而而且且对对做做好好测测试试没没有有任任何何益益处,甚至是十分有害的。处,甚至是十分有害的。软件测试要设法使软件发生故障软件测试要设法使软件发生故障,暴露软件错暴露软件错误。误。测试的测试的“成功成功”与与“失败失败”能能够够发发现现错错误误的的测测试试是是成成功功的的测测试试,否否则则是是失败的测试。失败的测试。-“测测试试的的目目的的是是说说明明程程序序正正确确地地执执行行它它应应有有的的功能功能”这种说法正确吗?这种说法正确吗?例例:程程序序TriangleTriangle,输输入入三三个个整整数数,表表示示一一个个三三角角形形的的三三个个边边长长,该该程程序序产产生生一一个个结结果果,指指出出该该三三角角形形是是等等边边三三角角形形、等等腰腰三三角角形形还还是是不不等边三角形。等边三角形。为为说说明明其其能能正正确确执执行行它它的的功功能能,可可使使用用“测测试试用用例例”(3,4,5),(5,5,6),(6,6,6),”(3,4,5),(5,5,6),(6,6,6),程程序序都都能能给出正确结果,是否就可认为程序是正确的?给出正确结果,是否就可认为程序是正确的?-2、软件测试的原则、软件测试的原则l成立专门的测试小组成立专门的测试小组 将测试与开发分开,由别人来测试程序员编写的程将测试与开发分开,由别人来测试程序员编写的程序序更客观、有效更客观、有效。l测试用例应包括测试输入数据和对应的输出结果两测试用例应包括测试输入数据和对应的输出结果两部分。部分。l设计测试用例时应包括合理的输入和不合理的输入。设计测试用例时应包括合理的输入和不合理的输入。合理输入验证程序正确的输入合理输入验证程序正确的输入不合理输入异常的、临界的、可能引起问题异不合理输入异常的、临界的、可能引起问题异变的输入。变的输入。软件测试必须对系统处理不合理输入的能力进行检软件测试必须对系统处理不合理输入的能力进行检验。验。-l全面检查每一个测试结果全面检查每一个测试结果l集中测试容易出错的程序段集中测试容易出错的程序段 大量测试表明:一段程序中发现错误越多,大量测试表明:一段程序中发现错误越多,可能存在的可能存在的错误概率错误概率就越大。就越大。l严格执行测试计划严格执行测试计划 测试前制定计划,测试中严格执行计划。测试前制定计划,测试中严格执行计划。l保留软件测试文档保留软件测试文档 为维护提供方便为维护提供方便-测试原则:测试原则:软件测试是有风险的行为软件测试是有风险的行为数数量量遗漏软件遗漏软件缺陷数目缺陷数目测试费用测试费用测试中测试中测试后测试后软件每一个软件项目都有一个最优的测量量每一个软件项目都有一个最优的测量量最优测量量最优测量量测试工作量测试工作量-动态测试:动态测试:通过运行软件来检验软件通过运行软件来检验软件 的动态行为和运行结果的的动态行为和运行结果的 正确性。正确性。动态测试的两个基本要素:动态测试的两个基本要素:被测试程序被测试程序测试数据(测试用例)测试数据(测试用例)6.1.3 软件测试常用方法软件测试常用方法-动态测试方法动态测试方法(1)(1)选取定义域有效值选取定义域有效值,或定义域外无效值。或定义域外无效值。(2)(2)对已选取值决定对已选取值决定预期的结果预期的结果(3)(3)用选取值执行程序用选取值执行程序(4)(4)执行结果执行结果与与预期的结果预期的结果相比相比,不吻和则说不吻和则说明程序有错明程序有错-黑盒测试黑盒测试 闭着眼睛测试软件闭着眼睛测试软件软件输入输入不深入代码细节的测试方法称为不深入代码细节的测试方法称为黑盒测试黑盒测试软件测试员充当客户来使用它。软件测试员充当客户来使用它。输出输出-白盒测试白盒测试 带上带上X X光眼镜测试软件光眼镜测试软件?3581322.293419985680302829734315250*(1+0.015)*(1+0.015)360-1)/0.015250*(1+0.015)*(1+0.015)360-1)/0.015 假如知道一个盒子包含一台计算机假如知道一个盒子包含一台计算机,而另一个而另一个盒子是人用纸笔计算盒子是人用纸笔计算,就会选择不同的测试用例就会选择不同的测试用例了解软件的运作方式会影响测试手段了解软件的运作方式会影响测试手段-黑盒测试与白盒测试比较黑盒测试与白盒测试比较u黑盒测试是从用户观点,按规格说明书黑盒测试是从用户观点,按规格说明书要求的输入数据与输出数据的对应关系要求的输入数据与输出数据的对应关系设计测试用例设计测试用例,是根据程序是根据程序外部特征外部特征进进行测试。行测试。它是一种功能测试。它是一种功能测试。u白盒测试是根据程序白盒测试是根据程序内部逻辑结构内部逻辑结构进行进行测试。测试。-黑盒测试与白盒测试优缺点比较黑盒测试与白盒测试优缺点比较 黑盒测试黑盒测试 白盒测试白盒测试优优点点缺缺点点性性质质适用于各阶段测试适用于各阶段测试从产品功能角度测试从产品功能角度测试容易入手生成测试数容易入手生成测试数 据据可构成测试数据使特定程可构成测试数据使特定程 序部分得到测试序部分得到测试有一定的充分性度量手段有一定的充分性度量手段较多工具支持较多工具支持某些代码得不到测试某些代码得不到测试如果规格说明有误,如果规格说明有误,则无法发现则无法发现不易进行充分性测试不易进行充分性测试不易生成测试数据不易生成测试数据(通常通常)无法对未实现规格说明的无法对未实现规格说明的 部分进行测试部分进行测试工作量大,通常只用于单工作量大,通常只用于单 元测试,有应用局限元测试,有应用局限是一种是一种确认确认技术,回答技术,回答“我们在构造一个正确我们在构造一个正确 的系统吗?的系统吗?”是一种是一种验证验证技术,回答技术,回答“我们在正确地构造一个系我们在正确地构造一个系 统吗?统吗?”-如果想用如果想用黑盒法黑盒法或或白盒法白盒法发现程序中所发现程序中所有的错误,必须用有的错误,必须用输入数据的所有可能值输入数据的所有可能值来检查程序是否能产生正确结果。来检查程序是否能产生正确结果。-例例:输入输入 三条边长三条边长 可采用的测试用例数可采用的测试用例数 (设字长设字长1616位位)执行时间执行时间:设测试一次需设测试一次需1ms1ms 共需一万年共需一万年.=2 X2 X2 3X10=2 X2 X2 3X101616161616161414黑盒测试黑盒测试-穷举测试实穷举测试实例例:白盒测试白盒测试 设程序含设程序含5 5个分支个分支,循环次数循环次数20,20,从从A A到到B B的可能路径的可能路径 执行时间执行时间:设测试一次需设测试一次需2ms2ms 穷举测试需穷举测试需5 5亿年亿年.5 5 101020201414A AB B-不论黑盒还是白盒测试都不论黑盒还是白盒测试都不能进行穷尽不能进行穷尽测试测试,所以软件测试不可能发现程序中存所以软件测试不可能发现程序中存在的所有错误在的所有错误,因此需精心设计测试方案因此需精心设计测试方案,力争尽可能少的次数,测出尽可能多的错力争尽可能少的次数,测出尽可能多的错误误.-6.1.4 6.1.4 软件测试信息流软件测试信息流软件软件配置配置测试测试测试测试配置配置测试测试工具工具分析分析结果结果排错排错可靠性可靠性分析分析测试测试结果结果错误错误预期预期结果结果出错率出错率 修正修正的软件的软件预测预测的可的可靠性靠性需求规格说明书需求规格说明书软件设计说明书软件设计说明书 被测源程序被测源程序 测试计划测试计划 测试用例测试用例(测试数据测试数据)测试驱动程序测试驱动程序-n n测试结果分析:测试结果分析:比较实测结果与比较实测结果与预期结果,评价错误是否发生。预期结果,评价错误是否发生。n n排错排错(调试调试):对已经发现的错误对已经发现的错误进行错误定位和确定出错性质,进行错误定位和确定出错性质,并改正这些错误,同时修改相关并改正这些错误,同时修改相关的文档。的文档。n n修正后的文档再测试:修正后的文档再测试:直到通过直到通过测试为止。测试为止。-6.2 6.2 软件评审软件评审 错误发现的错误发现的越早,越容越早,越容易改正,而易改正,而且副作用也且副作用也越少。越少。计划计划需求需求分析分析设设计计编编码码测测试试AB开发前期出现错误的扩展开发前期出现错误的扩展-u评审活动和开发活动并行进行,保证软件质量。评审活动和开发活动并行进行,保证软件质量。u软件评审由软件评审由没有参加系统开发没有参加系统开发工作的、工作的、有丰富开有丰富开发经验发经验、受过软件评审和软件测试良好训练受过软件评审和软件测试良好训练的人的人员参加。员参加。u评审小组由评审小组由310人组成,由开发部门负责人任组人组成,由开发部门负责人任组长。长。-软件评审特点软件评审特点u每个开发阶段都要进行评审,及早发现和改正错每个开发阶段都要进行评审,及早发现和改正错误,可以降低软件开发成本。误,可以降低软件开发成本。u评审小组由开发工作以外人员参加,可以取得良评审小组由开发工作以外人员参加,可以取得良好效果。好效果。u评审在发现错误同时可找到错误原因,评审与测评审在发现错误同时可找到错误原因,评审与测试相比更试相比更容易实现排错。容易实现排错。u评审有相应条款可以遵循,效率高。评审有相应条款可以遵循,效率高。u评审与开发活动同时进行,及早发现错误以便开评审与开发活动同时进行,及早发现错误以便开发人员修改方案。发人员修改方案。-6.3.1 6.3.1 白盒法白盒法白盒法设计最常用的是白盒法设计最常用的是逻辑覆盖法逻辑覆盖法 对程序逻辑结构的覆盖对程序逻辑结构的覆盖(1)(1)语句覆盖语句覆盖(2)(2)判定覆盖判定覆盖(3)(3)条件覆盖条件覆盖(4)(4)判定判定/条件覆盖条件覆盖(5)(5)条件组合覆盖条件组合覆盖(6)(6)路径覆盖路径覆盖6.36.3测试用例设计测试用例设计-1 1、语句覆盖、语句覆盖 使程序中每个语句至少执行一次使程序中每个语句至少执行一次开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce只需设计一个测试用例只需设计一个测试用例:输入数据:输入数据:A=2,B=0,X=4 即达到了语句覆盖即达到了语句覆盖;语句覆盖是语句覆盖是最弱最弱的逻辑覆盖的逻辑覆盖-2 2、判定覆盖判定覆盖(分支覆盖分支覆盖)使每个判定的真假分支都至少执行一次使每个判定的真假分支都至少执行一次开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce-例例:可设计两组测试用例可设计两组测试用例:A=2,B=0,X=4 可覆盖可覆盖c、e分支分支 A=1,B=1,X=1 可覆盖可覆盖b、d分支分支 两组测试用例可覆盖所有判定的真假分支两组测试用例可覆盖所有判定的真假分支 当第二个表达式中当第二个表达式中“X1”“X1”错写成错写成“X1”“X1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce第一判定表达式第一判定表达式:设条件设条件 A1 A1 取真取真 记为记为T1T1 假假 F1F1 条件条件 B=0 B=0 取真取真 记为记为T2T2 假假 F2F2第二判定表达式第二判定表达式:设条件设条件 A=2 A=2 取真取真 记为记为T3T3 假假 F3F3 条件条件 X1 X1 取真取真 记为记为T4T4 假假 F4F4-测试用例测试用例 通过通过 满足的满足的 覆盖覆盖 A B X 路径路径 条件条件 分支分支 1 0 3 a b e T1,T2,T3,T4 b,e 2 1 1 a b e T1,T2,T3,T4 b,e 两个测试用例覆盖了四个条件八种可能取值。两个测试用例覆盖了四个条件八种可能取值。条件覆盖比判定覆盖要强条件覆盖比判定覆盖要强 未覆盖未覆盖c c、d d分支,不满足判定覆盖的要求分支,不满足判定覆盖的要求.条件覆盖不一定包含判定覆盖条件覆盖不一定包含判定覆盖 判定覆盖也不一定包含条件覆盖判定覆盖也不一定包含条件覆盖 -4 4、判定、判定/条件覆盖条件覆盖 选取足够多的选取足够多的测试用例,使判断测试用例,使判断中的每个条件的所中的每个条件的所有可能取值至少执有可能取值至少执行一次,同时每个行一次,同时每个判断本身的所有可判断本身的所有可能判断结果至少执能判断结果至少执行一次行一次.开始开始(A1)AND(B=0)(A=2)OR(X1)返回返回X=X/AX=X+1FFTTabdce满足条件满足条件:T1,T1,T2,T2 T3,T3 T4,T4-测试用例测试用例 通过通过 满足的条件满足的条件 覆盖覆盖 A B X 路径路径 分支分支 2 0 4 ace T1,T2,T3,T4 c,e 2 0 4 ace T1,T2,T3,T4 c,e 1 1 1 abd T1,T2,T3,T4 b,d 1 1 1 abd T1,T2,T3,T4 b,d 能同时满足判定、条件两种覆盖标准的取值能同时满足判定、条件两种覆盖标准的取值 -5 5、条件组合覆盖、条件组合覆盖 所有可能的条件取值组合至少执行一次所有可能的条件取值组合至少执行一次 A1,B=0 A1,B0 A 1,B=0 A 1,B0 A=2,X1 A=2,X 1 A2,X1 A2,X 1-测试用例测试用例 通过通过 满足的满足的 覆盖覆盖 A B X A B X 路径路径 条件条件 分支分支 2 0 4 a c e T1,T2,T3,T4 c,e 2 0 4 a c e T1,T2,T3,T4 c,e 2 1 1 a b e T1,T2,T3,T4 b,e 2 1 1 a b e T1,T2,T3,T4 b,e 1 0 2 a b d T1,T2,T3,T4 b,d 1 0 2 a b d T1,T2,T3,T4 b,d 1 1 1 a b d T1,T2,T3,T4 b,d 1 1 1 a b d T1,T2,T3,T4 b,d 满足条件组合覆盖,一定满足判定覆盖、条件满足条件组合覆盖,一定满足判定覆盖、条件覆盖、判定覆盖、判定/条件覆盖。条件覆盖。但是它不能穷尽所有路径,如但是它不能穷尽所有路径,如acdacd-6 6、路径覆盖、路径覆盖 覆盖程序中每一条可能的路径覆盖程序中每一条可能的路径 测试用例测试用例 通过通过 满足的满足的 覆盖覆盖 A B X 路径路径 条件条件 分支分支 1 1 1 abd T1,T2,T3,T4 b,d1 1 1 abd T1,T2,T3,T4 b,d 1 1 2 abe T1,T2,T3,T4 b,e 1 1 2 abe T1,T2,T3,T4 b,e 3 0 1 acd T1,T2,T3,T4 c,d 3 0 1 acd T1,T2,T3,T4 c,d 2 0 4 ace T1,T2,T3,T4 c,e 2 0 4 ace T1,T2,T3,T4 c,e-说明:说明:路径覆盖保证程序中所有路径都至少执行路径覆盖保证程序中所有路径都至少执行一次,它是很强的逻辑覆盖标准。一次,它是很强的逻辑覆盖标准。但是,它没有考虑到表达式中条件的各种但是,它没有考虑到表达式中条件的各种可能组合。可能组合。在实际设计中,将路径覆盖和条件组合覆在实际设计中,将路径覆盖和条件组合覆盖结合使用。盖结合使用。-1 1、等价类划分法(等价分配)、等价类划分法(等价分配)把把所所有有可可能能的的输输入入数数据据(有有效效的的和和无无效效的的)划划分分成成若若干干个个等等价价的的子子集集(称称为为等等价价类类或或等等价价区区间间),使使得得每每个个子子集集中中的的一一个个典典型型值值在在测测试试中中的的作作用用与与这这一一子子集集中中所所有有其其它它值的作用相同。值的作用相同。可从每个子集中选取一组数据来测试程序可从每个子集中选取一组数据来测试程序6.3.26.3.2黑盒法测试用例设计黑盒法测试用例设计-如何划分等价类?如何划分等价类?有效等价类有效等价类(合理等价类合理等价类)无效等价类无效等价类(不合理等价类不合理等价类)划分等价类的标准:划分等价类的标准:覆盖覆盖不相交不相交代表性代表性-划分等价类的规则划分等价类的规则 (1)(1)如果输入条件规定了取值范围,可定义一个有如果输入条件规定了取值范围,可定义一个有 效等价类和两个无效等价类。效等价类和两个无效等价类。例例 输入值是学生成绩,范围是输入值是学生成绩,范围是0 01001000 1000 100 有效等价类有效等价类00成绩成绩100100无效等价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩00(2)(2)如果输入条件代表集合的某个元素,则可定义一个如果输入条件代表集合的某个元素,则可定义一个有效等价类和一个无效等价类。有效等价类和一个无效等价类。-(3)(3)如如规规定定了了输输入入数数据据的的一一组组值值,且且程程序序对对不不同同输输入入值值做做不不同同处处理理,则则每每个个允允许许的的输输入入值值是是一一个个有有效效等等价价类类,并并有有一一个个无无效效等等价价类类(所所有有不不允允许许的的输输入入值的集合值的集合)。【例例】:输输入入条条件件说说明明学学历历可可为为:专专科科、本本科科、硕硕士士、博博士士四四种种之之一一,则则分分别别取取这这四四个个值值作作为为四四个个有有效效等等价价类类,另另外外把把四四种种学学历历之之外外的的任任何何学学历历作作为为无无效等价类效等价类-(4)(4)如果规定了输入数据必须遵循的规则,可确定如果规定了输入数据必须遵循的规则,可确定 一个有效等价类(符合规则)和若干个无效等价一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则类(从不同角度违反规则)。【例】【例】c c语言中规定一个语句必须以分号语言中规定一个语句必须以分号“;”“;”结束,结束,以以“;”“;”结束的语句集合是一个结束的语句集合是一个有效等价类有效等价类,以,以“,”“”“、”“”“:”“”“!”等结束的语句集合是等结束的语句集合是若干个若干个无效等价类无效等价类。(5)(5)如已划分的等价类各元素在程序中的处理方式不如已划分的等价类各元素在程序中的处理方式不同,则应将此等价类进一步划分成更小的等价类。同,则应将此等价类进一步划分成更小的等价类。-用等价类划分法设计测试用例步骤:用等价类划分法设计测试用例步骤:(1)(1)形形成成等等价价类类表表,每每一一等等价价类类规规定定一一个个唯唯一一的的编号编号;等价类表等价类表输入条件输入条件有效等价类有效等价类 无效等价类无效等价类-(2)(2)设计一设计一测试用例测试用例,使其,使其尽可能多地尽可能多地覆盖尚覆盖尚未覆盖的有效等价类,重复这一步骤,直未覆盖的有效等价类,重复这一步骤,直到所有有效等价类均被测试用例所覆盖;到所有有效等价类均被测试用例所覆盖;(3)(3)设计一新设计一新测试用例测试用例,使其,使其只覆盖一个无效只覆盖一个无效等价类等价类,重复这一步骤直到所有无效等价,重复这一步骤直到所有无效等价类均被覆盖。类均被覆盖。-例例:某报表处理系统要求用户某报表处理系统要求用户输入输入处理报表处理报表 的的日期日期,日期限制在,日期限制在20032003年年1 1月至月至20082008年年 12 12月,即系统只能对该段期间内的报表月,即系统只能对该段期间内的报表 进行处理,如日期不在此范围内,则显进行处理,如日期不在此范围内,则显 示输入错误信息。示输入错误信息。系统日期规定由年、月的系统日期规定由年、月的6 6位数字字符组位数字字符组 成,前四位代表年,后两位代表月。成,前四位代表年,后两位代表月。如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例,来测试程序的日期检查功能?来测试程序的日期检查功能?-第一步:等价类划分第一步:等价类划分输入条件输入条件 有效等价类有效等价类 无效等价类无效等价类 报表日期的报表日期的类型及长度类型及长度6 6位数字字符位数字字符(1)(1)有非数字字符有非数字字符 (4)(4)少于少于6 6个数字字符个数字字符 (5)(5)多于多于6 6个数字字符个数字字符 (6)(6)年份范围年份范围在在2003200320082008之间之间 (2)(2)小于小于20032003 (7)(7)大于大于20082008 (8)(8)月份范围月份范围在在1 11212之间之间(3)(3)“报表日期报表日期”输入条件的等价类表输入条件的等价类表小于小于1 1 (9)(9)大于大于1212 (10)(10)-第二步:为有效等价类设计测试用例第二步:为有效等价类设计测试用例 测试数据 期望结果 覆盖范围200306200306等价类等价类(1)(2)(3)(1)(2)(3)输入有效输入有效对表中编号为对表中编号为1,2,31,2,3的的3 3个有效等价类用一个测试用例个有效等价类用一个测试用例覆盖:覆盖:(1)(1)6 6位数字字符位数字字符(2)(2)年在年在2003200320082008之间之间 (3)(3)月在月在1 11212之间之间-第三步:第三步:为每一个无效等价类设至少设计一个测试用例为每一个无效等价类设至少设计一个测试用例 测试数据 期望结果 覆盖范围003003MAYMAY等价类等价类(4)(4)输入无效输入无效2003520035等价类等价类(5)(5)输入无效输入无效20030052003005等价类等价类(6)(6)输入无效输入无效200120010505等价类等价类(7)(7)输入无效输入无效200920090505等价类等价类(8)(8)输入无效输入无效200320030000等价类等价类(9)(9)输入无效输入无效200320031313等价类等价类(10)(10)输入无效输入无效不能出现相同不能出现相同的测试用例的测试用例本例的本例的1010个等价类至个等价类至少需要少需要8 8个测试用例个测试用例-2 2、边界值分析法、边界值分析法 根据被测程序的功能,根据被测程序的功能,选择一些边界值做测试选择一些边界值做测试数据。数据。被测试被测试子子 域域测试内点测试内点测试外点测试外点 如果在悬崖峭壁边如果在悬崖峭壁边可以自信地安全行走,可以自信地安全行走,平地就不在话下。平地就不在话下。如果软件在能力达如果软件在能力达到极限时能够运行,那到极限时能够运行,那么在正常情况下就不会么在正常情况下就不会出什么问题出什么问题。软件边界与悬崖很类似-边界值分析法与等价类划分法区别边界值分析法与等价类划分法区别(1)(1)边界值分析不是从某等价类中随便挑一个边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界作为代表,而是使这个等价类的每个边界都要作为测试条件。都要作为测试条件。(2)(2)边界值分析不仅考虑输入条件,还要考虑边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。输出空间产生的测试情况。-边界值分析法设计规则边界值分析法设计规则u如果输入条件规定了值的范围,应取刚好在边界上、如果输入条件规定了值的范围,应取刚好在边界上、稍大于和稍小于这个边界的数据作测试用例。稍大于和稍小于这个边界的数据作测试用例。如:输入值范围在如:输入值范围在“15”,则选取,则选取1、5、1.01、0.99、5.01和和4.99作为测试数据。作为测试数据。u如果输入条件规定了数据的个数,则用最大个数、如果输入条件规定了数据的个数,则用最大个数、最小个数、比最大个数大最小个数、比最大个数大1、比最小个数小、比最小个数小1的数设的数设计测试用例。计测试用例。如:输入文件包含如:输入文件包含“1255”个记录,则选取有个记录,则选取有1、255、0、256个记录文件作为测试数据。个记录文件作为测试数据。-u如果程序规格说明给出的输入域或输出域是有序如果程序规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),应取有序集合集合(如有序表、顺序文件等),应取有序集合中的第一个元素和最后一个元素作测试用例。中的第一个元素和最后一个元素作测试用例。u如果程序规格说明中规定使用一个内部数据结构,如果程序规格说明中规定使用一个内部数据结构,则应当选择该内部数据结构的边界上的值作为测则应当选择该内部数据结构的边界上的值作为测试用例。试用例。如:规定使用一个数组如:规定使用一个数组A50,则应选择,则应选择A0和和A49作为测试数据。作为测试数据。-输入输入条件条件报表日报表日期的类期的类型及长型及长度度1 1个数字字符个数字字符5 5个数字字符个数字字符7 7个数字字符个数字字符有有1 1个非数字字符个非数字字符全部是非数字字符全部是非数字字符6 6个数字字符个数字字符显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错输入有效输入有效日期日期范围范围月份月份范围范围“报表日期报表日期”边界值分析法测试用边界值分析法测试用例例测试用例说明测试用例说明测试数据测试数据 期望结果期望结果选取理由选取理由5 52003520035200300520030052003.52003.5MAY-MAY-200305200305月份为月份为1 1月月月份为月份为1212月月月份月份11212200301200301200312200312200300200300200313200313200301200301200812200812200300200300200813200813输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错在有效范围在有效范围边界上选取边界上选取数据数据仅有仅有1 1个合法字符个合法字符比有效长度少比有效长度少1 1比有效长度多比有效长度多1 1只有只有1 1个非法字符个非法字符6 6个非法字符个非法字符类型及长度均有效类型及长度均有效最小日期最小日期最大日期最大日期刚好小于最小日期刚好小于最小日期刚好大于最大日期刚好大于最大日期最小月份最小月份最大月份最大月份刚好小于最小月份刚好小于最小月份刚好大于最大月份刚好大于最大月份-根据经验、直觉和预感来进行测试根据经验、直觉和预感来进行测试例如:例如:u一定要考虑建立处理下列等价类一定要考虑建立处理下列等价类:缺省值缺省值空白空白空值空值零值零值无输入条件无输入条件u在已经找到软件缺陷的地方再找找在已经找到软件缺陷的地方再找找3 3、错误推测法、错误推测法-1 1、软件测试的过程、软件测试的过程单元单元测试测试被测被测模块模块集成集成测试测试设计设计信息信息单元单元测试测试被测被测模块模块单元单元测试测试被测被测模块模块测试过测试过的模块的模块确认确认测试测试系统系统测试测试软件软件需求需求其它系其它系统元素统元素装配装配好的软件好的软件 确认确认的软件的软件可运可运行的行的软件软件6.46.4测试的过程与策略测试的过程与策略-2 2、软件测试策略、软件测试策略单元测试单元测试U UC CD DR RS SI IV VSTST集成测试集成测试确认测试确认测试系统测试系统测试系统工程系统工程软件需求分析软件需求分析软件设计软件设计代码编写代码编写-软件测试与软件开发过程的关系软件测试与软件开发过程的关系-1 1、单元测试的内容、单元测试的内容主要从模块的主要从模块的五个基本特性五个基本特性来测试来测试模块模块错误处理错误处理模块接口模块接口局部数局部数据结构据结构 重要的重要的执行路径执行路径边界条件边界条件6.4.1单元测试单元测试-u模块接口模块接口 通过通过模块接口的数据流模块接口的数据流进行测试。包括检验模块进行测试。包括检验模块的形式参数数目、次序、类型与调用实参的数目的形式参数数目、次序、类型与调用实参的数目次序和类型是否匹配等。次序和类型是否匹配等。u局部数据结构局部数据结构 局部数据结构容易出错,包括:不正确的说明和局部数据结构容易出错,包括:不正确的说明和初始化、错误的默认值、不相容的数据类型等。初始化、错误的默认值、不相容的数据类型等。u重要路径重要路径 对重要的执行路径进行检验,发现由于不正确的对重要的执行路径进行检验,发现由于不正确的计算、不适当的控制流循环终止条件、不正确循计算、不适当的控制流循环终止条件、不正确循环变量被错误的修改等造成的错误。环变量被错误的修改等造成的错误。-u错误处理错误处理 设计适当的错误处理模块,当程序出错时能执行设计适当的错误处理模块,当程序出错时能执行错误处理模块。错误处理模块。u边界条件边界条件 软件在边界上容易实效,因此对边界条件的检验软件在边界上容易实效,因此对边界条件的检验较重要。较重要。-2 2、单元测试的步骤、单元测试的步骤 单元测试在编码阶段进行。单元测试在编码阶段进行。模块不是独立的程序模块不是独立的程序,自己不能运行自己不能运行,要靠其它要靠其它部分来调用和驱动部分来调用和驱动,要为每个单元测试开发两要为每个单元测试开发两类辅助测试模块:类辅助测试模块:(1)(1)驱动模块驱动模块(驱动程序驱动程序):模拟被测模块的上级调用模块模拟被测模块的上级调用模块 (2)(2)桩模块桩模块(测试存根、连接程序测试存根、连接程序):):模拟被测模块的下级被调用模块模拟被测模块的下级被调用模块-单元测试的测试环境举例单元测试的测试环境举例:B BA AC CD DE E待测试模块待测试模块-单元测试的测试环境举例单元测试的测试环境举例:被测模块被测模块 B B 驱动模块驱动模块(模拟模块模拟模块A)A)桩模块桩模块(测试存根测试存根)(模拟模块模拟模块E)E)测试用例测试用例测试结果测试结果许多模块不能用简单的软件进行充分的单元测试许多模块不能用简单的软件进行充分的单元测试,此时此时,完全的测试可放到集成测试阶段再进行。完全的测试可放到集成测试阶段再进行。-集成测试集成测试(组装测试组装测试)将模块按照总体设计时的要求组装成子系统将模块按照总体设计时的要求组装成子系统或整个系统进行测试。或整个系统进行测试。集成测试需考虑的问题集成测试需考虑的问题:数据穿越接口可能丢失数据穿越接口可能丢失一模块可能破坏另一模块功能一模块可能破坏另一模块功能子模块组合起来是否达到了预期要求子模块组合起来是否达到了预期要求全局数据结构是否被异常修改全局数据结构是否被异常修改误差累积问题误差累积问题6.4.2 集成测试集成测试-集成测试方法集成测试方法 通常采用黑盒测试技术通常采用黑盒测试技术 实施策略实施策略:非渐增式测试非渐增式测试渐增式测试渐增式测试 深度优先深度优先广度优先广度优先自顶向下集成自顶向下集成自底向上集成自底向上集成混合式集成混合式集成-1 1、非渐增式集成测试、非渐增式集成测试 一次性的组装测试一次性的组装测试 分别对每个模块进行单元测试后,再把所有模分别对每个模块进行单元测试后,再把所有模块按总体设计要求放在一起进行测试。块按总体设计要求放在一起进行测试。-例:例:其中其中 d1 d1d5d5:表示驱动模块:表示驱动模块 s1 s1s5s5:表示桩模块:表示桩模块-非渐增式集成测试优缺点非渐增式集成测试优缺点优点:所有模块单元测试可以同时进行,缩短测试时间所有模块单元测试可以同时进行,缩短测试时间缺点:模块间接口问题只有在全部模块一次性组合测模块间接口问题只有在全部模块一次性组合测试中才能发现,试中才能发现,错误发现晚错误发现晚。错误可以出现在任何两个模块接口处,错误的错误可以出现在任何两个模块接口处,错误的定位和修改比较困难定位和修改比较困难。-2 2、渐增式集成测试、渐增式集成测试 首首先先对对一一个个个个模模块块进进行行单单元元测测试试,然然后后将将这这些些模模块块逐逐步步组组装装成成较较大大的的系系统统,在在组组装装的的过过程程中中边连接边测试,以发现连接过程中产生的问题。边连接边测试,以发现连接过程中产生的问题。u自顶向下集成测试自顶向下集成测试 将将模模块块按按程程序序结结构构,采采用用广广度度优优先先或或深深度度优优先先的策略,沿控制层次自顶向下进行测试。的策略,沿控制层次自顶向下进行测试。-自顶向下集成测试举例自顶向下集成测试举例:模块测试模块测试结合顺序结合顺序ADBECF深度优先深度优先:A:A、B B、E E、C C、D D、F F广度优先广度优先:A:A、B B、C C、D D、E E、F F-举例举例:(:(深度优先深度优先)A测试测试 AS2S2S1S1S3S3A加入加入BS2S2BS3S3S4S4A加入加入ES2S2BS3S3EA加入加入CCBS3S3E加入加入FCBDEAF加入加入DCBDEAS5S5-u自底向上集成测试自底向上集成测试 从程序模块的最底层开始组装测试。从程序模块的最底层开始组装测试。测试过程不需设计桩模块,而是设计驱动模块,测试过程不需设计桩模块,而是设计驱动模块,由驱动模块控制最底层模块的并行测试,然后由驱动模块控制最底层模块的并行测试,然后用实际模块代替驱动模块。用实际模块代替驱动模块。-自底向上集成测试举例自底向上集成测试举例:A AC CB BD DF FE EE Ed d1 1C Cd d3 3F Fd d4 4B Bd d2 2E ED Dd d5 5F F-McD1MaMbD2D3-自顶向下自顶向下自底向上自底向上 优点优点可在测试早期实现可在测试早期实现并验证系统主要功并验证系统主要功能,尽早发现上层能,尽早发现上层模块接口错误。模块接口错误。设计测试用例容易设计测试用例容易建立驱动模块比桩模建立驱动模块比桩模块容易块容易 缺点缺点(1 1)要建立桩模块)要建立桩模块模拟实际子模块功模拟实际子模块功能比较困难能比较困难(2 2)涉及复杂算法)涉及复杂算法和容易出问题的模和容易出问题的模块在底层块在底层只有到最后,程序才只有到最后,程序才能作为一个整体,之能作为一个整体,之前看不到系统程序总前看不到系统程序总体概貌体概貌-u3 3、混合集成测试方法、混合集成测试方法对软件结构的上层模块使用自顶向下集成测对软件结构的上层模块使用自顶向下集成测试,对下层模块使用自底向上集成测试试,对下层模块使用自底向上集成测试可兼有两种方式的优点。可兼有两种方式的优点。进行集成测试应识别出关键模块,尽早得到测试进行集成测试应识别出关键模块,尽早得到测试关键模块特征:关键模块特征:满足多项软件要求满足多项软件要求含有高层控制功能(位于程序结构高层)含有高层控制功能(位于程序结构高层)模块本身是复杂的或容易出错模块本身是复杂的或容易出错有确定性能要求有确定性能要求-6.4.3 6.4.3 确认测试确认测试有效有效 性性测试测试软件软件配置配置审查审查管理管理机构机构裁决裁决选择测试人员选择测试人员软件计划软件计划用户文档用户文档开发文档开发文档源程序文本源程序文本支持环境支持环境交用户交用户 运行运行 维护维护测试测试报告报告软件软件配置配置构造测试用例构造测试用例实际运行测试实际运行测试专家专家鉴定鉴定 会会也称为验收测试或有效性测试。也称为验收测试或有效性测试。-1 1、有效性测试、有效性测试 在模拟的环境(可能就是开发的环境)下,在模拟的环境(可能就是开发的环境)下,运用黑盒测试的方法,验证被测软件是否满足需运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。求规格说明书列出的需求。选择测试人员选择测试人员 用户参与测试用户参与测试制定测试计划制定测试计划 规划测试的内容,设计测试过程规划测试的内容,设计测试过程构造测试用例构造测试用例实际运行测试实际运行测试-2 2、软件配置审查与验收、软件配置审查与验收 目的:目的:保证软件配置的所有成分都齐全,各方面的保证软件配置的所有成分都齐全,各方面的质量都符合要求,而且已经编排好分类的目录,便质量都符合要求,而且已经编排好分类的目录,便于维护工作。于维护工作。确认确认测试测试软件配软件配置审查置审查主管部主管部门批准门批准集成的软件集成的软件软件需求软件需求用户文档用户文档设计文档设计文档源程序源程序测试文档测试文档交付的交付的软软 件件确认的确认的软软 件件确认的确认的配配 置置-3 3、确认测试结果、确认测试结果测试完成后可能出现两种情况测试完成后可能出现两种情况:(1)(1)软件的功能和性能与用户要求一致,系统被用软件的功能和性能与用户要求一致,系统被用户接受。户接受。(2)(2)系统的功能和性能与用户需求差距大,列出软系统的功能和性能与用户需求差距大,列出软件缺陷表件缺陷表,与用户协商解决。与用户协商解决。-4 4、测试和测试和测试测试u测试测试(Alpha)(Alpha)测试工作在开发者的场所由用户进行测试工作在开发者的场所由用户进行,在在开发者关注和控制的环境下进行。开发者关注和控制的环境下进行。u测试测试(Beta)(Beta)由部分用户在实际环境下进行的测试。由部分用户在实际环境下进行的测试。只有当只有当测试达到一定的可靠程度时,才测试达到一定的可靠程度时,才能开始能开始测试。测试。-u定义定义 通过确认测试的软件,与通过确认测试的软件,与计算机硬件、外设、计算机硬件、外设、某些支持软件、数据和人员某些支持软件、数据和人员等系统元素结合在一等系统元素结合在一起,在实际运行环境下,对计算机系统进行一系起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。列的组装测试和确认测试。u目的目的 测试软件安装到实际应用系统中后,能够与测试软件安装到实际应用系统中后,能够与系统的其他部分协调工作,以及对系统运行过程系统的其他部分协调工作,以及对系统运行过程中可能出现各种情况处理的能力。中可能出现各种情况处理的能力。6.4.4 6.4.4 系统测试系统测试-(1)(1)恢复测试恢复测试 检查系统的容错能力。检查系统的容错能力。采用各种方法强使软件出现故障采用各种方法强使软件出现故障,验证软件能否验证软件能否尽快地完成恢复。尽快地完成恢复。(2)(2)安全测试安全测试 检查系统对非法侵入的防范能力。检查系统对非法侵入的防范能力。设计测试用例设计测试用例,突破软件安全保护机构的安全保突破软件安全保护机构的安全保密措施密措施,检验系统预防机制的漏洞。检验系统预防机制的漏洞。-(3)(3)强度测试强度测试 检查程序在一些极限条件下的运行情况。检查程序在一些极限条件下的运行情况。检验系统能力最高能达到的实际限度检验系统能力最高能达到的实际限度,让系统处于资源的异常数量、异常频率、异常批量让系统处于资源的异常数量、异常频率、异常批量的条件下测试系统的承受能力。的条件下测试系统的承受能力。一般比平常限度高一般比平常限度高5-105-10倍的限度做测试用例。倍的限度做测试用例。(4)(4)性能测试性能测试 检查系统是否满足需求说明中规定的性能。检查系统是否满足需求说明中规定的性能。设计测试用例,并记录软件运行性能,与性能要设计测试用例,并记录软件运行性能,与性能要求比较,检验是否达到性能要求规格。求比较,检验是否达到性能要求规格。-6.6 6.6 程序调试(程序调试(DebugDebug)n n软件调试是在进行了成功的测试之后才软件调试是在进行了成功的测试之后才开始的工作。它与软件测试不同,调试开始的工作。它与软件测试不同,调试的任务是的任务是进一步诊断和改正程序中潜在进一步诊断和改正程序中潜在的错误。的错误。n n调试活动由两部分组成:调试活动由两部分组成:确定程序中可疑错误的确切性质和确定程序中可疑错误的确切性质和位置位置。对程序对程序(设计、编码设计、编码)进行修改,排进行修改,排除这个错误除这个错误。-n n调试工作是一个具有很强技巧性的工作。调试工作是一个具有很强技巧性的工作。n n软件运行失效或出现问题,往往只是潜软件运行失效或出现问题,往往只是潜在错误的外部表现,在错误的外部表现,而外部表现与内在而外部表现与内在原因之间常常没有明显的联系。如果要原因之间常常没有明显的联系。如果要找出真正的原因,排除潜在的错误,不找出真正的原因,排除潜在的错误,不是一件易事。是一件易事。n n可以说,可以说,调试是通过现象,找出原因的调试是通过现象,找出原因的一个思维分析的过程一个思维分析的过程。-调试的步骤调试的步骤(1)(1)从错误的外部表现形式入手,确定从错误的外部表现形式入手,确定程序中出错位置;程序中出错位置;(2)(2)研究有关部分的程序,找出错误的研究有关部分的程序,找出错误的内在原因;内在原因;(3)(3)修改设计和代码,以排除这个错误;修改设计和代码,以排除这个错误;(4)(4)重复进行暴露了这个错误的原始测重复进行暴露了这个错误的原始测试或某些有关测试。试或某些有关测试。-错误现场错误现场结果结果执行案例执行案例改正改正测试用例测试用例调试调试已识别已识别的原因的原因被怀疑被怀疑的原因的原因回归回归测试测试附加附加测试测试-6.6.1 调试技术调试技术 调试的关键在于推断程序内部的错调试的关键在于推断程序内部的错误位置及原因。误位置及原因。1、试探法、试探法通过分析运行程序时数据信息的变化情通过分析运行程序时数据信息的变化情况查找错误原因。况查找错误原因。n n 输出存储器内容输出存储器内容 通过内存全部打印来调试,在这大量通过内存全部打印来调试,在这大量的数据中寻找出错的位置。的数据中寻找出错的位置。效率低效率低-n n采用输出语句采用输出语句 在程序特定部位设置打印语句,把打印在程序特定部位设置打印语句,把打印语句插在出错的源程序的各个关键部位。语句插在出错的源程序的各个关键部位。优点:优点:可以显示程序的动态行为,检验某事件发可以显示程序的动态行为,检验某事件发生后变量是否发生变化。生后变量是否发生变化。缺点:缺点:可能输出大量需要分析信息;可能输出大量需要分析信息;插入语句需要修改源代码,引入新的错误插入语句需要修改源代码,引入新的错误适用小程序适用小程序-n n 使用自动调试工具使用自动调试工具 利用某些自动的程序调试工具,分析程序的利用某些自动的程序调试工具,分析程序的动态过程。动态过程。例如:例如:利用程序设计语言提供调试功能输利用程序设计语言提供调试功能输出有关语句执行、子程序调用的踪迹;出有关语句执行、子程序调用的踪迹;利用专门调试工具设置断点,使程序挂起利用专门调试工具设置断点,使程序挂起 试探法(蛮干法)试探法(蛮干法)最低效的调试方法最低效的调试方法-2、回溯法调试、回溯法调试 调试人员分析错误征兆,确定最先发现调试人员分析
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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