第9讲软件测试_第1页
第9讲软件测试_第2页
第9讲软件测试_第3页
第9讲软件测试_第4页
第9讲软件测试_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9讲软件测试1《实用软件工程》陆惠恩编著-何帆本章内容l

软件测试目标l

测试方法步骤l

设计测试、方案l

测试原则和测试策略l

软件调试、验证与确认l

软件测试文档2《实用软件工程》陆惠恩编著-何帆软件测试目标 软件测试的目的是通过人工或计算机执行程序来有意识地发现程序中的设计错误和编码错误。(1)软件测试是为了发现程序中的错误而执行程序的过程; (2)好的测试方案能够发现尚未发现的错误; (3)成功的测试是发现了尚未发现的错误的测试。3《实用软件工程》陆惠恩编著-何帆软件测试方法按照测试过程是否执行程序来分:静态分析与动态测试按照测试数据的设计依据来分: 黑盒法与白盒法4《实用软件工程》陆惠恩编著-何帆软件测试方法静态分析与动态测试静态分析静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。5《实用软件工程》陆惠恩编著-何帆软件测试方法静态分析与动态测试2.动态测试以执行程序并分析程序来查错。为了进行软件测试,需要预先准备好两种数据:①输入数据;②预期的输出结果。我们把以发现错误为目标的用于软件测试的输入数据及与之对应的预期输出结果叫测试用例。6《实用软件工程》陆惠恩编著-何帆黑盒法与白盒法1.黑盒法:

(BlackBoxTesting)又称功能测试,其测试用例完全是根据程序的功能说明来设计的。2.白盒法

(WhiteBoxTesting):又称结构测试,其测试用例是根据程序内部的逻辑结构和执行路径来设计的。

常把黑盒法和白盒法联合起来进行,这也称为灰盒法。7《实用软件工程》陆惠恩编著-何帆软件测试步骤一般软件测试有以下几个步骤:

模块测试集成测试程序审查会人工运行确认测试平行运行8《实用软件工程》陆惠恩编著-何帆软件测试步骤模块测试

也称单元测试,其目的是检查每个模块是否能独立、正确地运行。模块测试通常在程序设计时进行。驱动程序(驱动模块)代替主程序,用来测试子程序。存根程序(桩模块)也称“虚拟子程序”,测试主模块。9《实用软件工程》陆惠恩编著-何帆写驱动模块例为下面的子程序写驱动模块进行测试int

Max(int*pVector,intLen){

int

iMax=pVector[0];//定义最大值初始为第一个

for(inti=1;i<Len;i++){//把最大值和每个值比较,如果iMax比数组的值小,则用大的值替换

if(iMax<pVector[i])

iMax=pVector[i];}returniMax;//返回最大值}10《实用软件工程》陆惠恩编著-何帆驱动模块 voidmain(){

inta[]={12,2,3,4,121,43,6,8};

intL=8;

int

maxval=Max(a,L);

printf(“%d”,maxval);}11《实用软件工程》陆惠恩编著-何帆集成测试软件在集成时应该考虑以下问题:在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;各个子功能组合起来,能否达到预期要求的父功能;一个模块的功能是否会对另一个模块的功能产生不利的影响;全局数据结构是否有问题;单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。12《实用软件工程》陆惠恩编著-何帆集成测试子系统的组装称为集成化。集成测试分为子系统测试和系统测试两种。子系统测试也叫做部件测试,是把经过模块测试运行正确的模块集成一个子系统后再进行测试。系统测试是测试整个硬件和软件系统集成测试的方法有:渐增式测试非渐增式测试13《实用软件工程》陆惠恩编著-何帆渐增式测试1、自顶向下集成14《实用软件工程》陆惠恩编著-何帆渐增式测试2、自底向上集成15《实用软件工程》陆惠恩编著-何帆程序审查会和人工运行确认测试1.确认测试必须有用户积极参与,或以用户为主进行。2.软件配置复审 为了保证软件配置的所有成分都齐全,各方面的质量都符合要求,文档与程序一致,要编排好目录,有利于维护。3.Alpha测试和Beta测试16《实用软件工程》陆惠恩编著-何帆Alpha测试和Beta测试Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由程序员或测试员完成。Alpha测试发现的错误,可以在测试现场立刻反馈给开发人员,由开发人员及时分析和处理。目的是评价软件产品的功能、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。

