《软件测试技术》电子教案第8章.ppt

上传人:创****公 文档编号:17069398 上传时间:2022-05-21 格式:PPT 页数:51 大小:415.50KB
返回 下载 相关 举报
《软件测试技术》电子教案第8章.ppt_第1页
第1页 / 共51页
《软件测试技术》电子教案第8章.ppt_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《《软件测试技术》电子教案第8章.ppt》由会员分享,可在线阅读,更多相关《《软件测试技术》电子教案第8章.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第八章软件第八章软件BUGBUG和管理和管理 本章要点本章要点 .软件Bug对软件质量的影响;.常见的软件Bug类型,重现软件Bug的分析技术;.软件Bug的描述和管理。 本章目标本章目标 了解软件BUG的影响和产生;掌握软件开发过程中产生的BUG种类;掌握使BUG重现的技术;了解软件BUG报告单应该包括的主要内容以及软件BUG的管理流程。 8.1软件BUG概述 在IEEE 1983 of IEEE Standard 729中对软件缺陷下了一个标准的定义: (1)从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题; (2)从外部看,软件缺陷是系统所需要实现的某种功能的

2、失效或违背。 软件缺陷有很多种,其中主要软件缺陷类型有: 1.一些功能、特性没有实现或只实现了一部分; 2.软件设计不合理,存在缺陷。实际运行结果和预期结果不一致; 3.运行出错,包括运行中断、系统崩溃、界面混乱 4.数据结果不正确、精度不够; 5.用户不能接受的其他问题,如存取时间过长、界面不美观。 8.1.1 8.1.1 BUG的影响的影响 Bug会给用户或使用者带来相当大的麻烦,会给集体或者国家带来很大的经济损失。如:千年虫问题。 8.1.2 BUG的产生的产生 BUG的由来。的由来。 对于软件而言,对于软件而言,BUG是程序编写错误而导致软是程序编写错误而导致软件产生问题的缺陷。件产生

3、问题的缺陷。 软件测试的目的就是找到软件程序代码内的BUG,纠正它,叫做DEBUG。 BUG产生的原因很多,具体有以下几点。 1程序编写错误 Bug的难以避免性。 2需求变更过于频繁 需求变更所造成的结果就是变更程序代码,程序 代码只要稍做变更就必须经过测试来确保运行正常, 所以这个影响是一个连锁反应或称为依存问题。 3软件的复杂度 图形用户界面(GUI)、BS 结构、面向对象设计、分布式运算、底层通信协议、超大型关系型数据库以及庞大的系统规模,都体现了软件复杂度大大高于以前,Bug出现可能性就更高。 4交流不充分或者沟通出问题 大部分项目人员在同客户进行交流时常常存在着各种各样的问题,究其原

4、因,还是因为项目人员、参与人员和客户之间没有详细、充分、谨慎地进行交流。 5测试人员的经验与技巧不足 6时间过于紧迫 7缺乏文档:贫乏或者差劲的文档使得代码维护和修改变得非常困难,结果会导致其他开发人员或客户有许多错误的理解。 8管理上的缺陷 8.2 BUG的种类的种类 BUG是软件“与生俱来”的特征,不同的软件开发阶段会产生不同的BUG,而不同的BUG又会产生不同的后果,因此BUG的属性也并非相同。 8.2.1需求阶段的需求阶段的BUG 这个阶段的BUG是最难发现、最难修复的,而且值得注意的是需求阶段的BUG如果没有及时发现等到实现阶段发现时,那么修复它的费用要比当初修复它要高1575倍。

5、主要的原因如下: 1、模糊、不清晰的需求; 2、被忽略的需求; 3、相互冲突的需求; 8.2.2分析设计阶段的分析设计阶段的BUG 设计中的BUG比需求阶段产生的BUG特征明显 易于捕获,但是其维修代价很高,原因是设计BUG 已经作为一个整体影响着整个系统的实现。 原因主要有3种途径。 1 、忽略设计; 2、混乱的设计; 3、模糊的设计; 8.2.3实现阶段的BUG 就是软件系统中最普通、最一般的“常规BUG”。 可以将实现阶段出现的BUG分为下面几类: 1、消息错误 2、用户界面错误 3、遗漏的功能 4、内存溢出或者程序崩溃 5、其他实现错误 第一类型说明了软件系统向用户发送了出错的 消息,

