版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022年3月10日1信息科学与工程学院信息科学与工程学院2022年3月10日2第7章 实现u 实现:编码和测试统称为实现 u 编码:就是把软件设计结果翻译成用某种程序设计语言书写的程序 u 程序设计语言: 人与计算机通信的基本工具,指挥计算机按人的意志工作u19461954: 机器语言和汇编语言,与硬件操作一一对应u1954: 第一个高级语言 FORTRAN 语言u高级语言的种类:u 基础语言-Fortran, Basic, Cobol,Algolu 结构化语言-Pl/1, Pascal, C, Adau专用语言-特殊应用如 LISP, Prolog2022年3月10日37.1 编码选择语言
2、的理想标准为便于程序测试和维护,减少生存周期的总成本,选用高级语言应用理想的模块化机制,以及可读性好的控制结构和数据结构。为便于调试和提高软件可靠性,应选用编译程序能够尽可能多地发现程序中错误的语言。为降低软件开发和维护成本,选用的语言应具有良好的独立的编译机制。2022年3月10日47.1.1 选择程序设计语言选用语言综合考虑标准系统用户的要求 可以使用的编译程序 可以得到的软件工具 程序员的知识 软件可移植性要求 软件应用领域 工程规模 如果所开发的系统由用户负责维护,用户通常要求用他们熟悉的语言书写程序。 运行目标系统的环境中可以提供的编译程序往往限制了可以选用的语言的范围。 如果某种语
3、言有支持程序开发工具可以利用,则目标的实现和验证都变得比较容易。 标准化程度高、程序可移植性好是选择语言的重要标准 最好是选择程序员最熟悉的语言如果工程规模庞大,应设计供该项目专用的程序设计语言FORTRAN语言适合工程和科学计算;C语言适合系统和实时应用领域。 2022年3月10日57.1.2 编码风格u源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准,为了做到这一点,应该遵循下述规则:程序内部的文档(包括恰当的标识符、适当的注解和程序的视觉组织等 )恰当的标识符n选取含义鲜明的名字,使它能正确地提示程序对象所代表的实体。n如果使用缩写,那么缩写规则应该一致,并且应该给每个名字加注解
4、。2022年3月10日67.1.2 编码风格恰当的注解n通常在每个模块开始处有一段序言性的注解,简要描述模块的功能、主要算法、接口特点、重要数据以及开发简史。n插在程序中间与一段程序代码有关的注解,主要解释包含这段代码的必要性。n对于用高级语言书写的源程序,不需要用注解的形式把每个语句翻译成自然语言,应该利用注解提供一些额外的信息。n应该用空格或空行清楚地区分注解和程序。 程序的视觉组织n程序清单的布局对于程序的可读性也有很大影响,应该利用适当的阶梯形式使程序的层次结构清晰明显2022年3月10日77.1.2 编码风格数据说明 编程序时需确定数据说明的风格。为了使数据更容易理解和维护,应该遵循
5、一些比较简单的原则:v数据说明的次序应该标准化 ,如按照数据结构或数据类型确定说明的次序 ;v当多个变量名在一个语句中说明时,应该按字母顺序排列这些变量。 v如果设计时使用了一个复杂的数据结构,则应该用注释说明用程序设计语言实现这个数据结构的方法和特点。 含义及规则2022年3月10日87.1.2 编码风格语句构造语句构造基本规则不要为了节省空间而把多个语句写在同一行 尽量避免复杂的条件测试 尽量减少对“非”条件的测试 避免大量使用循环嵌套和条件嵌套 利用括号使逻辑表达式或算术表达式的运算次序清晰直观 2022年3月10日97.1.2 编码风格输入输出 I/O是几乎所有应用程序都要涉及到的,设
6、计和编写程序时,应考虑相关规则v 对所有输入数据都进行检验;v 检查输入项重要组合的合法性;v保持输入格式简单;v 用数据结构标记,不要要求用户指定数据的数目;v 明确提示交互式输入的请求,详细说明可用的选择或边界数值;v 当程序设计语言的格式有严格要求时,保持输入格式一致;v 设计良好的输出报表;v 给所有输出数据加标志。 2022年3月10日107.1.2 编码风格效率q效率主要指处理机时间和存储器容量两个方面。效率主要指处理机时间和存储器容量两个方面。q在讨论提高效率前,应该记住在讨论提高效率前,应该记住3 3条原则:条原则:n效率是性能要求,因此应该在需求分析阶段确定效率方面的要求。n
7、效率是靠好设计来提高的。n程序的效率和程序的简单程度是一致的。不要牺牲程序的清晰性和可读性来不必要地提高效率。 q从三个方面进一步讨论效率问题:从三个方面进一步讨论效率问题:2022年3月10日117.1.2 编码风格效率1 1. .程序运行时间程序运行时间n写程序之前先简化算术的和逻辑的表达式;n仔细研究嵌套的循环,以确定是否有语句可以从内层往外移n尽量避免使用多维数组;n尽量避免使用指针和复杂的表;n使用执行时间短的算术运算;n不要混合使用不同的数据类型;n尽量使用整数运算和布尔表达式。2022年3月10日127.1.2 编码风格效率2 2. .存储器效率存储器效率n在大型计算机中必须考虑
8、操作系统页式调度的特点,一般说来,使用能保持功能域的结构化控制结构,是提高效率的好方法。n在微处理机中,如果要求使用最少的存储单元,则应选用有紧缩存储器特性的编译程序,在非常必要时可以使用汇编语言。2022年3月10日137.1.2 编码风格效率3 3. . 输入输出的效率输入输出的效率简单清晰同样是提高人机通信效率的关键。硬件之间的通信效率比较复杂,但从写程序的角度看,有些简单原则可以提高输入输出效率:n所有输入输出都应该有缓存,以减少用于通信的额外开销。n对二级存储器应该选用最简单的访问方法。n二级缓存器的输入输出应该以信息组为单位进行。n如果“超高效的”输入输出很难被人理解,则不采用这种
9、方法2022年3月10日147.1.2 编码风格不要一味地追求程序的效率,应当在满足正确性、可靠性、健壮性、可读性等质量因素的前提下,设法提高程序的效率;以提高程序的全局效率(指站在整个系统的角度上考虑的效率)为主,提高局部效率(是指站在模块或函数角度上考虑的效率)为辅;不要追求紧凑的代码,因为紧凑的代码并不能产生高效的机器码; 有时候时间效率和空间效率可能对立,此时应当分析那个更重要,作出适当的折衷; 程序员使用语言编写程序,但不知道源程序究竟如何变成可执行代码、变成什么可执行代码,这些可执行代码的执行时间是长是短。因此,要从根本上提高程序的效率,需要程序员长时间的编程经验积累。 程序效率的
10、提高是无止尽的程序效率的提高是无止尽的2022年3月10日157.2 软件测试基础u 测试与测试的目标(G. Myers)u测试:为了发现程序中的错误而执行程序的过程u好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案u成功的测试是发现了至今为止尚未发现的错误的测试7.2.1 软件测试的目标2022年3月10日167.2.2软件测试准则n所有测试都应该能追溯到用户需求n应该在测试前制定测试计划n把Pareto原理应用到软件测试中n应该从“小规模”开始测试,逐步进行大规模测试。n穷举测试是不可能的n为了达到最佳的测试效果,应该由独立的第三方从事测试工作。2022年3月10日177.2.3测
11、试方法u测试方法u黑盒测试:已经知道了软件产品应该具有的功能,通过测试来检验是否每个功能都能正常使用。该测试方法又称功能测试u黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性u白盒测试:知道软件产品内部的工作过程,通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。这种测试方法又称结构测试u白盒测试方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作2022年3月10日187.2.4测试步骤模块测试子系统测试系统测试平行运行 目的:保证每个模块作为一个单
12、元能够正确运行,又称为单元测试 集成测试、组装测试、联合测试 重点在于测试模块之间的接口 将经过测试的子系统装配成一个完整的系统来测试; 发现设计和编码的错误,验证系统是否满足需求说明所定义的功能及其动态特性; 也称为集成测试。同时运行新旧两个系统,并且对处理的结果进行比较,以确定新系统是否满足相关性能指标。验收测试 有用户参加的系统测试 验证是否满足用户的需要2022年3月10日197.2.5测试阶段的信息流测试测试软件配置测试配置测试结果预期结果评价评价错误错误率数据调试调试可靠性可靠性模型模型正确可靠性预测包括需求说明书、设计说明书、源程序清单等包括测试计划和测试方案测试与软件开发各个阶
13、段的关系测试与软件开发各个阶段的关系l软件开发过程是一个自顶向下,逐步细化的过程l软件计划阶段定义软件作用域l软件需求分析建立软件信息域、功能和性能需求、约束等l软件设计l把设计用某种程序设计语言转换成程序代码l测试过程是依相反顺序安排的自底向上,逐步集成的过程2022年3月10日202022年3月10日217.3 单元测试u单元测试又称模块测试,是针对软件设计的最小单位 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错u单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试u在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该
14、模块的I/O条件和模块的逻辑结构,主要采用白盒测试技术,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应2022年3月10日227.3 单元测试 单元测试重点u模块接口u局部数据结构u重要的执行通路u出错处理通路u影响上述各方面特性的边界条件(1)模块接口u在单元测试的开始,应对通过被测模块的数据流进行测试,测试项目包括u调用本模块的输入参数是否正确u本模块调用子模块时输入给子模块的参数是否正确u全局量的定义在各模块中是否一致2022年3月10日237.3 单元测试(2) (2) 局部数据结构测试局部数据结构测试u不正确或不一致的数据类型说明u使用尚未赋值或尚未初始
15、化的变量u错误的初始值或错误的缺省值u变量名拼写错或书写错u不一致的数据类型u全局数据对模块的影响 (3) (3) 重要执行通路测试重要执行通路测试u选择适当的测试用例,对模块中重要的执行路径进行测试u应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误u对基本执行路径和循环进行测试可以发现大量的路径错误2022年3月10日247.3 单元测试(4) (4) 错误处理测试错误处理测试u 出错的描述是否难以理解u出错的描述是否能够对错误定位u显示的错误与实际的错误是否相符u对错误条件的处理正确与否u在对错误进行处理之前,错误条件是否已经引起系统的干预等(5) (5) 边界
16、测试边界测试u注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试u如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素2022年3月10日257.4 集成测试u 集成测试是组装软件的系统化技术;组装测试,联合测试u 通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是: u 在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;u 一个模块的功能是否会对另一个模块的功能产生不利的影响;u 各个子功能组合起来,能否达到预期要求的父功能;u 全局
17、数据结构是否有问题;u 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统2022年3月10日267.4 集成测试u子系统的组装测试特别称为部件测试,它所做的工作是要找出组装后的子系统与系统需求规格说明之间的不一致。u通常,把模块组装成为程序的方式有两种u 一次性组装方式:又称为非渐增式测试u 增殖式组装方式:其中又分为自顶向下、自底向上和两种方法混合测试方式,又称渐增式测试一次性组装方式u它是一种非增殖式组装方式。也叫做整体拼装u使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求
18、的软件系统2022年3月10日277.4 集成测试系 统结构图单元测试整体组装2022年3月10日287.4 集成测试增殖式组装(渐增式组装)方式u 首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统u 组装过程中边连接边测试,以发现连接过程中产生的问题u 通过增殖逐步组装成为要求的软件系统u 采用渐增式方式把模块结合到程序中时,有自顶向下和自底向上两种集成策略(1) 自顶向下集成u 该组装方式将模块按系统程序结构,从主控制模块开始,沿程序的控制层次自顶向下进行组装,逐渐把各个模块结合起来u 可以采用深度优先策略或宽度优先策略,把附属于主控制模块的那些模块组装到程序结构中去202
19、2年3月10日297.4 集成测试u深度优先策略:先组装在软件结构的一条主控制通路上的所有模块u选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能M1M2M3S4M5M8M6S7自顶向下结合u宽度优先策略:沿软件结构水平移动,把处于同一个控制层次上的所有模块组装起来2022年3月10日307.4 集成测试自顶向下集成实现的步骤u 对主控制模块进行测试u 根据选定的结合策略(深度优先或宽度优先),每次用一个实际模块代换一个存根程序u 在结合进一个模块的同时进行测试u 进行回归测试(全部或部分重复以前做过的测试)自顶向下的结合策略能够对主要的控制或关键的抉择进行检验2022年3月10日
20、317.4 集成测试(2) 自底向上集成u 自底向上测试是从程序模块结构的最底层的模块开始组装和测试u 实现步骤u 把低层模块组合成实现某个特定的软件功能的族u 写一个驱动程序,协调测试数据的输入和输出u 对由模块组成的子功能族进行测试u 去掉驱动程序,沿软件结构自下向上移动,把子功能族组合起来形成更大的子功能族2022年3月10日327.4 集成测试两种集成测试策略的优缺点比较:u 自顶向下测试方法的主要优点是不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能在早期发现上层模块的接口错误u 自顶向下测试方法的主要缺点是需要存根程序,低层关键模块中的错误发现较晚u 自底向
21、上测试方法的优缺点与自顶向下方法刚好相反u自顶向下增殖的方式和自底向上增殖的方式各有优缺点u一般来讲,一种方式的优点是另一种方式的缺点2022年3月10日337.4 集成测试非渐增式和渐增式测试方法的优缺点比较:u 非渐增式方法要对每个模块编写驱动模块,工作量较大;而渐增式方法可以利用部分已测试过的模块作为测试软件u 非渐增式方法发现模块间的接口错误较晚,而渐增式方法则要早一些u 非渐增式方法发现错误后较难定位;而渐增式方法则要容易一些u 非渐增式方法可以并行测试所有模块,可充分利用人力,加快工程进度u 渐增式方法接近全真运行环境,需要较多的测试运行时间,但对程序模块的测试较为彻底2022年3
22、月10日347.4 集成测试回归测试:u 在集成测试过程中,每当一个新模块结合进来时,程序就发生了变化,这些变化可能使原来工作正常的功能出现问题u 所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述变化没有带来非预期的副作用回归测试集的3类不同测试用例u 检测软件全部功能的代表性测试用例u 专门针对可能受修改影响的软件功能的附加测试u 针对被修改过的软件成分的测试2022年3月10日357.5 确认测试u 确认测试(验收测试)的目的:验证软件的有效性u 软件有效性:如果软件的功能和性能符合用户的期待,那么软件就是有效的u 软件有效性的标准:需求分析阶段产生的软件需求规格说明书7.5.
23、1 确认测试的范围u 确认测试必须有用户积极参与,或者以用户为主进行u 确认测试一般使用黑盒测试法u 测试计划包括要进行的测试的种类和进度安排u 测试过程规定了用来检测软件是否与需求一致的测试方案u 通过测试和调试要保证软件能满足所有功能要求,能达到每个性能要求,文档资料是准确而完整的2022年3月10日367.5.2 软件配置复查u复查软件配置的目的是:保证软件配置的所有成分都齐全,各方面的质量都符合要求,文档与程序一致u具有维护阶段所必须的细节,而且已经编排好目录u在验收测试的过程中应该严格遵循用户指南以及其他操作程序,以便检验这些使用手册的完整性和正确性u必须仔细记录发现的遗漏或错误,并
24、且适当地补充和改正2022年3月10日377.5.3 Alpha和Beta测试u如果软件是专为某个客户开发的,可以进行一系列验收测试,它是由最终用户而不是系统开发者进行的u如果一个软件是为许多客户开发的,那么让每个客户都进行正式的验收测试是不可能的,这种情况下,软件开发商需要经历Alpha和Beta测试。uAlpha测试:由用户在开发者的场所进行,并且在开发者对用户的“指导”下测试。是在“受控”的环境下进行的测试uBeta测试:由软件的最终用户在一个或多个客户场所进行2022年3月10日387.6 白盒测试技术u 测试阶段关键技术问题:设计测试方案u 测试方案:包括具体的测试目的,应该输入的测
25、试数据和预期的结果u 设计测试方案的基本目标:确定一组可能发现某个(类)错误的测试数据 u 不同的测试数据发现程序错误的能力差别很大,为提高测试效率降低测试成本,应选用高效的测试数据u 测试用例设计技术:u 黑盒测试的等价划分、边界值分析、错误推测法u 白盒测试的逻辑覆盖法2022年3月10日39u 逻辑覆盖:逻辑覆盖是以的设计测试用例的技术。它属白盒测试 7.6.1 逻辑覆盖语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖 语句覆盖: 选择足够多的测试数据,使被测程序中的每个语句至少执行一次2022年3月10日40(A1) and (B=0)(A=2) or (X1)X = X /
26、 AX=X+1入口返回PROCEDURE Example(A,B:real; X:real );Begin IF (A1) AND (B=0) THEN X:= X / A; IF ( A=2 ) OR (X1) THEN X:=X+1END;I. A=2, B= 0, X=4 - sacbed语句覆盖所有的语句至少执行一次!语句覆盖2022年3月10日41(A1) and (B=0)(A=2) or (X1)X = X / AX=X+1入口返回判定覆盖u每个判定的每种可能都至少执行一次!u即每个判定的每个分支都至少执行一次!I: A=3, B=0,X=3: sacbdII: A=2, B=1
27、,X=1: sabed 满足判定覆盖的测试用例满足判定覆盖的测试用例一定满足语句覆盖:判定覆盖一定满足语句覆盖:判定覆盖比语句覆盖强比语句覆盖强判定覆盖2022年3月10日42 条件覆盖一般情况下比判定覆盖要强,但是也有满足条件覆盖但不能满足判定覆盖的情况条件覆盖 每个语句至少执行一次,而且判定表达式中的每个条件都要取得各种可能的结果(A1)(A1)(B=0)(B0)(A=2)(A2)(X1)(X1)II: A=1, B=1,X=1: sabdI: A=2, B=0,X=4: sacbedI: A=2, B=0,X=1: sacbedII: A=1, B=1,X=1: sabed(A1) an
28、d (B=0)(A=2) or (X1)X = X / AX=X+1入口返回2022年3月10日43条件组合覆盖(A1) and (B=0)(A=2) or (X1)X = X / AX=X+1入口返回 条件组合覆盖要求选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次(A1)(A1)(B=0)(B0)(A=2)(A2)(X1)(X1)I. A=2,B=0,X=4II. A=2,B=1,X=1III. A=1,B=0,X=2IV. A=1,B=1,X=1I: sacbedII: sabedIII: sabedIV: sabd覆盖路径 满足条件组合覆盖标准的测试数据,也一
29、定满足判定覆盖、条件覆盖和判定/条件覆盖标准。2022年3月10日44点覆盖、边覆盖、路径覆盖u 点覆盖:如果连通图 G 的子图G是连通的,而且包含G的所有节点,则称G是G的点覆盖u 点覆盖与语句覆盖标准相同u 边覆盖:如果连通图 G 的子图G是连通的,而且包含G的所有边,则称G是G的边覆盖u 通常与判定覆盖标准相同u 路径覆盖:选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)u 路径覆盖是较强的逻辑覆盖标准2022年3月10日45u 很多白盒测试技术是根据程序的控制结构设计测试数据的技术u 几种常用的控制结构测试技术:7.6.2 控制结构
30、测试1. 基本路径测试u 基本路径测试是Tom McCabe提出的一种白盒测试技术。u 使用该技术设计测试用例时,通过计算程序的环形复杂度,并以该复杂度为指南定义执行路径的基本集合,从该基本集合导出的测试用例保证程序中的每条语句至少执行一次2022年3月10日46u 基本路径测试技术设计测试用例的步骤:u 根据过程设计结果画出相应的流图u 计算流图的环形复杂度u 确定线路独立路径的基本集合u 设计可强制执行基本集合中每条路径的测试用例u 求平均值的例子7.6.2 控制结构测试2. 条件测试u 条件测试的目的:不仅是检测程序条件中的错误,而且检测程序中的其它错误2022年3月10日477.6.2
31、 控制结构测试u 条件测试方法着重测试程序中的每个条件。人们提出了许多条件测试策略u 分支测试:对于复合条件C,C的真分支和假分支以及C中的每个简单条件,都应该至少执行一次u 域测试:要求对一个关系表达式执行3个或4个测试u BRO测试:如果在条件中所有布尔变量和关系算符都只出现一次而且没有公共变量,则BRO测试保证能发现该条件中的分支错和关系算符错2022年3月10日487.6.2 控制结构测试u 循环测试是一种白盒测试技术,它专注于测试循环结构的有效性u 在结构化程序中通常只有3种循环:u 简单循环u 嵌套循环u 串接循环3. 循环测试2022年3月10日497.7.1 等价划分u 等价划
32、分是把程序的输入域划分成若干个数据类,并据此导出测试用例的一种黑盒测试技术u 若将所有可能的输入数据划分成N个等价类,则可以从每个等价类中只取一组数据作为测试数据。这样选取的数据最有代表性,最可能发现程序中的错误 2022年3月10日507.7.1 等价划分u 等价分类法是将输入数据的可能值分成若干“等价类”,每一类以一个代表性的测试数据进行测试,这个数据就等价于这一类中的其它数据u 该法的关键在于如何将输入数据分类u 例如:输入的数据范围是1999,我们可以划分三类:x999u 划分等价类可以参考一些启发式规则进行u 为了正确划分等价类,一是要注意经验,二是要正确分析被测程序的功能2022年
33、3月10日51把 数 字 串转换成整数 无效输入的等价类非法输出的等价类l 16个数字字符组成的数字串(最高位不是零)l 最高位是零的数字串l 最高位数字左邻是负号的数字串 空字符串(全是空格) 左部填充的字符既不是零也不是空格 最高位数字右边由数字和空格混合组成 最高位数字右边由数字和其他字符混合组成 负号与最高位数字之间有空格l 计算机能表示的最小负整数和零之间的负整数l 零l 计算机能表示的最大正整数和零之间的正整数 有效输入的等价类合法输出的等价类 比计算机能表示的最小负整数还小的负整数 计算机能表示的最大正整数还大的正整数7.7.1 等价划分2022年3月10日527.7.2 边界值分析u 处理边界情况时程序最容易发生错误,因此,设计使程序运行在边界情况附近的测试方案,暴露出错误的可能性更大 u 使用边界值分析方法设计测试方案首先应确定边界情况u 对等价划分法中的不同等价类的边界情况进行重点测试 u 通常设计测试方案时总是综合使用等价划分和边界值分析技术7.7.3 错误推测u 不同类型不同特点的程序通常有一些特殊的容易出错的情况; 有时测试数据的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 陕师大幼儿园用工合同范例
- 购买合同范例正规
- 2024年度幼儿园托管区专业保洁人员聘用合同范本3篇
- 2024xx个人绿色金融抵押借款合同模板3篇
- 给个人租车合同范例
- 拆除废铁合同范例
- 2024年卫星通信服务与使用合同
- 饭店厨具维修合同模板
- 项目材料采购合同范例
- 鱿鱼收购服务合同模板
- 人教版2024-2025学年第一学期八年级物理期末综合复习练习卷(含答案)
- 辽宁省沈阳市2023-2024学年五年级上学期语文期末考试试卷(含答案)
- 反间谍主题班会
- 特种设备培训计划及方案
- 财务机构代理出口退税合同范本
- (高鸿业)微观经济学习题解析+微观经济学题库解析
- 2024年北京北师大实验中学初三(上)期中物理试题及答案
- 2025年中国资管行业市场全景评估及未来投资趋势预测报告(智研咨询)
- 购货者资格审核制度
- 专项12-全等模型-手拉手-专题训练
- 基础模块2 Unit8 Green Earth单元测试-2025年中职高考英语一轮复习讲练测(高教版2023修订版·全国用)
评论
0/150
提交评论