Beta测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。因而,Beta测试是在开发者无法控制的环境下进行的软件现场应用。只有当α测试达到一定的可靠程度时,才能开始β测试17《实用软件工程》陆惠恩编著-何帆平行运行旧系统(或手工操作)和新系统同时运行18《实用软件工程》陆惠恩编著-何帆其他测试性能测试可靠性测试可用性测试回归测试软件测试的学习网站http:////19《实用软件工程》陆惠恩编著-何帆设计测试方案测试方案包括三个内容:要测试的功能输入的数据对应的预期输出结果20《实用软件工程》陆惠恩编著-何帆测试用例编号:编制人审定人时间软件名称编号/版本测试用例用例编号参考信息(参考的文档及章节号或功能项):输入说明(列出选用的输入项,覆盖正常、异常情况):输出说明(逐条与输入项对应,列出预期输出):环境要求(测试要求的软、硬件、网络要求):特殊规程要求:用例间的依赖关系:21《实用软件工程》陆惠恩编著-何帆

测试用例规程目的:测试用例文档化、规范化,实现软件测试的配置管理、适用范围:同方融达系统测试二、规范:1XX测试项目1.1XX测试子项目用例编号用例级别输入预期输出实测结果备注对该用例分配唯一的编号标识表明该用例的重要性列出执行本测试用例所须的具体的每一个输入(值)列出所有的预期指标要求下的具体预期输出(值)此项在测试时填写。指明该测试用例是否通过。如果不通过,需列出实际测试时的测试输出值如果有必要,则要填写“预置条件”、“特殊环境需求”、“特殊测试步骤要求”、“相关测试用例”以及“相关测试规程”等相关信息,具体见详细的注释说明22《实用软件工程》陆惠恩编著-何帆设计测试方案黑盒测试方法:等价类划分法边界值分析法错误推测法白盒测试方法逻辑覆盖法因果图法23《实用软件工程》陆惠恩编著-何帆等价类划分法等价类划分把程序的输入域划分成若干个互不相交的一组子集,我们称为等价类。所谓等价类是指输入域的某个集合,所以等价类的并便是整个输入域。这对于测试有两个非常重要的意义:表示整个输入域提供了一种形式的完备性,而互不相交则可保证一种形式的无冗余性。24《实用软件工程》陆惠恩编著-何帆等价类划分法划分等价类在考虑等价类时,应注意区别两种不同的情况:●有效等价类:有效等价类是指对程序规格说明,是有意义的,合理的输人数据所构成的集合。●无效等价类:无效等价类是指对程序规格说明,是不合理或无意义的输入数据所构成的集合。25《实用软件工程》陆惠恩编著-何帆等价类划分法几条确定等价类的原则:●按取值范围划分:如果输入条件规定了取值范围或值的数了量,则可以确定一个有效等价类和两个无效等价类。例如:如果程序规格说明要求输入的是1~12月中的一个月,则1~12定义一个有效等价类和两个无效等价类(月<1和月>12)。●按数值划分:如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。则可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。26《实用软件工程》陆惠恩编著-何帆等价类划分法几条确定等价类的原则:●按数值集合划分:如果输入条件规定了输入值的集合,则可确定一个有效等价类和一个无效等价类(该集合有效值之外)。例如,某程序要求“某标识符应以字母开头…”,则“以字母开头者”作为一个有效等价类,“以非字母开头”为一个无效等价类。●按限制条件或规则划分:如果规定了输入数据必须遵守的规则或限制条件,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。27《实用软件工程》陆惠恩编著-何帆【实例1】

三角问题三角形问题: 输入三个整数a、b和c分别作为三角形的三条边,程序判断由这三条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。我们可以将这个问题更详细地描述为: 三角形问题:输入三个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件:Con1.1≤a≤100Con2.1≤b≤100Con3.1≤c≤100Con4.a<b+cCon5.b<a+cCon6.c<a+b28《实用软件工程》陆惠恩编著-何帆输入三个整数有效等价类号码无效等价类号码整数1一边为非整数二边为非整数三边均为非整数456三个数2只有一条边只有二条边多余三条边7891<=x<=1003一边为零二边为零三边为零101112一边<零二边<零三边<零131415一边>100二边>100三边>100161718在三角形问题中,输入条件要求●整数;●三个数;●取值在1到100之间29《实用软件工程》陆惠恩编著-何帆abc覆盖的等价类abc覆盖的等价类1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,011测试用例:3,4,5便可覆盖有效等价类1-3。覆盖无效等价类的测试用例见下表所示。30《实用软件工程》陆惠恩编著-何帆边界值分析法

