第九章 非功能性测试

上传人:沙** 文档编号:243077345 上传时间:2024-09-15 格式:PPT 页数:64 大小:346.50KB
返回 下载 相关 举报
第九章 非功能性测试_第1页
第1页 / 共64页
第九章 非功能性测试_第2页
第2页 / 共64页
第九章 非功能性测试_第3页
第3页 / 共64页
点击查看更多>>
资源描述
标题,一级,二级,三级,四级,软件测试方法和应用,9-,第九章 非功能测试,1,本章内容,本章讨论与系统非功能测试相关的知识,包括,性能测试,兼容性测试,用户界面测试,安装测试,安全性测试,文档测试,软件测试方法和应用,9-,非功能测试,系统的非功能属性,系统的非功能属性不描述系统的功能而是站在整体的角度说明系统应满足的要求,如性能、安全、易用性、可靠性等,非功能性测试,软件测试高级话题之一,验证系统的非功能属性是否满足用户需求的过程,非功能性测试的,执行(,但是非功能测试的规划越早开始越好,),,通常在完成功能测试之后,以方便定位问题。,主要涉及,性能测试、兼容性测试、用户界面测试、安装测试、安全性测试和文档测试,软件测试方法和应用,9-,性能,性能,与被测系统相关的一系列度量指标。,不同的系统关心不同的性能指标,例如,通信软件关心的性能指标有接通率、掉话率、接续容量等,证券系统关心下单速度、下单的数量、是否堵单等,嵌入式软件关心的性能指标中断响应、内存使用、实时性,站在用户角度,响应时间是所有系统都关心的指标性能,软件测试方法和应用,9-,性能测试,定义,是一个,综合性的测试活动,,通常包括一系列与被测系统性能相关的互相关联互相包含的测试活动,如常规的性能测试、负载测试、压力测试、并发测试、强度测试、大数据量测试等,目的,在于优化最重要的应用程序性能指标,提高用户体验的满意,测试思想,借助测试工具或手工开发测试脚本,模拟执行典型的用户行为,监控关键性能测量结果以判断定义的性能指标是否达到期望的目标,软件测试方法和应用,9-,性能测试,常规的性能测试,在正常条件下进行的测试,主要测试正常使用时系统是否满足要求,同时可能为了保留系统的扩展空间而进行一些稍稍超出“正常”范围的测试。,负载测试,通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。,压力测试,通过逐步增加系统负载,测试系统性能的变化并最终确定在什么负载条件下系统性能处于失效状态并以此来获得系统能提供的最大服务级别的测试,其目的在于发现在什么条件下系统的性能会变得不可接受。,软件测试方法和应用,9-,性能测试,强度测试,迫使系统在异常的资源配置下运行以检查程序对异常情况的抵抗能力,判断系统的稳定性以及系统未来的扩展空间。,并发测试,要指测试多个用户同时访问同一个应用程序、同一个模块或者数据记录时是否存在死锁或者其它性能问题。,并发一般分两种情况:,严格意义上的并发:所有的用户在同一时刻做同一件事情或者操作,广义范围上的并发:指用户对系统发出的请求或者进行的操作,可以是相同的也可以是不同的。,软件测试方法和应用,9-,性能测试,大数据量测试包,含独立数据量测试和综合数据量测试。,独立数据量测试是针对某些系统存储、传输、统计查询等业务进行单用户大数据量测试。,综合数据量测试是与并发测试等相结合的在极限状态下的测试。,软件测试方法和应用,9-,性能测试过程,性能测试过程,性能测试规划,性能测试设计与开发,性能测试执行与监控,测试结果分析和系统调整,性能测试过程,软件测试方法和应用,9-,性能测试规划,目标,确定性能测试需求,制定性能测试策略,规划性能测试各类相关资源,开发并评审性能测试计划,软件测试方法和应用,9-,性能测试规划,步骤,分析性能测试需求,规划性能测试环境,开发并评审性能测试计划,软件测试方法和应用,9-,性能测试规划,步骤,分析性能测试需求,规划性能测试环境,开发并评审性能测试计划,软件测试方法和应用,9-,分析性能测试需求,依据,用户需求说明,任务,明确性能测试目标和范围,测试的对象,应用系统的使用模式,其它,软件测试方法和应用,9-,分析性能测试需求,明确性能测试目标和范围,用户需求不同,性能测试的目标也有所不同,依据性能目标,确定相应的性能测试活动和范围,包含系统要达到的性能指标,这些指标应该以可度量的形式给出并且统一性能指标的含义,软件测试方法和应用,9-,分析性能测试需求,测试对象,明确性能测试活动中涉及的,功能点或功能点的组合,用户类型、每种用户的数量、典型行为、系统行为、这些行为发生的时间和频率百分比,需要模拟哪些用户或者部门的哪些活动等内容,明确用户任务的分布情况,方法,分析被测系统的业务,用户对系统地使用情况,软件测试方法和应用,9-,分析被测系统业务,测试对象,确定系统的核心模块,核心模块:业务比较复杂或者用户使用频率较高的模块,模块间的耦合关系,为了更加清晰地了解核心模块间数据的传输方式以便更真实地模拟多用户并发时的情况,分析系统的压力点,系统压力点多是用户使用比较频繁或者数据量较大的地方,分析系统压力点是指站在全局角度来分析系统可能产生瓶颈的功能点,进而制定合适的测试方案。,软件测试方法和应用,9-,用户对系统地使用情况,意义,确定用户对系统的使用情况是设计测试用例的基础,方法,用户现场调查,分析系统日志,需要的信息包括,系统有多少类典型的用户、每类用户的大概数量、不同时间段各类用户大概按照何种比例使用系统、用户的行为、系统的行为、这些行为发生的时间和比率、在系统生命周期内用户数量的变化情况如何。,可以利用任务分布图法描述上述信息,软件测试方法和应用,9-,任务分布图示例,任务图示例,软件测试方法和应用,9-,性能测试规划,步骤,分析性能测试需求,规划性能测试环境,开发并评审性能测试计划,软件测试方法和应用,9-,规划性能测试环境,任务,规划性能测试的软硬件环境,制定测试环境的维护策略,反复使用,Ghost,维护一些测试环境,利用,VMware,在同台电脑上构建多个测试平台,使用备份,/,恢复策略维护数据库中的内容等。,性能选择测试工具,软件测试方法和应用,9-,规划性能测试环境,性能测试环境规划的内容,一般的分布式处理系统其性能测试环境规划包括,网络环境设计:带宽和拓扑结构,操作系统环境规划,数据库环境规划,服务器环境规划,硬件资源环境设计规划,客户端环境规划,软件测试方法和应用,9-,规划性能测试环境,如何规划性能测试环境,了解终端用户的真实部署环境,确定系统组件及各个组件的配置,掌握如下信息:,连接到系统的用户数,客户端计算机的配置情况,服务器与客户端之间的通信方式,中间件配置和应用程序服务器,可能影响相应时间的其他网络组件,通信设备的吞吐量,每个设备可以处理的并发用户数。,软件测试方法和应用,9-,性能测试工具,为什么使用工具,性能测试要通过模拟大量用户行才能进行,如果使用纯手工测试的方法,性能测试不仅在执行上异常困难另外成本也会变得难以让人接受。,有很多可以进行性能测试的工具,比如:,LoadRunner,IBM Functional Tester,开源工具:,Jmeter,Opensta,. Grinder etc.,软件测试方法和应用,9-,性能测试规划,步骤,分析性能测试需求,规划性能测试环境,开发并评审性能测试计划,软件测试方法和应用,9-,性能测试计划,内容,性能测试策略和测试范围,性能测试目标、方法、环境和工具,性能团队成员及其职责,测试进度安排,性能测试执行标准(开始、结束、挂起、恢复等),性能测试中的风险,相关的培训,软件测试方法和应用,9-,性能测试设计和开发,目标,设计并评审性能测试用例,开发性能测试脚本,验证脚本功能的正确性,软件测试方法和应用,9-,性能测试设计和开发,主要设计内容,场景设计,不同业务模式下的场景,不同时间段内的场景,不同时期的场景,数据设计,并发数设计,开发和收集反应用户实际行为的测试数据,软件测试方法和应用,9-,并发用户数设计,方法,极限法,取最大在线用户数作为最大并发数,可以通过日志分析,也可以使用系统已经注册的用户数量作为系统的用户数量,然后按照经验公式来估算最大并发用户数量。,用户趋势分析法,对软件生存周期内的用户未来趋势进行分析,预测系统可能达到的最大使用用户数目,从而估计系统的最大并发用户数目,经验评估法,软件测试方法和应用,9-,性能测试设计和开发,步骤,基于用户对系统的使用情况,分析出用户现实中的典型场景,基于这些场景设计性能测试用例,确定测试中使用的具体数据,借助性能测试工具或某种编程语言开发性能测试脚本实现性能测试用例,并发用户数需要逐步提高,软件测试方法和应用,9-,性能测试执行与监控,目标,借助工具或者真实的用户,运依次执行性能测试用例,监控关键测量指标,收集相关数据,软件测试方法和应用,9-,性能测试执行,任务,搭建与维护测试环境,选择和配置关键测量指标,关键测量指标是在实际的性能测试过程中需要监控和分析的测量结果,通过观察这些测量结果来确认系统是否达到定义的性能目标。,执行测试用例,监控测试执行,保存测试结果,软件测试方法和应用,9-,结果分析与系统调整,目标,分析测试结果,确定系统是否存在性能问题,输出性能测试报告,如果发现存在性能问题,则由相关责任人负责修改,修改完毕后,可能引起另一个性能测试周期用以验证问题是否解决,软件测试方法和应用,9-,结果分析,原则,由外而内,由表及里,层层深入,从最终用户直接可以感受到的响应时间入手,如果测试结果显示满足用户对性能的期望,则系统的性能满足要求,否则说明系统存在性能问题,确定系统瓶颈是出现在网络环节还是服务器环节,CPU,内存,磁盘,层层推进,判断相应环节的更细组件的响应时间,直到最后找到造成性能问题的根本原因,软件测试方法和应用,9-,结果分析,CPU,Process Time 85%,Process Queue Length 2*,处理器个数,内存,Available memory 0,Pages/,秒(,Page in/,s+Page,out/s,),Page in,的值需,80,硬盘(磁盘的忙碌程度),Disk Time 80%,软件测试方法和应用,9-,性能调整,步骤,确定问题,确定原因,确定调整目标,测试解决方法,分析调整结果,软件测试方法和应用,9-,兼容性测试,定义,验证被测系统是否可以在各种可能的运行环境中正常工作的测试活动,为什么需要进行兼容性测试,硬件类型、品种多种多样,软件类型、品种多种多样,软硬件之间客观存在的差异,使得系统在运行时存在在某些环境中工作正常但却在其它环境中出现问题的情况,内容,减少软硬件的组合数目,软件测试方法和应用,9-,案例,案例,如果要执行一个完全的兼容性测试,配置组合将是一个巨大的数字,以窗口在线游戏程序为例,假设游戏支持大约,350,个可能的显示卡,,200,个声卡,,800,个调制解调器,,1200,个打印机,这样就有,3502008001200,种组合,即便你只执行这些不同配置条件下的一定数量的测试用例,测试用例的数量也是相当可观的,软件测试方法和应用,9-,兼容性测试步骤,对软件来说,关注被测系统与其它软件之间的互操作和信息共享是否正常,(,需兼容的应用程序和它们的具体版本在规格说明书中定义,),兼容性测试的软件环境通常,包括三方面,平台和应用软件版本:,需要考虑被测系统使用什么平台,系统设计时考虑兼容的应用程序,被测系统自身的向前向后兼容性,标准:,概要标准用于指导产品的基本操作属性,如颜色、感官、支持的特性等,详细标准规定了产品的详细信息比如文件格式,通讯协议,软件测试方法和应用,9-,兼容性测试步骤,对软件来说,兼容性测试的软件环境通常,包括,数据共享:,如果数据在程序间共享,应遵守相应的协议和标准数据格式,考虑文件存储和装载、输入输出、剪切、拷贝和粘贴,实时数据传输方法下的共享信息是否正确,软件测试方法和应用,9-,兼容性测试步骤,测试步骤,对于硬件来说,确定需要的硬件类型,确定可用的硬件品牌、模块和设备驱动程序,确定被测系统可能用到的硬件特性、模式和选项,构造硬件配置列表,确定被测系统在这些硬件组合下的独特属性,软件测试方法和应用,9-,确定硬件配置,通过如下方式确定你需要的硬件类型:,问问自己需要什么样的硬件配置,确定软件所需的关键硬件,仔细检查软件特性确保考虑了各种情况,确定哪些硬件品牌、调制解调器和设备驱动器是可用的,确定合适的设备,不要太老的,确定对等的配套设备,确定设备驱动器,考虑下列因素:,操作系统、装备、在该硬件或操作系统上可用的最新驱动,客户有的或可以得到的硬件,软件测试方法和应用,9-,确定硬件配置,确定哪些硬件特性、模式和选项是可能使用到的,每个设备都有很多选项,你的软件未必需要支持所有的设备选项,最小配置应该被测试,记录下确定的硬件配置,运用等价类法划分确定的硬件类型,把配置信息记录到表单中,比如普及度、类型、年限、制造商、模型、设备驱动版本、选项等等,把通过步骤,1,中确定的硬件填写到表单中,如果需要,使用决策表进一步缩小配置组合,检视表单并确定你的项目最关注哪种配置,软件测试方法和应用,9-,确定硬件配置,确定在这些硬件组合下软件的独特属性,不要期望在每种确定的硬件配置上进行所有的软件特性测试,在很多的情况下很难确定与硬件相关的特性,可以通过:,采用黑盒方法走读产品,找出与硬件相关性强的特性,与项目团队成员交流,特别是程序员,软件测试方法和应用,9-,如何获得硬件,得到所有的已确定的测试硬件是很困难的,每样东西都买成本很高,有时这种硬件只用一次,维护不同的硬件、版本、驱动软件非常困难,方法,只卖最常用的配置,从硬件厂商处借用或租用,向公司内其他项目团队借用,假如如上都不可能,建设一个配置兼容性测试实验室,软件测试方法和应用,9-,用户界面测试,定义,是用于核实用户与软件之间的交互,验收用户界面中的对象是否按照预期的方式运行,并符合国家或行业的标准的测试活动,关注界面层和界面与功能的接口层。,由于界面的美学具有很大的主观性,用户界面测试是一项主观性较强的活动。,用户界面测试的分类,界面整体测试:评价用户界面的规范化、一致性和合理性,界面元素测试:关注对窗口、菜单、图标、文字、鼠标等界面中元素的测试,软件测试方法和应用,9-,界面整体测试,规范性是指软件界面要尽量符合现行标准和规范,并在应用软件中保持一致,可采用行业标准,一致性:既包括使用标准控件,也指相同的信息表现方法还指界面在不同软件平台上的显示,界面规划是否一致,这包括窗口位置、窗口对齐方式、按钮位置和按钮对齐方式,标签和显示是否一致,界面外观是否一致,这包括控件尺寸、颜色、背景和显示信息,操作方法是否一致,快捷键在每个配置项上的语义是否一致,用户界面测试,软件测试方法和应用,9-,界面整体测试,合理性:观察用户界面和软件功能间的一致性,界面元素的描述和颜色是否与功能相符合,前景和背景颜色是否符合,界面元素间的尺寸和对齐方式是否恰当,窗口尺寸是否恰当,界面定制性测试,界面元素定制,工具条定制,统计查询定制,报告格式定制,用户界面测试,软件测试方法和应用,9-,界面元素测试,窗口测试,窗口尺寸、菜单和工具条是否彼此风格一致,激活窗口是否可以正确显示,窗口是否可以正常关闭,窗口被覆盖并重新调用后,窗口是否能够正确再生,窗口控件是否可以随窗口的缩放而缩放,子窗口位置是否正确,用户界面测试,软件测试方法和应用,9-,界面元素测试,菜单测试,选择相应的菜单后,功能执行是否正确,不同级的菜单的显示格式和操作方法是否一致,菜单功能的名称是否简单易懂,菜单组合是否合理并且工作正常,是否所有的菜单命令都可以通过鼠标执行,用户界面测试,软件测试方法和应用,9-,界面元素测试,图标测试,图标是否与人们的使用习惯一致,图标与菜单功能是否一致,图标具有清晰的轮廓,图标是否有工具提示(标注),鼠标测试,鼠标操作、多次点击鼠标、鼠标左右键是否都可以识别,支持滑轮操作,随机点击鼠标,观察是否有无法预期的结果出现,用户界面测试,软件测试方法和应用,9-,界面元素测试,文字描述测试,文字描述是否传达作者的思想意图,拼写是否正确,描述是否清晰准确,是否有语法错误,用户界面测试,软件测试方法和应用,9-,安装测试,定义,安装是终端用户操作系统的第一步,安装测试评价软件是否可以被成功地安装,最简单的方式是在一台运行正常的机器上按照用户安装指导书的要求,一步步地安装软件,安装测试包括,评价安装指导书:检视安装指导书,重点关注安装平台、过程和配置描述,对自动化安装进行测试,对安装选项和设置进行测试,安装过程的中断进行测试,对安装次序进行测试,软件测试方法和应用,9-,安装测试,包括,在不同的平台上安装软件,安装正确性检查:安装后运行软件以确认安装的正确性,修复和卸载测试:修复测试关注系统数据的丢失,而卸载测试关注系统是否可以彻底卸载,软件测试方法和应用,9-,安全测试,定义,软件安全性是与防止对程序及数据非授权的故意或意外访问能力有关的软件属性,安全性测试是验证集成在系统内的保护机制是否能够在实际中保护系统不受非法的侵入,针对程序和数据的安全性测试是软件安全性测试的重要内容,应用软件的安全测试主要侧重于用户对数据或业务功能的访问控制、数据存储和数据通信的远程安全控制,软件测试方法和应用,9-,安全性测试,安全测试验证如下系统安全策略,用户认证,加密,安全防护策略,网络扫描,漏洞扫描,密码破解,渗透检测,数据备份和恢复,防病毒策略,软件测试方法和应用,9-,安全性测试步骤,威胁模型,是一项工程技术,用于帮助确定应用程序方案上下文中的威胁、攻击、漏洞和对策,基于威胁建模思想的安全性测试步骤,识别威胁,定义威胁级别,设计安全测试用例,执行测试,报告结果,软件测试方法和应用,9-,安全性测试方法,威胁模型,功能验证,利用黑盒测试方法对涉及安全的软件功能如:用户管理模块、权限管理模块、加密系统、认证系统等进行测试,验证上述功能是否有效。,漏洞扫描,借助特定的漏洞扫描器完自动检测远程或本地主机安全性弱点,模拟攻击实验,是一组特殊的黑盒测试用例,用来模拟攻击以验证软件或信息系统的安全防护能力,在数据处理与数据通信环境中特别关心的几种攻击包括冒充、重演、消息篡改、服务拒绝、内部攻击、外部攻击、陷阱门和特洛伊木马,软件测试方法和应用,9-,安全性测试方法,威胁模型,侦听,主要用于对网络加密的验证,是在数据通信或数据交互过程,对数据进行截取分析的过程。,软件测试方法和应用,9-,应用软件的安全性测试,内容,用户对数据或业务功能的访问控制,用户权限控制,操作系统,数据存储,数据库权限控制,数据通信的远程安全控制,通讯加密,软件测试方法和应用,9-,软件文档分类,软件文档的分类,管理文档,项目开发计划、测试计划、测试报告、开发日报、月报、开发总结报告,用户文档,用户指南、操作指南、维护手册,开发文档,软件需求规格、设计文档、测试计划,软件测试方法和应用,9-,文档测试,定义,验证软件文档和用户手册中描述的操作步骤是否正确的测试活动,为什么需要文档测试,文档是整个软件的一部分,直接展现给终端用户,终端用户会根据相应的文档操作软件,如果文档中有缺陷,用户可能会非常恼火,可以发现代码中的缺陷,策略,如果被测试对象是非程序,只对其进行校对即可;,如果被测试对象是文档和程序的结合,采用与程序测试类似的测试方法。,软件测试方法和应用,9-,测试用户手册,方法,用户手册的测试可以分为两个方面,用户手册正确性的验证:文档测试人员一定要严格按照手册中的描述进行操作,,把自己当作用户,,坐到一台计算机前面,按照手册上的描述亲自动手,忠实地,一步步操作:,准确地按照手册的描述使用程序,如实地进行每个操作。,测试是测试人员也可以随心所欲地“犯错误“以检查计算机对错误的处理和手册中对错误处理的描述是否正确。,尝试文档提供的每一个建议,检查每一个描述,找到描述不清容易误导用户的内容,用户手册可理解性的确定,软件测试方法和应用,9-,测试在线帮助,方法,除了采用与用户手册测试方法类似,应该考虑如下因素:,逐行阅读在线帮助,确保描述的正确性,执行帮助程序以确保它的可靠性,验证帮助索引,验证超链接和相应的内容,帮助风格应是面向操作的:在线帮助应该比用户手册更高效,因为用户阅读在线帮助的时候通常更迫切地想得到到答案,软件测试方法和应用,9-,小结,很难给出性能的确切定义,不同的项目会有不同的性能目标。响应时间和吞吐量是最关键的两个性能目标,因为它们直接被用户感受,性能测试是通过模拟典型用户行为验证系统是否达到了期望的性能目标,一个简单的性能测试模型包括三个步骤:性能测试计划,创建脚本和执行测试,分析结果和调整系统,性能测试工具是执行性能测试的好帮手,软件测试方法和应用,9-,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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