6、可能消息是合理的或者表现为某种中断机制,但是用户认为这是一个BUG。 如下图:第二类型就是用户界面错误,可归纳为GUI错误。可能是由于GUI制作不标准而导致用户不能正确地工作。 第三种类型为遗漏的功能BUG (以输入框输入信息错误,程序抛出未异常为典型) 第四种类型为内存溢出或者程序崩溃BUG,表现为程序挂起、系统崩溃,属于一种比较严重的软件BUG类型。(详见教材的药房药品进存销的软件测试BUG) 8.2.4配置阶段的配置阶段的BUG 配置阶段的BUG出现的原因是复杂的,比较典型的是旧的代码覆盖了新的代码,或者测试服务器上的代码和实现人员本机最新代码版本不一致。 可能是实现人员操作配置管理工具

7、不正确引起的;还可能体现了测试人员或者最终用户操作不正确。 8.2.5短视将来的短视将来的BUG “千年虫”问题就是当初的设计人员为了节省一点硬件成本给全球造成了难以估量的损失。 作者曾经为一家大药房开发了一套药品管理的进销存软件,由于最初的时候对业务流程并不是很熟悉,所以在定义药品编码的时候把许多药品的ID号定义为了整型变量(INT),开始作者认为这些足以定义所有的药品名称了,没想到 一年以后,由于药房的业务量急增,药品的ID也就不够了,由于整套系统是由Power Builder编写,整型变量的最大值只有32767,因此程序经常由于数据溢出而出现问题,所以作者被迫用了近一个星期的时间来修改原

8、来的程序。 8.2.6静态文档的静态文档的BUG 文档BUG的定义很简单,即说明模糊、描述不完整和过期的都属于文档BUG。说明模糊特指无充分的信息判断如何正确地处理事情;描述不完整特指文档信息不足以支持用户完成某项工作;过期的文档是没有及时更新过的、错误的文档。 8.3.1 BUG报告单的内容报告单的内容 BUG报告单也叫缺陷报告单或者问题报告单。 问题报告单所需的基本信息类型是大同小异的,不同的只是组织和标志。 介绍一下字段: (1)问题报告编号 (2)程序名 (3)版本标识:发布号和版本号。是用来识别被测的代码。 例如:某个版本号可能是1.01m,发布号是1.01,“m”指1.01版本的第

9、13稿。 (4)报告类型:描述了发现的问题类型。包括:编码错误 、设计问题 、建议 、文档 、硬件、质疑。 (5)严重性:为问题严重程度评分。 包含三个等级:三个等级:轻微的、严重的和致命的。 (6)附件 存有测试数据的软盘、键盘捕获记录或一组可产生测试用例的宏、程序的打印输出、内存dump或一份注释,里面详细描述了你所做的操作,以及你认为该问题很重要的原因。 (7)问题概要:对问题进行描述,有助于评审突出的问题,并找到相应的问题报告。 (8)问题能否重现。要多次测试看能否再次出现。(9)问题描述及如何重现。描述所有的步骤和现象,包括错误信息。一定要提交报告。(10)建议的改正措施(11)报告

10、人(12)日期:指的是报告人员发现问题的日期。(13)功能域:对问题进行大体分类。(14)承办人(15)注释:程序员在这里简短地说明为什么要推迟处理,或说明是如何改正问题的。(16)状态。三个状态码:开放、关闭和已解决。(17)优先级。只由项目经理设置。(18)处理状态与处理版本 处理状态定义了问题的当前状态: 未解决:初始化状态或仍有冲突状态。 已改正 不能重现 暂缓:对存在的问题在下个版本改正。 符合设计 由报告人撤回 需要进一步信息 不同意建议 重复:关闭重复上报的缺陷。 (19)签名:签署以表明已经对改动进行了测试,对结果表示满意。(20)暂缓处理:对缺陷的推迟处理。 图图8-3 8-

