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

下载本文档

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

文档简介

1、软件测试理论篇一、为什么软件要做软件测试纵观历史事件说明软件测试的重要性二、软件测试的概念1、测试是为了发现错误而执行程序的过程;2、在规定条件下,对程序进行操作,以发现错误,以软件质量进行评估;3、使用人工或者自动化手段,来运行或者测试某个子系统的过程,其目的在于检查它是否存在满足规定需求或弄清预期结果与实际结果之间的差别(IEEE:美国电气和电子工程师协会);正向思维:验证软件的正常工作评价一个程序或系统的特性或能力并确定是否达到预期的结果。在设计规定的环境下运行软件的所有功能,直至全部通过。逆向思维:假设软件有缺陷测试是为了发现错误而针对某个程序或系统的执行过程;寻找容易犯错地方和系统薄

2、弱环节,试图破坏系统直至找不出问题;三、软件测试的原则1、所有软件测试都要追溯到客户需求;客户、产品、业务2、应当把“尽早地和不断地的进行软件测试”作为软件测试者的座右铭;尽早地:需求分析以后并且经过评审不断地:5轮测t3轮测试3、完全测试是不可能的,测试需要终止;避免穷举4、测试除了检查程序是否做了 “应该做的”还应该检查是否“做了不应该做的5、严格执行测试计划,尽量避免测试的随意性测试是一个有组织、有计划、有步骤的一个活动6、杀虫剂现象缺陷会具有抗药性组内互测。新人测试。7、用例包含合理和不合理的输入条件测试用例 test case8、充分注意测试中的集群现象发现错误数目多的模块,往往意味

3、着残留在该模块的缺陷会更多。软件测试的2/8原则i、80%的缺陷产生于20%的模块;ii、80%的测试效果取决于 20%的测试工作;iii、修复了 20%的缺陷,可以带来客户 80%的满意度;9、程序员应避免检查自己的程序一方面,自己是不愿意承认自己错误;另一方面,由于思维定式开发人员很难发现自己的问题;10、妥善保存一切测试过程文档测试的效果往往要依赖文档来体现。四、软件测试的目的及对象1、软件测试是程序的执行过程,目的在于发现错误;2、测试是为了证明程序有错,而不是证明程序无错误;3、一个好的测试用例在于它能发现至今未发现的错误;4、一个成功的测试是发现至今未发现的错误的测试;软件测试的最

4、终目的是确保给用户的软件产品符合用户的要求。软件测试对象:软件=程序+数据+文档五、测试和调试的区别调试是建设性的测试是破坏性的1、 人员的不同:通常来说,测试人员是测试工程师,调试人员是是程序员2、 目的不同:测试的目的之一是发现软件店中的缺陷。而调试的主要目的是为了定位和修改软件中的缺陷;3、 过程不同:测试是从已知的条件开始,使用预先定义的过程,并且有预期的结果,并且有与之的结果。调试是从未知的条件开始,结束的过程可能不可预计4、 计划不同:测试可以计划,可以预先制定测试用例和过程。工作进度可以度量。调试的过程或持续时间相对比较困难5、 对象不同:测试的对象包括软件开发过程中的程序、数据

5、、文档,而调试的对象一般来说只有代码;六、测试的风险1、进度风险:测试的周期短而造成测试覆盖不全面;开发不能按时交付版本,导致测试周期缩短;2、人员风险测试人员不足影响测试进度:请假、调岗、离职(核心人员)测试人员经验不足,技能不够、业务不熟。3、质量风险质量的标准不统一,某些缺陷的严重等级不一致;4、成本风险人力和物力5、变更风险需求变更七、测试工程师应该具备的技能1、计算机相关的知识,能够熟练使用常用的管理工具Bugfree、禅道、bugzilla、mantis、testlink> JIRA、QC (HP) QC (11.5 版本后叫 ALM )应用程序管理工具2、软件基础知识:软件

