




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五DoWork()函数的测试5.1问题情境5.2问题分析5.3任务设计与实施5.4知识总结5.5应用实践
请设计一组测试用例,测试以下函数。
voidDoWork(inta,intb,intx)
{
intk=0,j=0;
if((a>1)&&(b==0))
{5.1问题情境
k=a*x-1;
j=sqrt(k);
} //语句块1
if((a==2)||(x>1))
{
j=x*a+10;
} //语句块2
j=j%3; //语句块3
}
在这个程序中有三个输入参数a、b和x,有两个判定,每个判定有两个条件。5.2问题分析
5.3.1用语句覆盖测试方法对DoWork()函数完成测试
1.分析程序结构
在这个程序中有三个输入参数a、b和x,在程序中有两个判定,每个判定有两个条件。5.3任务设计与实施
2.设计测试用例
(1)根据语句覆盖测试法的思想,设计如下测试用例:
a
=
1,b
=
0,x
=
3
(2)预期结果:程序每一行都被执行,即可完成对程序的语句覆盖测试。
3.实施测试并书写测试报告
(1)输入所设计的测试用例。
(2)运行并观察程序,看是否能达到语句的全部覆盖。5.3.2用条件覆盖测试方法对DoWork()函数完成测试
1.分析程序结构
在这个程序中有三个输入参数a、b和x,有两个判定,每个判定有两个条件。
2.设计测试用例
设计的测试用例如下:
a
=
1,b
=
0,x
=
3
a
=
1,b
=
1,c
=
1
3.实施测试并书写测试报告
(1)输入所设计的测试用例。
(2)运行并观察程序,看能否达到条件的全部覆盖。5.3.3用判定覆盖测试方法对DoWork()函数完成测试
1.分析程序结构
在这个程序中有三个输入参数a、b和x,有两个判定,每个判定有两个条件。
2.设计测试用例
设计的测试用例如下:
a
=
3,b
=
0,x
=
3
a
=
2,b
=
1,c
=
1
3.实施测试并书写测试报告
(1)输入所设计的测试用例。
(2)运行并观察程序,看能否达到判定的全部覆盖。5.3.4用判定/条件覆盖测试方法对DoWork()函数完成测试
1.分析程序结构
在这个程序中有三个输入参数a、b和x,有两个判定,每个判定有两个条件。
2.设计测试用例
设计的测试用例如下:
a
=
2,b
=
0,x
=
3
a
=
1,b
=
1,c
=
1
3.实施测试并书写测试报告
(1)输入所设计的测试用例。
(2)运行并观察程序,看能否达到判定/条件的全部覆盖。5.3.5用组合覆盖测试方法对DoWork()函数完成测试
1.分析程序结构
在这个程序中有三个输入参数a、b和x,有两个判定,每个判定有两个条件。
2.设计测试用例
设计的测试用例如下:
a
=
2,b
=
0,x
=
3
a
=
2,b
=
1,c
=
1
a
=
1,b
=
1,x
=
1
a
=
1,b
=
0,c
=
3
3.实施测试,并书写测试报告
(1)输入所设计的测试用例。
(2)运行并观察程序,看能否达到组合的全部覆盖。
白盒测试法(WhiteBoxTesting)按照程序内部的结构和逻辑驱动测试程序,通过测试来检测产品内部动作是否按照设计说明书的规定正常进行,检验程序中的每条路径是否都能按预定要求正确工作。此方法是将白盒测试的对象看做内部逻辑结构完全可见的盒子,测试人员依据程序内部逻辑结构的相关信息来设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点、不同分支检查程序的状态,来确定实际的状态是否与预期的状态一致。5.4知识总结5.4.1白盒测试方法的概念
白盒测试方法的对象主要是源程序,是利用程序设计的控制结构导出测试用例来进行测试的,是软件测试的主要方法之一。
1.白盒测试方法的基本知识
1)白盒测试方法的分类
白盒测试方法分为如下两类:
(1)静态测试。静态测试是测试中很重要的方法之一,它不要求在计算机上实际执行所测程序,而主要以一些人工的模拟技术对软件进行分析和测试。静态测试大约可以找出25%~60%
的逻辑错误。
(2)动态测试。输入一组预先按照一定的测试准则设计的实例数据驱动运行程序,检查程序功能是否符合设计要求,发现程序中的错误,这一过程称为动态测试。
2)白盒测试的常用技术
白盒测试的常用技术主要有以下几种:
(1)逻辑覆盖法。根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、条件/判定组合覆盖、多条件覆盖、修改条件/判定覆盖、组合覆盖和路径覆盖。
(2)插桩技术。软件动态测试中,插桩测试是一个被广泛应用的测试方法。插桩测试就是在源程序中插入语句,然后执行程序,通过打印语句来获得动态信息。
(3)基本路径测试法。基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环形复杂性,导出基本可执行的路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个执行语句至少被执行一次。
(4)域测试法。域测试是一种基于程序结构的测试方法,它通过对程序输入空间(域)的分析,选择合适的测试点进行测试。
(5)符号测试。符号测试的基本思想是允许程序的输入不仅仅是具体的数值数据,而且还包括符号值。符号值可以是基本的符号变量值,也可以是符号变量值的表达式。
(6)
Z路径覆盖法。简化循环意义下的路径覆盖称为Z路径覆盖。简化循环指限制循环次数,只考虑循环一次或零次的情况。简化循环的目的是限制循环的次数。Z路径覆盖对循环机制进行简化,减少路径的数量,使得覆盖所有路径成为可能。无论循环的形式和循环体实际执行的次数是怎样的,简化后的循环测试都只考虑执行循环体一次和零次(不执行)两种情况,即考虑执行时进入循环体一次和跳过循环体这两种情况。
(7)程序变异测试法。程序变异是一种错误驱动测试。错误驱动测试是指该方法是针对某类特定程序错误的。经过多年的测试理论研究和软件测试的实践,人们逐渐发现要想找出程序中的所有错误几乎是不可能的。比较现实的解决办法是将错误的搜索范围尽可能地缩小,以利于专门测试某类错误是否存在。
2.白盒测试方法的原则
白盒测试方法的原则有如下四点:
(1)保证一个模块中的所有路径至少被测试一次。
(2)所有逻辑值都要测试真和假两种情况。
(3)检查程序的内部数据结构是否有效。
(4)检查上、下边界及可操作范围内运行的所有循环。
3.白盒测试方法的类别、依据和流程
白盒测试方法的策略是首先进行静态结构分析,然后采用先静态后动态的组合方式进行覆盖测试,利用静态测试的分析结果和动态测试的结果进一步确认是否已达到测试效果。白盒测试一般要考虑类别、依据和流程。
1)白盒测试的类别
白盒测试具体分为以下8大类:
软件公用问题的测试;
语言测试;
SQL语句测试;
数据类型测试;
界面测试;
数值对象测试;
业务对象测试;
数据管理对象测试。
2)白盒测试的依据
白盒测试的依据有以下6点:
软件需求报告;
软件需求规格说明;
程序设计文档;
软件界面设计;
编码规范;
开发命名标准。
3)白盒测试的流程
白盒测试的流程分为界面对象测试和业务对象测试两种方式。
(1)界面对象测试的流程如图5-1所示。
图5-1界面对象测试的流程图从图5-1可以看出,界面对象测试流程的优点是:便于测试者从界面层直观地录入数据;界面对象测试流程的缺点是:进行回归测试时,需要重复录入数据。
(2)业务对象测试的流程如图5-2所示。
图5-2业务对象测试的流程图业务对象测试是从底层开始,逐一向上延伸的。从图5-2可以看出,业务对象测试的优点是:在进行回归测试时,不需要重复输入数据,并且程序执行一遍就可以了;业务对象测试的缺点是:需要给中间层编写一个测试小程序,根据程序中类的对象构造输入数据并将结果输出到控制台上。
4.静态测试方法
在白盒测试中,可以使用各种测试方法进行测试。但是,在测试时要考虑以下5个问题:
(1)测试中尽量先用自动化工具来进行静态结构分析。
(2)测试中建议先从静态测试开始,例如静态结构分析、代码走查和静态质量度量;然后进行动态测试,例如覆盖率测试。
(3)将静态分析的结果作为依据,再使用代码检查和动态测试的方式对静态分析结果进行进一步的确认,以提高测试效率及准确性。
(4)覆盖率测试是白盒测试中的重要手段,在测试报告中可以作为量化指标的依据,对于重点模块,应使用多种覆盖率标准衡量代码的覆盖率。
(5)在不同的测试阶段,测试的侧重点是不同的。
在单元测试阶段,以程序语法检查、程序逻辑检查、代码检查、逻辑覆盖为主。
在集成测试阶段,需要增加静态结构分析、静态质量度量,以接口测试为主。在系统测试阶段,在真实系统工作环境下通过与系统的需求定义作比较,检验完整的软件配置项能否和系统正确连接,发现软件与系统/子系统设计文档和软件开发合同规定不符合或有矛盾的地方;验证系统是否满足了需求规格的定义,找出与需求规格不相符或有矛盾的地方,从而提出更加完善的方案,确保最终软件系统满足产品需求并且遵循系统设计的标准和规定。
在验收测试阶段,按照需求,检验该产品是否能够满足使用要求,有没有达到原设计水平,完成的功能怎样,是否符合用户的需求,以达到预期目的为主。
1)代码检查
代码检查是静态测试的主要方法,它包括代码桌面检查、走查、代码审查等。下面对代码检查进行详细讲述。
(1)概述。代码检查主要检查代码和流程图设计的一致性,代码结构的合理性,代码编写的标准性、可读性,代码的逻辑表达的正确性等方面。它包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
(2)代码检查的目的有以下几点:
检查程序是不是按照某种标准或规范编写的。
发现程序缺陷。
发现程序产生的错误。
检查代码是不是流程图要求的。
检查有没有遗漏的项目。
使代码易于移植,因为代码经常需要在不同的硬件中运行,或者使用不同的编译器编译。
使代码易于阅读、理解和维护。
(3)代码检查需要的文档。在进行代码检查前应准备好需求文档、程序设计文档、程序的源代码清单、代码编码标准、代码缺陷检查表和流程图等。
(4)代码检查的方式。代码检查的方式有以下三种:
①桌面检查。桌面检查是程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中的错误的过程。由于程序员熟悉自己的程序,可以由程序员自己检查,这样可以节省很多时间,但要注意避免自己的主观判断。
②走查。走查是程序员和测试员组成的审查小组通过逻辑运行程序来发现问题的过程。小组成员要提前阅读设计规格书、程序文本等相关文档,输入测试用例,使程序运行。
走查可分为以下两个步骤:
小组负责人把材料发给每个组员,然后由小组成员提出发现的问题。
通过记录,小组成员对程序逻辑及功能提出自己的疑问,开会探讨发现的问题和解决方法。
③代码审查。代码审查是程序员和测试员组成的审查小组通过阅读、讨论、分析技术对程序进行静态分析的过程。
代码审查可分为以下两个步骤:
小组负责人把程序文本、规范、相关要求、流程图及设计说明书发给每个成员。
每个成员将所发材料作为审查依据,在由程序员讲解程序的结构、逻辑和源程序的过程中,小组成员可以提出自己的疑问,程序员也能发现自己原来没有注意到的问题。
为了提高效率,小组在审查会议前可以准备一份常见错误清单,以备参加成员对照检查。在实际应用中,代码审查能快速找到20%~30%
的编码缺陷和逻辑设计缺陷。代码审查看到的是问题本身而非问题的征兆,需要耗费一些时间,而且需要知识和经验的积累。
(5)代码检查项目。
①目录文件组织。目录文件组织要遵循以下原则:
所有的文件名称简单明了,见名知意。
文件和模块分组清晰。
每行代码在80个字符以内。
每个文件只包含一个完整模块的代码。
②检查函数。检查函数要遵循以下原则:
函数头清晰地描述了函数的功能。
函数的名字清晰地定义了它所要做的事情。
各个参数的定义和排序遵循特定的顺序。
所有的参数都是有用的。
函数参数接口关系清晰明了。
函数所使用的算法都有说明。
③数据类型及变量。数据类型及变量要遵循以下原则:
每个数据类型都有其解释。
每个数据类型都有正确的取值。
数据结构尽量简单,降低复杂度。
每一个变量的命名都明确地表示了其代表的意义。
全部变量的描述要清晰。④检查条件判断语句。检查条件判断语句要遵循以下原则:
条件检查和代码在程序中都有清晰表述。
if/else的使用正确。
数字、字符和指针判断明确。
最常见的情况优先判断。
⑤检查循环体制。检查循环体制要遵循以下原则:
任何循环不得为空。
循环体制清晰易懂。
当有明确的多次循环操作时使用for循环。
循环命名要有意义。
循环终止条件清晰。
⑥检查代码注释。检查代码注释时要遵循以下原则:
有一个简单的关于代码结构的说明。
每个文件和模块都要有相应的解释。
源代码能够自我解释,并且易懂。
每个代码的解释说明要明确地表达出代码的意义。
所有注释要具体、清晰。
所有无用的代码及注释要删除。⑦桌面检查。进行桌面检查时要注意以下问题:
检查代码和设计的一致性。
代码对标准的遵循、可读性。
代码逻辑表达的正确性。
代码结构的合理性。
程序编写与编写标准的符合性。
程序中不安全、不明确和模糊的部分。
编程风格问题等。⑧其他检查。其他检查包括如下内容:
软件的扩展字符、编码、兼容性、警告/提示信息。
检查变量的交叉引用表。检查未说明的变量和违反了类型规定的变量,以及变量的引用和使用情况。
检查标号的交叉引用表,验证所有标号的正确性。
检查子程序、宏、函数,验证每次调用与所调用的位置是否正确,调用的子程序、宏、函数是否存在,参数是否一致。
等价性检查。检查全部等价变量类型的一致性。
常量检查。确认常量的取值和数制、数据类型。
标准检查。检查程序中是否有违反标准的问题。
风格检查。检查程序的设计风格。
比较控制流。比较设计控制流图和实际程序生成的控制流图的差异。
选择、激活路径。在设计控制流图中选择某条路径,然后在实际的程序中激活这条路径,如果不能激活,则程序可能有错。
补充文档。根据以上检查项目,可以编制代码规则、规范和检查表等作为测试用例。
对照程序的规格说明,详细阅读源代码,将其与实际的代码进行比较,从差异中发现程序的问题和错误。
检查必须遵守规定代码的语法格式和规则(如排版、注释、标识符命名、可读性、变量、函数、过程、可测性、程序效率、质量保证、代码编辑、编译、审查、代码测试、维护、宏)等各方面的编码要求。
在进行人工代码检查时,可以制作代码走查缺陷表。在缺陷检查表中,列出工作中遇到的典型错误,主要包括:
格式部分:
·嵌套的if语句是否正确地缩进。
·注释是否准确并有意义。
·使用的符号是否有意义。
·代码是否与开始时的模块模式一致。
·是否遵循了全套的编程标准。
入口和出口的连接:
·初始入口和最终出口是否正确。
·被传送的参数值是否被正确地设置了。
·对关键的被调用的模块的意外情况是否有所处理(例如丢失、混乱)。
·对另一个模块的每一次调用,所需的全部参数是否传送给了被调用的模块。
存储器问题:
·每一个域在第一次使用前是否正确地初始化。
·规定的域是否正确。
·每个域是否有正确的变量类型声明。
判断及转移:
·用于判断的是否是正确的变量。
·是否判断了正确的条件。
·每个转移目标是否至少被正确地执行了一次。
性能:性能是否最佳。
可维护性:
·清单格式是否适用于提高可读性。
·各个程序块之间是否符合代码的逻辑意义。
逻辑:
·全部设计是否已经实现。
·代码所做的是否是设计规定的内容。
可靠性:从外部接口采集的数据是否被确认过。
内存设计:
·数组或指针的下标是否越界。
·是否修改了指向常量的指针的内容。
·是否有效地处理了内存耗尽的问题。
·
是否出现了不规范指针(指针变量没有被初始化,
用free或者delete释放了内存之后,忘记将指针设置为NULL)。
·是否忘记为数组和动态内存赋初值。
·用malloc或者new申请内存之后,是否立即检查指针值是否为NULL。
关于类的高级特性:是否违背了继承和组合的规则。
2)静态结构分析
静态结构分析主要是以图形的方式表现程序的内部结构,例如函数调用关系图、函数内部控制流图。
静态结构分析是指测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形图表,清晰地标识整个软件的组成结构以便于理解,并通过分析这些图表(包括控制流分析、数据流分析、接口分析、表达式分析)检查软件是否存在缺陷或错误的过程。应用程序各函数之间的调用关系展示了系统的结构,这可以通过列出所有函数,用连线表示各函数之间的调用关系和作用来实现。
静态结构主要分析以下内容:
检查函数的调用关系是否正确。
是否存在孤立的函数没有被调用。
明确函数被调用的频繁度,对调用频繁的函数可以重点检查。
3)
SQL语句测试
SQL语句测试分为语句检查和类型转换检查,下面分别介绍。
(1)语句检查。语句检查必须检查的10点内容如下:
每个数据库对象都有拥有者。
Table:Database的基本单位,由行和列组成,用于存储数据。
DataType:限制输入到表中的数据类型。
Constraint:有主键、外键、唯一键、缺省和检查五种。
Default:自动插入常量值。
Rule:限制表中列的取值范围。
Trigger:一种特殊类型的存储过程,当有操作影响到它所保护的数据时,它会自动触发执行。
Index:提高查询速度。
View:查看一个或多个表的一种方式。
StoredProcedure:一组预编译的SQL语句,可以完成指定的操作。
(2)类型转换检查。检查SQL语句的类型转换时,主要是避免显式或隐含的类型转换。
4)代码检查的分析与评价
代码检查的分析与评价主要注意的问题是:
(1)功能。陈述经代码检查证实了的本软件的功能。
(2)缺陷和限制。陈述经代码检查测试证实了的软件缺陷和限制,说明每项缺陷和限制对软件性能的影响,并说明全部测得的性能缺陷的累积影响。软件的缺陷和限制如下:
数据引用错误:因引用未经正确声明和初始化的变量、常量、数组、字符串或记录而导致的软件缺陷。
注意:数据引用错误是缓冲区溢出的主要原因,是一个造成许多软件安全问题的缺陷。
数据声明错误:其产生的原因是不正确地声明或使用变量和常量。
计算错误。
比较错误:比较和判断错误很可能是由边界条件问题而引起的,所以要特别注意这些地方。一般要检查的运算符包括
<
(小于)、>
(大于)、=
(等于)、!=
(不等于)、1(真)、0(假)。
控制流程错误:其产生的原因是编程语言中循环等控制结构未按预期方式工作,它们通常由计算错误或者比较错误直接或间接造成。
子程序参数错误:其产生的原因是软件子程序不正确地传递数据。
输入/输出错误:包括文件读取、接收键盘或者鼠标输入以及向打印机或者屏幕等输出设备写入错误。
其他错误:包括编码错误以及警告/提示信息错误。
通过对代码检查结果的分析,需标明遗留缺陷、局限性和软件的约束限制等,说明该代码是否已达到预定的结果,判定代码能否交付使用。审查小组必须做出审查结果的书面总结报告,以方便开发小组的成员使用。5.4.2逻辑覆盖测试
1.测试覆盖率
测试覆盖率用于确定测试所执行到的覆盖项的百分比。其中的覆盖项是指作为测试基础的一个入口或属性,比如语句、分支、条件等。
测试覆盖率可以表示出测试的充分性,在测试分析报告中可以作为量化指标的依据。测试覆盖率越高,效果越好。但提高覆盖率不是目标,而是一种手段。测试覆盖率包括功能点覆盖率和结构覆盖率。功能点覆盖率主要用于表示软件已经实现的功能与软件需要实现的功能之间的比例关系。结构覆盖率包括语句覆盖率、分支覆盖率、循环覆盖率、路径覆盖率等。
2.逻辑覆盖
根据覆盖目标的不同和覆盖源程序语句的详尽程度,逻辑覆盖又可分为语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖。
图5-3示例程序流程图
1)语句覆盖
语句覆盖是指选择足够多的测试数据,使得程序中的每个可执行语句至少被执行一次。
(1)主要特点。语句覆盖是最基本的结构覆盖要求,要求设计足够多的测试用例,使得程序中的每条语句至少被执行一次。
(2)用例设计。如果此时将A路径上的语句T
=
1去掉,那么用例如表5-1所示。
表5-1语句覆盖测试用例
(3)优点。可以很直观地从源代码得到测试用例,无须细分每条判定表达式。
(4)缺点。这种测试方法仅仅针对的是程序逻辑中显式存在的语句,而对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中将语句T
=
1去掉,那么就少了一条测试路径。
在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种情况以外的分支不会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某一个条件分支,那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,因为它只关注语句是否运行了一次的情况,而不考虑其他情况。
2)判定覆盖
判定覆盖通过设计足够多的测试用例,使得程序中的每一个判定至少都获得一次真值和假值,或者使得程序中的每一个取真的分支或取假的分支至少被执行一次,也称为分支覆盖。
(1)主要特点。判定覆盖要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即程序中的每个分支至少被执行一次。每个判断取真、取假至少一次。
(2)用例设计(见表5-2)。表5-2判定覆盖测试用例
(3)优点。判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样,判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。
(4)缺点。大部分的判定语句往往是由多个逻辑条件组合而成的(例如判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。
3)条件覆盖
条件覆盖是通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。
(1)主要特点。条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。
(2)用例设计(见表5-3)。表5-3条件覆盖测试用例
(3)优点。显然条件覆盖相比判定覆盖增加了对符合判定条件的情况的测试,增加了测试路径。
(4)缺点。要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果。
4)判定/条件覆盖
判定/条件覆盖通过设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纳米材料在生物医学的应用
- 男病人会阴护理规范
- 项目劳务合同协议书
- 餐饮合作加盟协议书
- 公司签落户承诺协议书
- 装修公司结款协议书
- 供货散装酒合同协议书
- 车辆后期维护协议书
- 高层干部聘用协议书
- 足浴技师底薪协议书
- 如何做好临床儿科护理带教
- 北师大版三年级下册数学口算题练习1000道带答案
- 2023-2024学年江苏省南京市玄武区八年级下学期期末数学试题及答案
- 2025年济南铁路局招聘笔试参考题库含答案解析
- 【MOOC】大学公共体育-华南理工大学 中国大学慕课MOOC答案
- 《数据资产会计》 课件 第三章 数据资产的确认和计量
- 钳工(高级)理论考试(重点)题库300题(含答案解析)
- 《剪映专业版:短视频创作案例教程(全彩慕课版)》 课件 第8章 创作商业广告
- 2024秋期国家开放大学《公共行政学》一平台在线形考(形考任务一至三)试题及答案
- 富士相机FUJIFILM X100T用户手册
- 化工和危险化学品重大事故隐患考试试题(后附答案)
评论
0/150
提交评论