11、3 、8-48-4整合起来即为一张完整的报告单。整合起来即为一张完整的报告单。公司名称 密级 问题报告编号:程序名 发布号 版本号报告类型(1-6) 严重性(1-3) 附件(Y/N)1.编码错误 4.文档 1.致命性2.设计问题 5.硬件 2.严重性3.建议 6.质疑 3.轻微性如果有,请描述:问题概要问题能否重现?(Y/N)问题描述及如何重现建议的改正措施(可选)报告人日期下面各项仅供开发组填写功能域 承办人注释状态(1-2)优先级(1-5)1.开放 2.关闭处理状态(1-9)处理版本1.未解决 4.暂缓 7.由报告人撤回2.已改正 5.符合设计 8.需要进一步信息3.不能重现 6.重复 9

12、.不同意建议暂缓处理(yes/no)图8-3 报告单(part 1)公司名称 密级 问题报告编号:程序名 发布号 版本号报告类型(1-6) 严重性(1-3) 附件(Y/N)1.编码错误 4.文档 1.致命性2.设计问题 5.硬件 2.严重性3.建议 6.质疑 3.轻微性如果有,请描述:问题概要问题能否重现?(Y/N)问题描述及如何重现建议的改正措施(可选)报告人日期下面各项仅供开发组填写功能域 承办人注释状态(1-2)优先级(1-5)1.开放 2.关闭处理状态(1-9)处理版本1.未解决 4.暂缓 7.由报告人撤回2.已改正 5.符合设计 8.需要进一步信息3.不能重现 6.重复 9.不同意建

13、议暂缓处理(yes/no)图8-4 报告单(part 2) 8.3.2 BUG 8.3.2 BUG报告的特点报告的特点 一份好的问题报告应是书面的、已编号的、简单的、易于理解的、可重现的、易读的和不做判断的。 1) 书面的 一份书面的报告是必要的,供日后对修改后的程序进行测试时使用;让管理层、销售人员和产品支持人员检查。 2) 已编号的 依据惟一的编号跟踪问题报告。 3) 简单的 一份报告应只描述一个问题,不要在一份报告中记录多个缺陷。 4) 可重现的 一定要强调BUG的可重现性。 5) 不做判断的 对程序员的评价要三思而后行,本着合作的精神,作出合理的判断。 8.3.38.3.3重现重现BU

14、GBUG的分析和方法的分析和方法 本节重点是报告编码错误报告编码错误,而非报告设计问题。 一、重现BUG的分析 “可重现”隐含了下列定义:我们能够描述如何让程序进入某个已知的状态。任何熟悉程序的人都能够依照我们的描述使程序进入该状态。从那个状态出发,我们确定出精确的一组步骤来暴露出问题。 为使报告更有效,我们应该对问题进一步分析, 目的在于: 1)找出问题最严重的后果。 找出某个BUG导致的最严重的后果,这样可以激发人们改正它的兴趣。一个看来很轻微的问题往往更有可能被暂缓处理。 例如:假设有个BUG在屏幕角落显示了一个无用的字符,这个问题很轻微,但是是可以报告的。有些时候,屏幕上显示出无用信息

15、只是一个孤立的问题(因此对它置之不理的决定可能是明智的,尤其是程序快要交付的时候)。但是如果继续运行这个程序,可能会出现一旦显示无用 信息之后,程序几乎会马上崩溃-最严重的后果。 2)找出最简单、最直接和最常见的BUG触发条件。如果理解和改正问题仅需要很小的工作量,那么就会修复它。如果问题的解决需要(或看起来需要)很长的时间和精力,程序员会不太情愿改正它。如果问题会在程序日常使用的过程中发生,管理层对问题的关注会增加。如果问题的出现几乎无人知晓,关注程度会很低。 3)找出产生相同问题的其他路径。 有时不止一种方法可以触发一个错误,若有两条不同的路径通往同一个BUG,比起仅有一条路径来势更有力的