6、工程,软件生命周期、测试理论和测试方式有较深的理解;3、软件测试技术,方法,流程,测试文档编写,能独立设计和执行测试用例,提交完整的 缺陷报告单,编写测试报告。4、计算机开发语言 C, C+ , java, JavaScript:, VBScript , shell;C面向过程Java面向对象、跨平台JavaScript VBScript python 脚本语言5、数据库 SQLServer, Oracle, MySQL等数据库知识Oracle (甲骨文)、MySQL、SQLServer> DB26、操作系统 linux、 windows、UNIX、MAC 等7、网络基础知识,能够独立完

7、成测试环境的搭建;8、测试工具,能够熟练使用至少一种功能/性能自动化测试工具;自动化工具: QTP (HP ) QTP11.5改名为:UFTWinRunner Selenium: 支持 Java、perl、python性能工具:LoadRunner (LR) HP c语言 类 c、QAload、Jmeter9、质量管理知识,如 CMM , CMMI以及ISO9001;10、学好一门或者多门外语;八、测试工程师具备的素质1、三心:责任心、耐心、细心2、二力:沟通能力、洞察力3、一个精神:团队精神九、测试工程师的职责1、配置测试环境2、编写测试计划3、设计测试用例4、执行软件测试5、提交软件缺陷6

8、、编写缺陷报告7、验证修正的缺陷软件研发过程、软件研发的模型I、瀑布模型:是一种线性的、顺序的软件的开发模型三个阶段:定义阶段、开发阶段、维护阶段瀑布模型白特点:1、线性化模型结构;2、各个阶段具有里程碑式特征3、基于文档的驱动;4、严格的阶段评审机制优点:提供了软件开发的基本框架,缺点:初始阶段指出了全部需求,不方便修改;流程不可逆II、V模型用户需求需求分析概要设计详细设计编码单元测试集成测试系统测试验收测试V模型的优点:1、明确了测试过程中存在的不同级别;2、说明了测试和开发的对应关系;3、v模型的测试策略包含了低层测试(代码测试)又包含了高层测 试(需求测试)V模型的缺点:1、它仅仅把

9、测试过程作为需求分析,概要设计,详细设计编码之后 的一个阶段,容易让人理解为测试是软件开发的最后一个阶段 2、没有明确说明早期的测试,不符合尽早测试和不断地进行测试的 原则(用户需求对不对要到验收测试才能发现)。3、和瀑布模型一样,流程单一不可逆;III、W模型W模型的优点:1、符合尽早测试和不断测试的原则2、符合实际工作中的测试要求W模型的缺点:无法迭代,不可逆X模型:X模型提出了探索测试的概念 (边设计用例,边测试)。H模型螺旋模型:明确风险和化解风险原型范型:问题:开发初期很难确定用户需求规格 解决:用户与开发者之间的鸿沟敏捷开发:以人为核心,适应变化,迭代,循序渐进的开发方法敏捷开发的

10、理念:1、个体和交互,胜过过程和工具2、可以工作的软件,胜过面面俱到的文档3、客户合作,胜过合同谈判 4、响应变化,胜过遵循计划二、软件的生命周期需求设计编码测试维护升级废弃SPEC产品需求规格说明书三、软件的测试流程需求分析测试计划测试用例测试执行测试报告四、软件项目组的成员项目经理:(PM)架构师:程序员:测试工程师:资料工程师:配置管理员:质量监管员:(QA)技术顾问:数据库专家:软件测试分类一、按阶段划分单元测试(unit testing ):是指对软件中最小可测试单元进行检查和验证。I、对于单元测试中的单元的含义, 一般来说,要根据实际情况去判断其具体含义, 如c语言中单元指一个函数

11、,Java里面 指一个类,图形化软件中指一个窗口或者 菜单等II、总的来说,单元就是指人为规定的最小被测功能模块。单元测试是在软件开发过程中要进行的最低级的测试活动,软件的独立单元将在与程序的其他部分相 隔离的情况下进行测试。III 、单元测试包含的内容如下:入口和出口函数 输入和输出信息 错误处理信息 部分边界数值测试集成测试(Integration testing ),也叫组装测试或者联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成子系统 或者系统,进行集成测试(集成测试测的是接口 )实践表明,一些模块虽然能够单独地工作,但是并不能保证连接起来也能正常工作,程序在

