CH09系统实施与维护.ppt_第1页
CH09系统实施与维护.ppt_第2页
CH09系统实施与维护.ppt_第3页
CH09系统实施与维护.ppt_第4页
CH09系统实施与维护.ppt_第5页
免费预览已结束,剩余70页可下载查看

下载本文档

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

文档简介

第9章 系统实施与维护SYSTEMIMPLEMENTATIONANDMAITAINENCE 物理系统的实施程序设计与测试项目管理 人员培训数据准备与录入系统转换系统评价 内容概要 系统实施的任务 根据系统设计所提供的控制结构图 数据库设计 系统配置方案及详细设计资料 编制和调试程序 调试系统 进行系统切换等工作 将技术设计转化为物理实际系统 系统实施的任务 系统实施的任务系统实施的准备工作物理系统的实施用户培训数据准备与录入编码软件测试新旧系统之间的切换 系统实施的任务 内容建立系统平台 计算机系统和通信网络系统的订购机房的准备设备安装和调试培训管理人员和操作人员基础数据的准备管理流程重组 9 1系统实施的准备工作 1 程序设计的基本任务根据系统设计说明书中关于模块的详细描述和处理过程的描述 选择合适的计算机语言来编制程序的工作 9 2程序模块的设计 2 对程序的基本要求 正确性 语法正确 逻辑正确 需求正确可维护性 维护是指对系统进行监督 统计 评价 找出问题 并进行修改 完善和扩充 使系统能正常地运行 可维护性是指软件能够被校正 被修改或被完善的难易程度 可靠性 系统在规定的外部条件下 按照规定的功能 能够运行指定的一段时间的概率 可理解性 理解和使用该系统的容易程度 效率 指计算机资源 如时间和空间 能否被有效地使用 9 2程序模块的设计 1 软件测试的基本概念 1 软件测试的对象软件 程序 文档测试对象 各个阶段产生的源程序和文档 9 3测试 1 软件测试的基本概念 2 软件测试的目的基于不同的立场 对软件测试的目的存在着两种完全对立的观点 一种观点是通过测试暴露出软件中所包含的故障和缺陷 从用户的角度 另一种是希望测试成为表明软件产品中不存在错误的过程 验证该软件中已正确地实现了用户的要求 因此 它们倾向于选取导致程序失败概率最小的测试实例和数据 显然 第二种观点对完善和提高软件质量和可靠性毫无价值 因此测试的目的应该是通过软件测试尽可能多地发现并改正软件种存在的错误 9 3测试 1 软件测试的基本概念GlenfordJ Myers把这一观点归纳为 测试是程序执行的过程 其目的在于发现错误 一个好的测试实例在于发现至今未发现的错误 一个成功的测试是发现了至今未发现的错误的测试 因此 软件测试 SoftwareTesting 是从引起和发现错误的目的出发执行某一程序的过程 9 3测试 1 软件测试的基本概念 3 错误的类型功能错误 处理功能说明不完整或不确切 致使编程时对功能有误解而产生的错误 系统错误 与外部接口错误 子程序调用错误 参数使用错误等 过程错误 算术运算错误和逻辑运算错误数据错误 数据结构 实体 属性错误 编程错误 语法错误 程序逻辑错误 编程书写错误等 9 3测试 二 软件测试的基本原则成立测试小组 避免由软件开发部门 或个人 测试自己的程序 精心设计测试用例 测试用例的设计和选择 预期结果的定义要有利于错误的检测 回归测试 对于测试中发现错误的软件 经修正后 再用原来的测试用例进行的测试称为回归测试 集中测试出错多的模块 经验表明 程序中尚未发现的错误的数量与在该程序段已发现的错误数量往往成正比 9 3测试 软件测试 衡量标准多能够找到尽可能多的 以至于所有的BUG快能够尽可能早地发现最严重的BUG好找到的BUG是关键的 用户最关心的找到BUG后能够重现找到的BUG 并为修正BUG提供尽可能多的信息省能够用最少的时间 人力和资源发现BUG测试的过程和数据可以重用 测试技术 不实际运行程序 而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术 也称为静态分析技术 实际运行程序 并通过观察程序运行的实际结果来发现错误的软件测试技术 在不知道程序内部结构 只知道程序规格的情况下采用的测试技术或策略 在知道程序内部结构的情况下采用的测试技术或策略 开发组内部进行的 采用讲解 讨论和模拟运行的方式进行的查找错误的活动 开发组内部进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 开发组 测试组和相关人员 QA 产品经理等 联合进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 针对要求的程序功能 按照规范的流程进行的测试 针对要求的程序功能以外的其他要求 包括性能 安全 配置 负载等指标 按照规范的流程进行的测试 针对要求的程序功能 性能 安全 配置 负载等指标 基于破坏目的 按照经验进行的随机测试 程序修改或者版本更新以后 为了确保以前正确的功能和其他指标仍旧正确 而重新进行的测试 在测试过程中 选择足够的测试用例 使得每一个可执行语句至少被执行一次 在测试过程中 选择足够的测试用例 使得程序中的每一个分支判断的每一种可能结果都至少被执行一次 在测试过程中 选择足够的测试用例 使得程序中的每一条可能执行的路径都至少执行一次 三 软件测试方法 9 3测试 三 软件测试方法测试法分为黑箱法和白箱法 黑箱 Black boxTesting 法 黑箱法又称为功能测试法 它是根据程序功能的分析 推演出由函数定义域中有代表性的元素组成测试集 这些数据应包括对程序是有效的和无效的输入 极端的 正常的和特殊的数据元素 因此 黑箱测试法是从外界来检查模块或程序的功能 也即根据模块的输入和输出 得出所得结果得差异 这种测试无须知道模块的内部逻辑 而是给定一输入 检查是否会得到所期望的输出 功能测试法又具体分为等价类法 边值分析法 因果图法和错误猜测法等 9 3测试 进行黑盒测试主要是为了发现以下几类错误 是否有错误的功能或遗漏的功能 界面是否有误 输入是否能够正确接受 输出是否正确 是否有数据结构或外部数据库访问错误 性能是否能够接受 是否有初始化或终止性错误 9 3测试 等价类法是根据程序的I O特性 将程序的输入划分为有限个等价区段 使得从每个区段内抽区的代表性数据进行的测试等价于该区段内任何数据的测试 对于每个输入条件存在着程序有效输入的有效等价类和对程序错误输入的无效等价类 例如 某实数X的取值范围假设为a X b 则所有 a 1 b 1 之间的实数构成了有效等价类 而任何 a 或 b 之间的实数构成了两个无效等价类 9 3测试 边值分析法是一种根据I O边界等价类上或紧靠边界的条件 选择测试用例的更有效的方法 例如 给定三个点 判定能否构成三角形 可选取两边之和等于第三边的实例作为边值分析法的测试用例 因果图法是通过从用自然语言书写的功能说明表中找出因 输入条件和果 输出结果 通过因果图将功能说明转换成一张判定表 然后为每种输出条件的组合设计测试用例 错误推测法是根据测试人员的经验和直觉推测程序种可能存在的各种错误 9 3测试 白箱法 White boxTesting 白箱法也称之为结构测试或逻辑覆盖法 它是根据对软件内部逻辑结构的分析 选取测试数据集 即测试用例 TestingCase 而测试数据集对程序逻辑的覆盖程度决定了测试完全性的程度 常用的几个覆盖标准有 语句覆盖 判定覆盖 条件覆盖 判定 条件覆盖 条件组合覆盖 9 3测试 四 软件测试的过程软件测试是按照与系统开发相反的方向来进行的 依次为 单元测试 模块测试 集成测试 系统测试和验收测试 9 3测试 设计信息 可运行系统 系统其它元素 单元测试 单元测试 单元测试 集成测试 系统测试 验收测试 软件需求信息 测后软件 测后模块 模块 模块 模块 确认后软件 图系统测试的步骤 9 3测试 四 软件测试的过程单元测试单元测试 UnitTesting 又称模块测试 ModuleTesting 或模块分调 用于测试单个程序模块 确定模块的逻辑和功能是否正确 单元测试的实施要以黑箱法测试其功能 辅之以白箱法测试其结构 9 3测试 单元测试什么时候做 Codealittle testalittleCodeall testall单元测试由谁来做 单元测试是程序员的事单元测试是编码的一部分单元测试是程序员必备的一项基本素质 单元测试流程 管理流程主要指动态测试应用流程 针对测试目标 规定测试任务 资源分配 人员角色 进度安排等 根据测试计划 设计测试用例 包括 测试步骤 测试场景 测试代码 测试数据 包括预期结果 根据测试计划 配置测试环境 并手动或者自动执行测试设计 根据测试计划 忠实地记录测试执行的过程和结果 分析测试记录 如果发现与预期结果不同 确定并重现缺陷 检查测试设计是否全部执行完毕 缺陷是否全部关闭 记录 分发 评估 关闭缺陷报告 分析测试过程和缺陷报告 评估测试质量和测试效果 给出是否通过测试的建议 单元测试流程 测试文档主要指动态测试应用文档 测试计划文档 测试用例文档 测试记录文档 缺陷跟踪报告 测试总结报告 Junit介绍 JUnit是由ErichGamma和KentBeck开发的开源测试框架JBuilder集成了这个框架并对此做了扩展 JUnit之所以流行并为广大的开发人员所推崇 一是因为它实战性强 功能强大 二是因为它实在简单 一个产品或框架要能有生命力 最好都具备这样的特点 简单地讲这个框架提供了许多断言 assert 方法 允许你设置测试的规则 如 assertEquals assertNull assertNotSame assertTrue 等方法 一个测试用例包括了多个断言 当运行测试用例后 JUnit运行器会报告哪些断言没有通过 开发人员就可顺藤摸瓜搞个水落石出了 而传统的测试方法需要将期望的结果用诸如System out println 等语句将过程信息打印到控制台或日志中 由开发人员观察输出信息以判断是否正确 现在这种 观察 的工作由JUnit的那些assertXxx 方法自动完成 Junit框架 JUnit的测试框架类结构很简单 主要由3个类组成 关系如下图 junit framework Test 测试接口 junit framework TestCase 测试用例类 业务类的测试用例类只需要承继这个TestCase 根据情况编写若干个publicvoidtestXxx 方法 在方法中通过assertYyy 定制若干测试规则就可以了 junit framework TestSuite 测试套件类 它可以将多个测试用例类捆绑在一起运行 也可以捆绑另一个测试套件 测试固件 一个测试用例可以包含若干个testXxx 测试方法 测试用例测试一个或多个类API接口的正确性 当然在调用类API时 需要事先创建这个类的对象及一些关联的对象 这组对象就称为测试固件 Fixture 相当于测试用例的 工作对象 Junit测试过程 TestCase实例被运行时 依照以下步骤运行 1 创建测试用例的实例 2 调用setUp 方法 执行一些初始化工作 3 运行testXxx 测试方法 4 调用tearDown 方法 执行销毁对象的工作 Junit测试过程 如果测试用例类中有多个testXxx 方法 且它们都需要使用到相同的一组对象 我们可以在setUp 中实例化这组对象 并在tearDown 中销毁它们 1 创建TestCase类的子类 2 在子类中声明若干个测试所用的对象 3 覆盖setUp 方法 在方法中实例化这些对象 4 覆盖tearDown 方法 释放这些对象的资源 测试固件例子 1 publicclassMoneyTestextendsTestCase2 3 privateMoneyf12CHF 12瑞士法郎4 privateMoneyf14CHF 14瑞士法郎5 privateMoneyf28USD 28美国美元6 protectedvoidsetUp 7 f12CHF newMoney 12 CHF 8 f14CHF newMoney 14 CHF 9 f28USD newMoney 28 USD 10 11 protectedvoidtearDown 12 测试用例 有了测试固件 就可以开始编写测试用例的测试方法了 当然你也可不需要测试固件而直接编写测试用例方法 测试方法都必须以test为前缀 且必须是publicvoid的 运行器以此为反射查找规则找到这些测试用例方法 在一个方法中可以包括多个assertYyy 方法 每个assertYyy 方法都是一个测试规则 assertEquals 0001 student getId 其标准格式为 assertEquals Stringmessage expected actual 三个参数含义 Stringmessage 为输入字符 其中 表示该参数为可选择输入 expected表示的期望输出值actual为实际的输出值 测试用例 测试用例的一个具体案例 1 publicclassMoneyTestextendsTestCase2 3 privateMoneyf12CHF 12瑞士法郎4 privateMoneyf14CHF 14瑞士法郎5 privateMoneyf28USD 28美国美元6 protectedvoidsetUp 7 f12CHF newMoney 12 CHF 8 f14CHF newMoney 14 CHF 9 f28USD newMoney 28 USD 10 11 publicvoidtestMoneyBag 12 13 Moneybag f26CHF f28USD 14 MoneyBagexpected newMoneyBag bag 15 assertEquals expected 12CHF add f28USD add f14CHF 16 17 protectedvoidtearDown 18 测试套件 如果每次只能运行一个测试用例 那么又陷入了传统测试的窘境 手工去运行一个个测试用例 测试套件专门为解决这一问题而来 它通过TestSuite对象将多个测试用例组装成到一个测试套件 则测试套件批量运行 需要特殊指出的是 可以把一个测试套件整个添加到另一个测试套件中 就象小筐装进大筐里变成一个箧一样 测试套件类也通过承继TestCase类实现 只不过它提供了一个publicstaticTestsuite 静态方法 在该方法中将多个测试用例捆绑组装在一起 测试套件的一个具体例子 1 publicclassMoneyTestSuiteextendsTestCase2 3 publicTestSuite1 Strings 4 5 super s 6 7 publicstaticTestsuite 8 9 TestSuitesuite newTestSuite 10 suite addTestSuite MoneyTest class 11 suite addTestSuite MoneyBag class 12 returnsuite 13 14 测试运行器 JUnit提供了3个标准的测试运行器运行这些测试用例或测试套件 这3个测试运行器分别是 junit textui TestRunner 文本测试运行器 junit awtui TestRunner 使用AWT组件界面的测试运行器 junit swingui TestRunner 使用Swing组件界面的测试运行器 待测类 publicclassCalculator publicintadd inta intb returna b publicintminus inta intb returna b publicintmultiply inta intb returna b publicintdivide inta intb throwsException if 0 b thrownewException 除数不能为零 returna b 该类的测试类 1 4 该类的测试类 2 4 该类的测试类 3 4 该类的测试类 4 4 四 软件测试的过程集成测试 子系统测试 模块联调 集成测试 IntegrationTesting 用来测试模块之间接口的正确性 也即模块之间的数据和控制传递 集成测试是与单元测试平行进行的 9 3测试 四 软件测试的过程系统测试系统测试 SystemTesting 是对软件系统种的应用程序 硬件 手工操作以及系统的任何其它的组成部分的集成的总体的测试 验收测试验收测试 AcceptanceTesting 是由用户来完成的测试 测试系统是否满足用户的需求 测试 测试 9 3测试 Test debug 1 测试是为了发现软件中存在的错误 调试是为了证明软件开发的正确性 2 测试以已知条件开始 使用预先定义的程序 且有预知的结果 不可预见的仅是程序是否通过测试 调试一般是以不可知的内部条件开始 除统计性调试外 结果是不可预见的 3 测试是有计划的 需要进行测试设计 调试是不受时间约束的 4 测试经历发现错误 改正错误 重新测试的过程 调试是一个推理的过程 5 测试的执行是有规程的 调试的执行往往要求开发人员进行必要推理以至知觉的 飞跃 6 测试经常是由独立的测试组在不了解软件设计的条件下完成的 调试必须由了解详细设计的开发人员完成 7 大多数测试的执行和设计可以由工具支持 调式时 开发人员能利用的工具主要是调试器 系统切换是指新系统替换老系统 即老系统停止使用 新系统开始运行的过程 系统切换的方式有 直接方式 平行方式 试点后直接切换 逐步方式 即将系统的交付使用分阶段继续进行 9 4系统切换 9 4系统切换 系统切换的主要工作 建立系统使用说明文档 包括用户操作手册 用户使用说明书 计算机操作规程 程序说明书等 系统初始化 对系统运行环境和资源进行设置 系统运行和控制参数设定 数据加载 调整系统与业务工作同步等 9 4系统切换 系统维护是计算机信息系统投入运行后 为保证系统能够正常工作 进一步满足用户新的需求所采取的对原系统的修改 完善等措施 它是系统开发生命周期的最后一个阶段 系统维护的任务保证信息系统安全 正常 可靠地运行对系统进行评价 不断改善和提高信息系统性能 以充分发挥系统的作用 9 5系统维护与管理 系统维护的重要性2 系统维护的内容应用软件维护 是系统维护最重要的内容 数据维护数据库的备份 转储和恢复数据库的安全性控制和完整性控制数据库的重组和重构代码维护硬件设备维护 9 5 1系统维护的内容 3 系统维护的类型应用软件维护包括纠错性维护 适应性维护 完善性维护和预防性维护四种类型 纠错性维护 Correctivemaintenance 适应性维护 Adaptivemaintenance 完善性维护 Perfectivemaintenance 预防性维护 Preventivemaintenance 9 5 1系统维护的内容 4 系统维护的副作用修改程序的副作用 是指对源程序的修改而引入的新错误 例如 删去或修改一个子程序 改变了逻辑运算符等修改数据的副作用 对数据结构的部分或全部修改都有可能引发新的错误 例如 将共有数据 全局数据 改为私有数据 局部数据 或反过来将私有数据改为共有数据 修改数据库文件中字段的类型 长度等 文档资料的副作用 程序修改了 相应的文档也应该随之修改 使之与系统配置完全一致 由于不重视文档的编制 未能及时对文档作出修改 出现系统与文档不匹配 这种错误应尽可能避免 9 5 1系统维护的内容 信息中心的组成和职责 各部分和各种人员的职责系统开发部 协助制定信息系统规划 分析企业对信息的需求 负责应用系统的开发和文档管理工作 系统维护部 负责维护应用软件系统 计算机运行组 负责计算机硬件和系统软件的安装和维护 数据库管理组 负责管理数据库的信息 数据库的安全和维护工作 网络组 负责网络的设计 安装 运行 安全和维护工作 9 5 2信息系统的管理机构 信息中心的组成和职责 各部分和各种人员的职责程序员 系统程序员 应用程序员 维护程序员 系统程序员 负责编制与修改系统软件应用程序员 负责编制和调试应用程序维护程序员 对现有程序进行维护 数据库管理员 负责整个企业数据库的建立 运行安全和维护工作 是企业中了解数据库结构 内容 对数据库存取权限最高的人 网络管理员 负责网络的设计 建立 运行 安全和维护工作 9 5 2信息系统的管理机构 一 系统的安全性1 影响安全性的因素自然灾害 偶然事件软件的非法删改 复制和窃取 使系统的软件泄密和破坏 数据的非法篡改 盗用或破坏硬件故障 9 5 3信息系统的安全性与可靠性 一 系统的安全性2 系统安全性的措施物理安全控制 为了保证系统的各种设备和环境设施的安全而采取的措施 人员及管理控制 指用户合法身份的确认和检验 存取控制 是共享资源条件下保证信息系统安全性的重要措施 通过用户鉴别 获得使用计算机权的用户 应根据预先定义好的用户权限进行存取 防火墙 权限管理 数据加密 加密存储和加密传输 加密是指将明文信息和数据进行编码 使它转换成一种不可理解的内容 使信息窃取者无法认识和理解其原意 解密是加密的逆过程 9 5 3信息系统的安全性与可靠性 二 系统的可靠性系统可靠性是指在运行过程中能抵御各种外界干扰 正常工作的能力 主要措施有 设备冗余技术 指系统中有两套硬件设备 以双工或双机方式工作 用冗余的设备来防止万一发生的硬件故障 负荷分布技术 将信息系统的信息处理 数据存储以及其他信息管理功能分布在多个设备单元上 以防止单一设备的故障致使整个系统瘫痪 系统重新组合技术 当系统发生故障后 为了使系统部分恢复或完全恢复 自动将故障设备停用 或用备件替换故障设备 并可在恢复的系统上启用数据库的后备数据 根据数据处理过程记录 将数据恢复到故障发生前的状态 9 5 3信息系统的安全性与可靠性 9 6信息系统评价 目的 信息系统评价的目的是了解信息系统了解信息系统评价的方法和一般的指标体系 在管理信息系统 MIS 开发完成并投入运行后 需要对其进行评价 对MIS的综合评价是对其进行全面的检查 测试 分析和评价 以确定MIS是否达到了预期的目的 并为决策提供必要的信息 由于MIS的开发需要消耗大量的人力 财力 物力 需要很长的时间 所以MIS的评价意义重大 评价的概念 评价是在多因素相互作用下的一种综合判断 评价是为了决策 而决策需要评价 从某种意义上讲 没有评价就没有决策 综合评价是指对被评价对象所进行的客观 公正 合理的全面评价 9 6信息系统评价 评价的概念 综合评价主要有两个功能 一是通过排序评出先进和落后 为决策提供依据 二是通过总排序和各层单排序与基础指标的联系 找出被评价对象的优势及弱点 揭示存在的问题 9 6信息系统评价 综合评价技术的应用 信用等级评价企业竞争力评价供应链敏捷性评价顾客满意度评价信息系统的评价企业技术创新能力评价企业合作伙伴的选择企业技术创新风险评估物流系统综合评价金融危机预警信息化水平评价城市应急系统选址评价 9 6信息系统评价 评价系统的构成要素 9 6信息系统评价 评价系统的构成要素 构成综合评价问题主要有七个构成要素 1 评价目的 即要明确为什么要进行综合评价 评价事物的哪一方面以及评价精度等 2 被评价对象 通常是同类事物 横向 或同一事物在不同时期的表现 纵向 3 评价者 评价者可以是某个人 专家 或某个团体 专家小组 由其确定评价目的 评价对象 设计评价指标并确定指标权重系数 建立评价模型等 9 6信息系统评价 评价系统的构成要素 4 评价指标 是指根据研究的目的和对象 能够反映研究对象某一方面情况的特征依据 指标体系 IndexSystem 是指由一系列相互联系的指标所构成的整体 它能够综合反映出被评价对象的各方面情况 5 权重系数 简称权重 是指标对总目标的贡献程度 当被评价对象及评价指标确定时 综合评价的结果依赖于权重系数 因此 综合评价结果的可信程度取决于权重系数的确定是否合理 9 6信息系统评价 评价系统的构成要素 6 综合评价模型 通过数学模型将多个指标值 合成 为一个整体性的综合评价值 所应用的 合成 方法因评价目的和被评价对象的特点而异 7 评价结果 输出评价结果 解释其含义 并依据评价结果进行决策 9 6信息系统评价 MIS的综合评价指标体系 9 6信息系统评价 MIS的综合评价指标体系 系统建设评价 1 规划目标科学性 C11 分析MIS系统规划目标的科学性 并要考虑到经济上的可行性 技术上的可行性和管理上的可行性 2 规划目标实现程度 C12 分析所建成的MIS系统现状真实值 是否达到或超过MIS系统分析阶段所提出的规划及设想的目标 它表明了信息系统对其预先确定的系统目标的实现程度 9 6信息系统评价 MIS的综合评价指标体系 系统建设评价 3 先进性 C13 MIS是否满足了用户的需求 充分利用了资源 融合了先进的管理科学知识 使组织管理融于先进的信息系统中 系统的设计是否科学 是否有较强的适应性 4 经济性 C14 MIS的投资与所实现的功能相适应的程度 9 6信息系统评价 MIS的综合评价指标体系 系统建设评价 5 资源利用率 C15 MIS对计算机 外部设备 各种硬软件 信息系统资源的利用程度 6 规范性 C16 MIS的建设

温馨提示

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

评论

0/150

提交评论