16、危险信号。即使每条路径都包含着很复杂的步骤序列,存在两条路径也意味着代码中含有严重的错误。 要充分展示各条路径的差异,不能让程序员把多条路径视为对同一个BUG的相似描述。 4)找出相关的问题。 根据积累的经验,仿照以前发现BUG的方法,查找程序中其他可能的位置,能有相当的机会在新的代码中找出类似的问题。 二、可重现BUG的分析技术 1)寻找最关键的步骤 根据BUG查找代码中的错误,不要忽略任何细微的有关错误的线索。 应该查找下列的问题: 1. 错误信息; 2.处理延时; 3.屏幕闪烁; 4. 光标跳跃; 5.文本错误; 6. 工作指示灯在设备未使用时亮起。 2)最大程度地提高程序运行的可见性

17、将程序运行的越多方面变的可见,就越能看到更多的出错情况,也就越有可能明确关键的步骤。 用调试工具可以报告出当前活动的进程、程序占用的内存或其他资源的数量、正在使用的堆栈的数量以及其他的内部信息。 1.监测堆栈中的遗留数据的多少 2.监侧进程的收发消息,内存的占用情况。 另一条途径是将屏幕显示的所有内容和磁盘文件 的所有变更统统都打印出来,然后进行分析。 3)多尝试一些结果 将程序的事件进行组合的执行。 4)查找后续错误 一旦发现了某个错误,也应该再坚持运行程序一段时间,看看是否会有其他的错误出现。我们要认真细致地做这件事,最初出现的问题可能会诱发一系列后续问题。 5)渐进地省略或改变步骤 问题

18、复杂的时候可以跳过一些步骤,但对每个要省略的步骤进行测试,看看它是否是重现BUG的必要环节。 至于改变步骤,可以在每个步骤中查找是否存在边界条件,对边界条件的敏感程度,是一个测试人员技术成熟与否的标志之一。 6)在程序以前的版本中查找错误 7)查找配置依赖 三、让BUG可重现 如何触发BUG? 将我们记得的有关第一次操作的所有事情都记下来,进行一步一步的问题回溯。 倘若没有效果,可能是没有满足确切的条件, BUG没有显现出来。 下面列举了几种应该考虑到的情况: 1)竞争条件 2)被遗忘的细节 3)BUG造成的影响会导致其无法重现 4)BUG是依赖于内存的 5)仅会在初次运行时出现的BUG 6)

19、因数据错误导致的BUG 7)由于一些其他问题附带引起的BUG 8)间断性硬件故障 9)BUG依赖于时间 10)BUG依赖与资源 11)BUG由长期积累形成 8.3.4 BUG管理流程管理流程 对BUG的跟踪管理是测试工作的一个重要部分,测试的目的是为了尽早发现软件系统中的缺陷,因此,对BUG进行跟踪管理,确保每个被发现的缺陷都能及时得到处理。 BUG管理流程是一套复杂的处理过程,涉及到测试员(复审员)、项目数据库管理员、实施员(设计员)三方的交互,图8-4所示的BUG管理流转图详细描述了三方关联关系(同样适合正式技术复审问题处理流程)。 测 试 员 ( 复 审 员 )项 目 数 据 库实 施

20、员 ( 设 计 员 )测 试 用 例 开 始( 用 例 规 约 )填 写 测 试 结 果 ( 复审 结 果 ) 的 实 际 结果 和 备 注 输 入 框根 据 反 馈 检 查修 改 后 结 果提 交 记 录 至 项目 数 据 库 A u to M a il S e n d自 动 返 回 邮 件通 知 测 试 人 员( 复 审 人 员 ) 如 果 测 试 结 果 ( 复审 结 果 ) 为 已 解 决,项 目 数 据 库 会 自 动通 知 相 关 人 员 , 告知 问 题 已 经 关 闭将 反 馈 提 交 至项 目 数 据 库针 对 测 试 结 果( 复 审 结 果 ) 填写 相 应 修 改 意

21、见已 经 解 决M e s s a g e未 解 决回U p D a taF in dV ie wM e s s a g eS u b m itF in d数 据 库图8-4 BUG管理流转图 BUG跟踪管理的起始动作是测试员(复审员)选择一个测试用例开始测试,当测试员(复审员)发现程序实际输出值和程序期望值不符的时候,他就发现了一个BUG,并执行流程第二个动作“填写测试的实际结果”。 当测试员(复审员)向BUG跟踪管理系统递交该BUG时,系统将该BUG保存至“项目数据库”中,并且同步发送一个消息至“AutoMail Send”(可以是一个程序),由它向该BUG的最终负责者实施员(设计员)发送