12、某些局部反映不出来的问题,在全局上很可能暴露出来,影响功能的实现 集成测试的方法:I、 非增量式集成(一次性集成)优点:集成速度快;缺点:集成的难度大,同时一旦某个模块出现问题。很难定位问题和修改II、 增量式集成:自顶而下增量式测试桩程序;自底而上增量式测试驱动程序;确认测试:目的是向未来的用户表明系统能够像预期要求的那样工作。进过集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口 错误也已经基本排除了,接着就应该进一步验证软件的有效性这就是确认测试的 任务,即软件的功能和性能如同用户所 合理期待的那样。系统测试(System testing )将确认的软件、计算机硬件、外设

13、、网络等其他元索结合在 一起,进行信息系统的各种组装测试和确认测试系统测试是针对整个产品系统进行测试目地是验证系统是否符合满足了需求规格的定义,找出与需求不符合或者与之矛盾的地方,从而提出更加完善的方案系统测试发现问题之后要经过调试找出错误的原因和位置,然后进行改正,是基 于系统整体需求说明书的黑盒测试,应该覆盖系统所有联合部件测试对象不仅仅包括测试的软件还包括软件依赖的硬件、外设甚至包括某些数据、 某些支持软件及接口等测试范围:功能测试(functional testing ):验证软件是否符合需求规格说明书包含的 功能;性能测试(performance testing ):检查系统运行时的

14、各项性能指标( CPU内 存、网络、响应时间、点击率、吞吐量、用户并发数);负载测试(load testing ):性能测试的一种,不断给系统施加压力的过程,来 判断系统的承受能力;压力测试(stress testing ):又称为强度测试,也是性能测试的一种,不断给 系统施加压力,在饱和的状态下,再持续一段时间,来测试系统的最大承受能力 稳定性测试 (stability testing ):主要测试系统在一段时间内是否正常运行(7*24H、3*24H)兼容性测试(compatibility testing ):硬件兼容(整机兼容和外设兼容)、软件兼容(操作系统兼容windows、UNIX、L

15、INUX、MAC不同版本之间的兼容性 、 浏览器兼容性IE、Chrome、FireFOx、opera、Safari、数据库兼容Oracle、MySQL SQLServer、DB2、与其他软件中间件的兼容)容量测试(volume testing ):面向数据的测试,测试系统最大限度处理数据的 能力;数据备份测试 (backup testing ):验证程序失效是,备份数据的能力,自动备 份和手工备份;失效恢复测试 (recovery testing ):系统从软件或者硬件中恢复的能力,强调 系统在发生失效时,必须在一定的时间范围内可以恢复成功,同时可以继续运行。可用性测试(usability t

16、esting ):主要测试用户在理解和使用系统的时候是否 方便;健壮性测试 (robustness testing ):又叫容错性测试,系统出现故障时候可以 恢复,忽略故障是否可以继续运行;安装测试(installation testing ):是否可以安装、是否可以选择正确路径来安 装、可以在不同系统上安装、安装过程中断后,是否可以继续安装、安装过程中 是否有良好的错误提示信息、再次安装、取消安装、卸载(有无残留文件)、更 新版本、修复配置测试(configuration testing ):主要针对硬件,测试软件在一定的硬件配 置下是否出现问题,大体包括:pc、组件、外设、接口、驱动;文档

17、测试 (documentation testing ):帮助文档使用手册等,主要验 证用户使用文档是否正确、和保证操作手册的过程能欧冠正常工作;在线帮助测试 (online help testing ):主要测试的是给用户提供的实时的资讯 服务的可操作性和准确性;GUI测试(graphical user interface )图形用户接口测试,主要测试的是前端的 展示内容:菜单、按键、对话框;安全测试(security testing ):主要测试具备非法或者非正常途径访问被测试 系统,系统可以提供的保护和防御的机制;验收测试:确定产品是否能够满足合同或用户所规定需求的测试,这是管理性和防御性