使用边界值分析方法设计测试用例,首先应确定边界情况。输入等价类与输出等价类的边界,就是应着重测试的边界情况。 边界值分析方法的基本思想是,选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。31《实用软件工程》陆惠恩编著-何帆 边界值分析设计测试用例时遵循的几条原则:●如果输入条件规定了取值范围,则应为取值范围的两端编写有效测试用例,并为紧靠两端之外的条件编写无效输入测试用例。如:规定输入值范围是[1,20];●如果输入条件规定了值的个数,测使用例与规定取值范围的一样,例如:输入书的数量至少为3,至多为8。●在输入值有一定规则或有规定的集合时,应仔细分析规格说明,找出其它的可能边界条件。●针对规格说明的每个输出条件,应用上述原则。32《实用软件工程》陆惠恩编著-何帆边界值测试用例33《实用软件工程》陆惠恩编著-何帆错误推测法人们也可以通过经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法。错误推测法的特点:没有确定的步骤,很大程度上是凭经验进行的。例如输入数据为零或输出数据为零是容易发生错误的情况,所以可选择输入值为零的例子,以及使输出值为零的例子;又如输入表格为“空”或输入表格只有一行是较易出错误的情况,所以可选择表示这些情况的例子。34《实用软件工程》陆惠恩编著-何帆错误推测法【例2】

对一个采用两分法的检索程序,可以列出以下这些需要检查的情况。1)被检索的表格只有一行。2)表格的行数恰好是2的幂次(如16)。3)表格的行数比2的幂次多1或少1(如15、17)。35《实用软件工程》陆惠恩编著-何帆因果图法等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系、相互组合等。考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合不是一件容易的事情,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例。这就需要利用因果图。

36《实用软件工程》陆惠恩编著-何帆因果图法设计步骤:将规格说明中的输入作为因,输出作为果;画出因果图;标出因果图的约束条件;把因果图转化为判定表,在判定表中的每一列设计一个测试用例。因果图法基本符号如下(四种逻辑关系):37《实用软件工程》陆惠恩编著-何帆

因果图关系①恒等:若c1是1,则e1也是1;否则e1为0。

②相反:若c1是1,则e1是0;否则e1是1。③或:若c1或c2或c3是1,则e1是1;否则e1为0。“或”可有任意个输入。④与:若c1和c2都是1,则e1为1;否则e1为0。“与”也可有任意个输入。

38《实用软件工程》陆惠恩编著-何帆3.因果图约束符号输入条件的约束和输出条件的约束39《实用软件工程》陆惠恩编著-何帆输入条件的约束和输出条件的约束输入条件的约束有以下4类:

①E约束(异):a和b中至多有一个可能为1,即a和b不能同时为1。

②I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0。

③O约束(唯一);a和b必须有一个,且仅有1个为1。

④R约束(要求):a是1时,b必须是1,即不可能a是1时b是0。输出条件约束类型

输出条件的约束只有M约束(强制):若结果a是1,则结果b强制为0。40《实用软件工程》陆惠恩编著-何帆【例3】用因果图法设计测试用例 某规格说明规定:输入的第一列字符必须是A或B,第二列字符必须是一个数字。第一、二列都满足条件时执行操作H;如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息R。 根据上述要求画出因果图,并设计测试用例。41《实用软件工程》陆惠恩编著-何帆分析例3的因果原因编号条件原因1:第一列字符是A条件原因2:第一列字符是B条件原因3:第二列字符是数字 由于原因1和2不能同时成立,用E约束或O约束结果编号结果21:执行操作H结果22:给出信息L结果23:给出信息R如果第一列符合条件,还应检查第二列是否正确。这里将第一列正确的情况编号为11,作为中间结果42《实用软件工程》陆惠恩编著-何帆因果图43《实用软件工程》陆惠恩编著-何帆判定表原因编号条件原因1:第一列字符是A条件原因2:第一列字符是B条件原因3:第二列字符是数字结果编号结果21:执行操作H结果22:给出信息L结果23:给出信息R结果11:中间输出44《实用软件工程》陆惠恩编著-何帆白盒法--逻辑覆盖法