22、一份“Error Report”。 实施员(设计员)会及时接受到这样的BUG报告,并且根据报告中包含的BUG唯一序号向“项目数据库”查询该BUG的详细信息。 当实施员(设计员)对BUG跟踪的修复动作完成后,就会在“项目数据库”中将该BUG的状态转换为“Fixed”,BUG跟踪管理系统接收到这样的“UpData”动作,就会自动向BUG的测试员(复审员)发送BUG已经修复的消息,测试员(复审员)对BUG进行确认测试,如果该BUG正确修复则关闭它,如果该BUG依然存在问题,整个动作回复到BUG跟踪管理的起始处。 1、如何提交系统中的BUG 不要在同一封邮件或者同一个错误输入框中报告多个(尤其在不同软

23、件包之中的)错误。 2、使用自动BUG报告工具 使用成熟的BUG管理工具实现BUG全程管理,可以有效避免被大量的测试数据所淹没而引发一系列问题。 有如下一些优点: BUG管理工具安装简单、运行方便、管理安全。 BUG管理工具有利于BUG的清楚传递,由于 使用了后台数据库进行管理,提供全面详尽的报告输入项,可产生标准化的BUG报告。 BUG管理工具提供大量的分析选项和强大的查询匹配能力,能根据各种条件组合进行BUG统计。当BUG在它的生命周期中变化时,开发人员、测试人员、及项目管理人员将及时获得动态的变化信息。 BUG管理人员允许你获取BUG历史记录,并在检查BUG的状态时参考这一记录。 BUG

24、管理工具可针对软件产品设定不同的模块,并针对不同的模块设定相关的责任人员,这样可以实现提交报告时自动发给指定的责任人。 BUG管理工具支持权限,设定不同的用户对BUG记录的操作权限不同,可有效控制进程管理。 BUG管理工具设定不同的BUG严重程度和优先级,从最初的报告到最后的解决,确保了错误不会被忽略,同时可以使注意力集中在优先级和严重程度高的错误上。 BUG管理工具自动发送邮件通知相关责任人员,并且根据设定的不同责任人,自动发送最新的BUG动态信息,有效地帮助测试人员和开发人员进行沟通。 3、通过电子邮件发送BUG报告 描述主题是要清楚而简洁地描述BUG。 邮件内容第一行的格式为:Packa

25、ge:, 指要报告的包含错误的Class包名称。 邮件内容的第二行格式为:Version:, 指该软件包的版本。 其他内容应该注意以下几点: 确切而完整的错误信息(这非常重要)。 您做了或输入了些什么,以便重现该问题。 错误行为的描述:您预期应该有什么样的行为,而您看到的是如何。 您建议如何改正,或甚至您自己做的修补程序。 详细解释您如何设置该程序,包含完整的设置文件属性。 任何其他依赖于这个问题软件包的软件包版本。 4、 BUG详细内容信息 如表8-1所示。 5、 轻微的BUG报告 轻微的BUG报告应该和重要的BUG报告分开发送。BUG描述信息BUG类别可追踪BUG标志BUG基本描述BUG所

26、属项目 子系统模块所属的项目子系统模块,最好能较精确的定位至模块BUG标题BUG简明描述BUG流转状态BUG流转状态,可分为Unconfirmed、New、Assigned、Reassigned、Needinfo、Reopened、Resolved、Reopen、Verified、ClosedBUG严重等级BUG严重等级,可分为Critical、Grave、Serious、Blocker、Important、Normal、Minor、TrivialBUG解决关键字 BUG解决关键字,可分为Fixed、Wontfix、Later、Remind、Duplicate、Incomplete、NotaB

27、UG、Invalid、WorksformeBUG提交人BUG提交人的名字(邮件地址)BUG提交时间BUG提交的时间,例如2003-1-23 14:00表8-1 Bug详细内容描述(part 1)BUG过程描述BUG指定解决人由测试人员确定,如果该BUG的流转状态从Unconfirmed&New变为AssignedBUG指定解决时间由测试人员确定,如果该BUG超过指定修复时间而未修复,则系统自动发送报警邮件。BUG处理描述如果实现人员对代码进行了修改,要求在此处体现出修改内容,如果代码行数很多则缩略书写BUG处理时间记录BUG处理时间BUG确认测试人员验证该BUG被正确的修复了BUG确认描述BU