18、控制主要确认软件是否按照合同要求进行工作,既满足软件需求规格说明书中的要求。验收测试的方法:I、非正式的验收测试a测试:软件开发公司组织内部人员模拟各类用户行为对即将上市的产品进 行测试开发和测试人员在场,测试可控?测试(Beta):软件开发公司组织各方面的的典型客户在日常工作中实际 使用,并要求用户报告异常情况、提出改进意见,然后公司再进行完善。开发和测试人员不在场,测试不可控II、正式的验收测试有正规的测试过程,需要制定测试计划、定义测试方案、选择测试用例,进行测试, 结果提交。着重考虑软件是否满足合同规定的所有功能和性能, 文档资料是否完整、 准确,人机界面和其他方面。按照是否运行程序划

19、分静态测试不运行被测试的软件,而只是静态地检查代码、界面或者文档方式名称执行人员检查内容检查过程桌面检查程序员对源程序代码进行 分析、检验,并补 充相关的文档,发 现程序中的错误代码审查程序员和测 试员组成的 检查小组通过阅读、讨论和 争议,以程序进行 静态分析的过程第一步:小组成员提前阅读设计 规格书、程序文本等相关文档第二步:召开程序审查会,开发 人员读程序,审查小组讨论、发 现、解决问题走查程序员和测 试员组成的 审查小组通过逻辑运行程 序,发现问题第一步:小组成员提前阅读设计 规格书、程序文本等相关文档第二步:利用测试用例,使程序 逻辑运行,记录程序的踪迹,发 现、讨论、解决问题动态测

20、试实际运行被测试的软件, 输入相应的测试数据, 检查实际的输出结果是否和预期结 果相一致的过程。三、按照是否查看代码划分黑盒测试:把软件看成一个黑盒子, 不管内部逻辑和内部特性,只依据规格说明书检查程序的功能是否符合功能说明,又称为功能测试或数据驱动测试白盒测试:又称为结构测试或逻辑驱动测试。着重于程序内部结构和算法,不关心功能和性能指标灰盒测试:介于白盒和黑盒测试之间, 基于程序运行时刻的外部表现同时又结合程 序内部逻辑结构来设计用例, 执行程序并采集程序路径执行信息和外部用户接口结 果的测试技术。四、其他划分回归测试:对软件新版本测试时,重复执行上一版本使用过的测试用例在项目周期很紧张的时

21、候,如何开展回归测试?第一:验证开发人员已经修复的缺陷;第二:测试用例优先级别高的测试用例;(主要的功能)第三:验证有关联的模块;第四:验证经常出现问题的模块;(2-8原则)冒烟测试:冒烟测试的对象是每一个新编译需要正式测试的版本,目的是确认软件 的基本功能正常,可以进行后续的正式测试工作。随机测试(猴子测试):测试数据是随机产生的,在测试用例之外,只能作为测试 的补充。敏捷测试(敏捷开发引发):TDD (测试驱动开发):软件质量软件质量:软件特性的总和,软件满足规定或潜在用户需求的能力软件质量包括:内部质量:软件内部设计和结构;外部质量:软件外部功能和性能等的体现;过程质量:软件生产流程是否

22、合理;使用质量:在使用过程中的用户满意度和易用性的表现;软件质量的六大特性:功能性:当软件在指定条件下使用时,软件产品提供满足明确和隐含要求的功能的能力明确的(显性的需求)隐含的(隐形的需求)适合性:软件为指定任务和用户目标,提供了一组合适功能的能力准确性:软件系统提供给用户的功能是否满足用户对该功能的精确度要求互操作性:软件系统和一个或多个周边系统进行信息交互的能力保密安全性:软件系统保护信息和数据的能力;I、防止未得到授权的人或系统访问相关的信息或数据;n、保证得到授权的人或系统能正常访问相关的信息或数据;不同的系统对于安全性的需求差别很大常见的安全性测试:1、户验证:登录密码验证、ip地