白盒法根据程序逻辑结构进行测试,逻辑覆盖法是一系列测试过程的总称,包括:1.语句覆盖:要求设计若干个测试用例,运行被测程序,使程序中每个可执行语句至少被执行一次。2.判定覆盖:要求设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少执行一次,即判断的真假值均要被检测。3.条件覆盖:要求设计若干测试用例,执行被测程序,使得程序中每个判断的每个条件的可能取值至少被执行一次。45《实用软件工程》陆惠恩编著-何帆逻辑覆盖法4.判定/条件覆盖:要求设计足够的测试用例,执行被测程序,使得判断中每个条件的所有可能取值至少被执行一次,同时每个判断的所有可能判断结果也至少被执行一次。5.条件组合覆盖:要求选取更过的测试数据,使每个判定表达式中条件的各种组合都至少出现一次,从而达到更强的逻辑覆盖标准。6.点覆盖:要求足够多的数据使程序执行时至少经过程序图中的每个点一次。7.边覆盖:要求选取足够多的测试数据,使程序执行路径至少经过程序图中每条边一次。8.路径覆盖:要求设计足够多测试用例,覆盖程序中所有可能的路径。

46《实用软件工程》陆惠恩编著-何帆【实例4】测试下面用PDL表示的程序进行测试BeginIf(A=3)OR(B>1)ThenX:=A*BEndifIf(A>2)AND(B=0)ThenX:=A-3EndifEnd47《实用软件工程》陆惠恩编著-何帆程序流程图1.语句覆盖A=3,B=0执行路径为sacbde2.判定覆盖A=3,B=0sacbdeA=2,B=0sabe3.条件覆盖A=2,B=2sacbeA=3,B=0sacbde4.判定/条件覆盖A=3,B=0sacbdeA=2,B=0sabeA=2,B=2sacbe开始返回48《实用软件工程》陆惠恩编著-何帆5.条件组合覆盖条件组合及对应的执行路径见右表49《实用软件工程》陆惠恩编著-何帆6.点覆盖程序图见右图A=3,B=07.边覆盖A=3,B=01-4-5-6-7A=2,B=-11-2-3或A=3,B=21-4-5-3A=4,B=01-2-6-78.路径覆盖A=1,B=11-2-3A=4,B=01-2-6-7A=1,B=21-4-5-3A=3,B=01-4-5-6-750《实用软件工程》陆惠恩编著-何帆程序结构复杂程度的度量McCabe方法首先画出程序图,然后计算程序的环行复杂度。程序环行复杂度的计算方法有三种:1、V(G)=m-n+2 其中,m是程序图G中的弧数,n是有向图G中的节点数。2、如果P是流图中判定结点的个数, V(G)=P+1。3、强连通图中线性无关有向环的个数。51《实用软件工程》陆惠恩编著-何帆程序结构复杂程度的度量应用V(G)越大表示程序越复杂,McCabe研究了大量的程序后发现V(G)越大程序越容易出错,测试和维护都很困难。实践证明,模块的规模以V(G)<11为宜。52《实用软件工程》陆惠恩编著-何帆程序结构复杂程度的度量【实例5】计算程序环行复杂度 现有对计算机应用能力考试成绩进行统计的程序。连续输入考试成绩,最后以输入0分或负分为结束。规定成绩在60分以下的不及格、60分以上的及格、80分以上的属于优秀。该程序统计并分别输出成绩不及格、及格、优秀的人数及总人数。算出此程序的环行复杂度。53《实用软件工程》陆惠恩编著-何帆程序流程图开始S1,S2,S3,S=0输入XX>0?X>=60?X<80?S2=S2+1S1=S1+1S3=S3+1S=S+1结束输出S1,S2,S3,SFFFTTTsbac1c2c3defgh54《实用软件工程》陆惠恩编著-何帆程序图55《实用软件工程》陆惠恩编著-何帆计算程序的环行复杂度:在图中,实线弧数为14,节点数为12。因此,环行复杂度为 V(G)=14-12+2=4图中,判定结点的个数为3,3+1=4。从出口点到入口点作一条虚线,图中有4个线性无关的有向环:R1、R2、R3、R4。三种计算方法的结果相同。56《实用软件工程》陆惠恩编著-何帆软件测试原则和策略软件测试原则测试不要由设计和开发部门来测试,改错由程序作者负责测试用例要有输入,又要有对应的预期结果测试用例要有合理的输入,也要有不合理的除了检查程序是否做了应做的工作,还要检查是否做了不应该做的工作穷尽测试是不可能的,要精心设计测试用例Pareto原理:发现的错误中80%很可能是由程序中20%的模块造成的软件需求期间就应制定测试计划应长期保存所有的测试用例,直至该程序被废弃57《实用软件工程》陆惠恩编著-何帆实用测试策略用等价类划分法设计测试方案。使用边界值分析方法,既测试输入数据的边界情况又包括输出数据的边界情况。如果含有输入条件的组合情况,一开始就用因果图法。必要时用错误推断法补充测试方案。用逻辑覆盖法检查现有测试方案,若没有达到逻辑覆盖标准,再补充一些测试用例。58《实用软件工程》陆惠恩编著-何帆软件调试、验证与确认软件调试也称纠错。调试的原则