28、G确认修复内容BUG确认时间BUG确认修复时间BUG详细描述对BUG的详细描述,对BUG描述的详细程度直接影响实现人员对该BUG的修复效果,描述应该尽可能详细BUG环境说明对测试环境的描述,避免实现人员和测试人员环境的不同造成BUG异议BUG附带附件附件包括对BUG现场出错快照(图片),错误输出文件信息等,加强该BUG的表现力表8-1 Bug详细内容描述(part 2) 6、不知道归属的BUG 设置默认的BUG修复人员,防止意外的丢失了BUG负责人的信息。 7、关闭BUG报告 提出的BUG被修正后,通过测试人员确认、测 试通过才可以关闭。 BUG的提出和关闭都是只能由测试人员执行。 将所有不能

29、被修复的BUG收集起来标记为“Wontfix”,统一递交给代码评审委员会。 8、接续的讨论信息 BUG的管理系统的流转过程中,会有针对该BUG的新的描述信息加入,例如实现人员或者测试人员加上的对处理BUG自己的理解和曾经使用过的解决方案等。 对于新的描述信息,请遵循以下规则: 新的描述信息和旧的描述信息之间应该增加醒目的隔离条。 新的信息描述应该包括提供者的名称和电子邮件地址。 新的描述信息应该包括信息的新增时间。 新的描述信息如果是建议修改意见,应该在该信息的开头加上关键字“建议解决方案”。 新的描述信息如果是某些疑问,应该在该信息的开头加上关键字“BUG疑问”。 新的描述信息如果是某些参考

30、信息,应该在该信息的开头加上关键字“参考帮助”。 9、列出的具有特殊意义的BUG 有两点,其一是该BUG经常在项目中出现,具有很好的提醒警告功能。 其二是该BUG和相关硬件设备关联,具有明显的前置出现特征。 这两种情况应由测试人员向所有系统使用者广播推广。 10、重开、重分配的BUG 可重新打开的BUG报告意味着该BUG在后续测试(回归)过程中重新出现了问题; 重新分配意味着该BUG具有跨项目的功能,即该BUG具有通用项目特征。 11、BUG的标题(特殊) 当用邮件系统递交BUG时,应注意BUG标题的书写格式,标题开头应标为:BUG#BUG简短描述#BUG发送者#BUG发送时间。本章小结本章小

31、结软件测试的主要目的就是为了发现软件Bug,因为Bug的存在直接影响着软件产品的质量。只有认识到了Bug给软件带来的不良影响,了解Bug的主要来源,才能够发现并消除更多的Bug,从而使得软件质量得到有力的保证。因此,在测试工作中很多人大都把主要精力放在提交Bug之前的几个阶段。相对而言, BUG管理工作比较薄弱。这也就是我们在实际工作当中,为什么常常会听到许多设计或实现人员抱怨,说他们按照测试后递交的BUG报告单竟然找不到BUG或者描述有偏差,导致开发人员与测试人员产生意见和隔阂。当然,也有一些测试人员辛苦寻找的BUG,在递交过程中却丢失了的现象,给将来要发布的软件系统留下隐患,这些都是混乱的BUG管理所造成的。本章介绍了软件BUG如何影响软件开发成本和软件质量、软件BUG种类和BUG报告单应该包括的内容,以及管理BUG的方法和流程。从中我们可以认识到,Bug的发现是软件测试的目的,而有效的Bug管理则能够尽可能减少测试人员与程序设计人员的冲突,提高测试工作的效率,为Bug的顺利解决提供良好的支持,从而提升软件质量。习题习题 、BUG的来源及影响?、BUG的种类有那些?并通过对实际案例的测试,分析一下找出的BUG都是在软件生命周期的哪个阶段出现的?、BUG报告单应该包括哪些内容及特点?填写一份报告单给程序设计人员,听听他的意见。、简述BUG的管理流程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