23、址访问限制等2、用户权限管理:验证低级别用户是否具有了高级别用户的权限,各级别用户权限都得到了实现。3、统数据的保护:对例如系统文件、用户密码文件等进行隐藏、密码验证、内容加密、备份4、防DOWC击(拒绝服务)5、加密、解密:在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输 出去,使信息在传输过程中即使被窃取或截获,窃取者也不能了解信息的内容,从而保证信息 传输的安全功能性的依从性:遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范等) 约定或法规以及类似规定的能力可靠性:在特定条件下使用时,软件产品维持性能级别的能力;成熟性:软件为避免由软件中的错误而导致软件失效的能

24、力容错性:软件出现故障或者违反了制定接口的情况,软件规定了维护性能级别的能力易恢复性:系统失效以后恢复原有功能和性能的能力原有能力恢复的程度原有能力恢复的速度易用性:在指定条件下使用,软件产品被理解、学习、使用和吸引用户的能力易理解:用户在使用软件系统的过程中,系统交互给用户的信息是否准确、清晰、易懂,能帮助,用户准确理解系统当前真实的状态,指导其进一步的操作。易学性:软件系统提供相关的辅助手段,帮助用户学习使用它的能力。易操作性:软件使用户能操作和控制它的能力。 效率:时间效率:系统在各业务场景下完成用户指定的业务请求所需的响应时间资源效率:系统在各业务场景下完成用户指定的业务请求所消耗的系

25、统资源。如CPU使用率、内存使用率、IO,通信带宽使用等效率的依从性: 维护性:易分析性:是指软件产品诊断软件中的缺陷或失效原因,以及判定待修改的部分的能力。易改变性:是指软件产品使指定的修改可以被实现的能力 稳定性:是指软件产品避免由于软件修改而造成意外结果的能力。易测试性:是指软件产品使已修改软件能被确认的能力 可移植性:适应性:软件系统无需做任何相应变动就能适应不同运行环境 易安装性:易安装性,是指软件产品在指定环境中被安装的能力 共存性:软件系统和在公共环境与其共享资源的其他系统共存的能力 易替换性:是指软件产品在环境相同、目的相同的情况下替代另一个指定软件产品的能 力。可移植性的依从

26、性:遵循相关的标准(国际标准、国家标准、行业标准、企业内部规范 等)约定或法规以及类似规定的能力。QA即英文QUALITY ASSURANC的简称,中文意思是质量保证QC即英文QUALITY CONTRO的简称,中文意义是质量控制QC和QA的主要区别:前者是保证产品质量符合规定,后者是建立体系并确保体系按要求运作,以提供内外部的信任QC就是测试人员,职责是尽可能早地发现软件的缺陷,并确保缺陷得到修复QA是流程的监督者,职责是创建和执行改进软件开发过程,并防止软件缺陷发生的标准和方法 ISO:国际标准化组织.iso表示光盘的镜像文件OSI:开放系统互联 IOS:苹果系统CMMI Capabili

27、ty Maturity Model Integration (能力成熟度模型综合 )5个成熟度等级分别为: 第1级:初始级 第2级:受管理级 第3级:已定义级 第4级:定量管理级 第5级:持续优化级需求分析一、测试需求:测试需求主要解决“测什么”的问题,即指明被测试对象中什么需要测试测试需求通常是以软件开发测试需求的特征:1、制定的测试需求项必须是可核实的(可量化);2、测试需求应指明满足需求的正常的前置条件,同时也要指明不满足需求的是的出错条件(包含差错条件);3、测试需求不涉及具体的测试数据(不涉及测试数据);测试需求分析过程需求采集:需求规格说明书需求分析:测试要点分析、功能交互分析、质