注意错误的“群集现象”,不能只修改错误的征兆、表现。还应该修改错误的本质;注意在修改一个错误的同时,要避免引入新的错误。常用的调试方法:模仿跟踪设置打印逐层分块调试对分查找调试(二分法调试)回溯法59《实用软件工程》陆惠恩编著-何帆软件调试、验证与确认程序正确性验证(软件验证) 是确定软件开发周期中的一个给定阶段的产品是否达到需求的过程。软件验证方法:断定软件操作正确只是软件操作错误只是软件执行时产生错误的原因把源程序和软件配置的其他成分自动输入系统。60《实用软件工程》陆惠恩编著-何帆软件调试、验证与确认软件确认软件确认的方法:系统功能和性能满足需求说明书中的全部要求,得到用户认可。完成测试计划中的所有要求,并书写测试分析报告和开发总结。按用户手册和操作手册进行软件实际运行。61《实用软件工程》陆惠恩编著-何帆软件测试文档1.软件测试计划测试内容进度安排设计考虑测试数据的整理方法及评价准则62《实用软件工程》陆惠恩编著-何帆软件测试文档2.测试说明文件测试设计说明测试用例说明测试规程说明63《实用软件工程》陆惠恩编著-何帆测试用例编号:编制人审定人时间软件名称编号/版本测试用例用例编号参考信息(参考的文档及章节号或功能项):输入说明(列出选用的输入项,覆盖正常、异常情况):输出说明(逐条与输入项对应,列出预期输出):环境要求(测试要求的软、硬件、网络要求):特殊规程要求:用例间的依赖关系:64《实用软件工程》陆惠恩编著-何帆

测试用例规程目的:测试用例文档化、规范化,实现软件测试的配置管理、适用范围:同方融达系统测试二、规范:1XX测试项目1.1XX测试子项目用例编号用例级别输入预期输出实测结果备注对该用例分配唯一的编号标识表明该用例的重要性列出执行本测试用例所须的具体的每一个输入(值)列出所有的预期指标要求下的具体预期输出(值)此项在测试时填写。指明该测试用例是否通过。如果不通过,需列出实际测试时的测试输出值如果有必要,则要填写“预置条件”、“特殊环境需求”、“特殊测试步骤要求”、“相关测试用例”以及“相关测试规程”等相关信息,具体见详细的注释说明65《实用软件工程》陆惠恩编著-何帆软件测试文档3.软件测试分析报告

内容包括:测试项传递报告:测试项的位置,状态测试日志测试事件报告测试总结报告见/fei_lai_feng66《实用软件工程》陆惠恩编著-何帆开始0-----TX>=80ANDy>=801-----TX>=90ANDy>=752-----TX>=75ANDy>=903-----T返回YNYNYN本流程图描述了某个子程序处理流程,现要求用白盒测试法该子程序设计测试数据。[问题]根据判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖和路径覆盖等5个覆盖标准,从供选择的答案中分别找出满足相应覆盖标准的最小测试数据组。用(1)—(12)回答。练习一67《实用软件工程》陆惠恩编著-何帆(1)X=90,Y=90(2)X=90,Y=70(3)X=90,Y=90(4)X=90,Y=75X=70,Y=70X=70,Y=90X=90,Y=75X=75,Y=90X=90,Y=75X=75,Y=90X=70,Y=70(5)X=90,Y=90(6)X=80,Y=80(7)X=80,Y=80(8)X=80,Y=80X=90,Y=70X=90,Y=75X=90,Y=70X=75,Y=90X=70,Y=90X=90,Y=90X=70,Y=90X=70,Y=70X=70,Y=70X=75,Y=90X=70,Y=70X=70,Y=90X=75,Y=75判定覆盖条件覆盖条件覆盖条件覆盖条件覆盖判定/条件覆盖路径覆盖条件覆盖68《实用软件工程》陆惠恩编著-何帆(9)X=80,Y=80(10)X=

温馨提示

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

评论

0/150

提交评论