28、量特性分析、测试需求评审:二、测试计划1、为什么要编写测试计划?避免测试的随意性上:PM QA产品经理、开发经理、测试经理中:测试组长、销售人员下:开发人员、测试人员2、什么时间编写测试计划需求分析之后,在整个测试工作过程中,不断修改3、由谁来编写测试计划具有丰富经验的项目测试负责人如何制定好测试计划认真做好测试资料的搜集整理工作;项目计划、版本计划明确测试目标,增强测试计划的实用性坚持测试的“ 5W原则,明确内容和过程5Wwhy :为什么要进行这些测试what :测试哪些方面,不同阶段的工作内容where :相关文档,缺陷的存在位置,测试环境等when :测试不同阶段的起止时间who:项目有

29、关人员组成,安排哪些测试人员进行测试测试的开始和结束条件开始条件:软件测试在项目启动、需求分析开始时随之启动结束条件:需求覆盖率(100%、用例执行率(100%)、缺陷遗留率(2-5%)、达到预期的质量目标三、测试计划模板DRAFT初稿MODIFY修改版RELEASE 终稿测试用例设计test case一、软件测试用例包含哪些部分1、用例编号(用例ID)项目名+模块名+编码(唯一标识)美萍酒店管理系统_营销管理_0012、功能接口一级模块+二级模块营销管理_VIP会员管理3、用例标题(用例名称)见名知意(在哪里+操作+结果)(地点+动作+ )QQ登录界面用户名和密码匹配一致登录成功学生信息系统

30、输入部分非法信息登录失败注意事项:(1)、要简洁(W 24个字)(2)、不能出现句号(3)、不能有两个以上的逗号(4)、名称不能重复:不能出现两个或者以上完全一样的用例标题。(5)、不能写成缺陷(缺陷表示一个错误,用例描述的是一种情况)。4、优先级高、中、低高:基本的、重要的功能。中:错误的、边界的、配置的低:低级别不代表这个功能不重要,在整个项目周期中,被使用的频率不是非常高。 如:GUI、信息提示、压力、性能。高:中:低 =3:4:3 = 2:6:2回归测试和冒烟测试5、预置条件(前提条件)6、操作步骤(要有具体数据)1 .输入用户名:“ 12384934” ;2 .输入密码:"

31、aaaaa2 ;3 .点击:【登录】按钮。7、预期结果登录成功。8、实际结果(excel )9、设计人(作者)10、设计时间11、备注粒度:1、用例的粒度大,则总的用例数就少,用例看起来也简洁。2、用例的粒度小,则单条用例关注的测试点很集中,不容易遗漏,并且执行需要的时间比较好估计。用例粒度大,用例数目少,但是有可能有遗漏。用例粒度小,用例数目多,但是有可能要在执行上消耗很多的时间。用例执行的状态:1、 No test :未执行状态,当用例还尚未被执行。2、 Pass :通过状态,执行结果与预期结果相符。3、 Fail :失败状态,执行结果与预期结果不符。4、 Block :阻塞状态,妨碍了用

32、例步骤的执行。5、 Investigate :观察状态,需要耗较多时间去观察其结果。6、 N/A :不适用。就使得我们完全有理由在测试用例执行的过程中,同时不断地优化我们的测试用例,使得用例的质量越来越高。黑盒用例的设计方法1、等价类划分方法等价类1、定义:把所有可能的输入数据,划分成若干个子集,从子集中选取具有代表性的测试数据作为测试用例。2、划分等价类分为:有效等价类和无效等价类有效等价类:符合需求规格说明书,合理的输入数据的集合。无效等价类:不符合需求规格说明书,无意义的输入数据的集合。3、等价类划分的步骤:(1)、先考虑输入数据的数据类型。(合法和非法类型)(2)、再考虑输入数值的数据范围。(合法类型中的合法区间和非法区间)。(3)、画出示意图,区分等价类。(4)、为每一个等价类编号。(5)、从一个等价类中选取测试数据作为测试用例。有效等价类要尽可能多的覆盖无效等价类要逐一覆盖2、边界值方法边界值:边界值是发现错误能力最强的测试方法。内点:区域内的任意点都是内点。上点:边界上的点。离点:距离上点最近的点。边界值:包含:上点和离点。3、错误推测法基于经验和直觉推测程序中所有可能存在的各种错误,从而真针

温馨提示

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

评论

0/150

提交评论