1、软件测试技术软件测试技术 第第5 5章章 功能测试与非功能测试功能测试与非功能测试第第2页页/共共113页页第五章第五章 功能测试与功能测试与非功能测试非功能测试1.1.对功能测试和非功能测试的基本认识对功能测试和非功能测试的基本认识2.2.用户界面和易用性测试用户界面和易用性测试3.3.性能测试性能测试4.4.兼容性测试兼容性测试5.5.其它测试其它测试6.6.WebWeb测试测试第第3页页/共共113页页 用户对于软件的需求主要分为功能需求和用户对于软件的需求主要分为功能需求和非功能需求两个方面,而软件测试最根本的目非功能需求两个方面,而软件测试最根本的目的就是的就是为了检验软件是否满足需
2、求规定的各项为了检验软件是否满足需求规定的各项要求要求,因此,因此功能测试与非功能测试功能测试与非功能测试是针对用户是针对用户需求进行测试的两个主要方面。需求进行测试的两个主要方面。第第4页页/共共113页页5.1 5.1 对功能测试和非功能测试的基本认识对功能测试和非功能测试的基本认识5.1.1 5.1.1 什么什么是功能测试是功能测试 功能测试就是根据软件需求规格说明书,功能测试就是根据软件需求规格说明书,检验软件系统是否满足用户对于各方面功能的检验软件系统是否满足用户对于各方面功能的使用要求,确保软件以用户期望的方式运行。使用要求,确保软件以用户期望的方式运行。第第5页页/共共113页页
3、 在一些软件测试资料中,经常将黑盒测在一些软件测试资料中,经常将黑盒测试称为功能测试,将功能测试和黑盒测试等试称为功能测试,将功能测试和黑盒测试等同。这种说法是不准确的,同。这种说法是不准确的,功能测试反映的功能测试反映的是测试目标,而黑盒测试反映的是具体测试是测试目标,而黑盒测试反映的是具体测试方法,两者含义是有区别的方法,两者含义是有区别的。第第6页页/共共113页页5.1.25.1.2功能测试的主要内容功能测试的主要内容 不同软件系统的功能千差万别,因此其功能不同软件系统的功能千差万别,因此其功能测试的差异也就很大。但总的来讲,功能测试测试的差异也就很大。但总的来讲,功能测试的内容可以分
4、为的内容可以分为用户界面(用户界面(User InterfaceUser Interface,UIUI)、数据、操作、逻辑和接口)、数据、操作、逻辑和接口等几个方面的等几个方面的测试内容。测试内容。第第7页页/共共113页页l界面界面测试软件界面是否规范、合理,用户与测试软件界面是否规范、合理,用户与软件通过界面交互是否方便。软件通过界面交互是否方便。l数据数据软件系统从广义上来讲就是一个数据输软件系统从广义上来讲就是一个数据输入、处理和输出的系统,因此与数据有关的测入、处理和输出的系统,因此与数据有关的测试是功能测试的重要内容,主要包括以下几个试是功能测试的重要内容,主要包括以下几个方面方面
5、。第第8页页/共共113页页l操作操作程序的安装、启动以及卸载正常,程序的安装、启动以及卸载正常,能够支持各种主流的应用环境。能够支持各种主流的应用环境。l逻辑逻辑功能逻辑清晰并且符合用户使用功能逻辑清晰并且符合用户使用习惯,用户能够按照合理的流程很自然习惯,用户能够按照合理的流程很自然地选择功能和使用软件。地选择功能和使用软件。第第9页页/共共113页页l 接口接口能够通过接口配合使用多种常见能够通过接口配合使用多种常见的外部设备(如打印机),能够以标准的的外部设备(如打印机),能够以标准的方式向外部应用系统提供接口(如方式向外部应用系统提供接口(如Web Web ServiceServic
6、e接口),能够通过规定的接口使接口),能够通过规定的接口使用第三方软件功能。用第三方软件功能。第第10页页/共共113页页5.1.3 5.1.3 什么什么是非功能测试是非功能测试 非功能测试是相对于功能测试而言的,是针非功能测试是相对于功能测试而言的,是针对软件非功能属性所进行的测试活动。通俗的对软件非功能属性所进行的测试活动。通俗的来讲,来讲,功能测试面对的是软件功能测试面对的是软件“能不能用和够能不能用和够不够用不够用”的问题,而非功能测试面对的是软件的问题,而非功能测试面对的是软件“好不好用好不好用”的问题的问题。第第11页页/共共113页页 一一个良好的软件系统需要在个良好的软件系统需
7、要在分析、设计和实分析、设计和实现现等环节都充分考虑系统的非功能需求。这些需等环节都充分考虑系统的非功能需求。这些需求有时在需求分析说明书中已有明确定义,但有求有时在需求分析说明书中已有明确定义,但有时是隐含的,需要根据软件特点和经验予以具体时是隐含的,需要根据软件特点和经验予以具体化。忽视非功能需求会直接导致软件的用户体验化。忽视非功能需求会直接导致软件的用户体验很差甚至是不可用。很差甚至是不可用。第第12页页/共共113页页 软件软件的需求描述中,功能需求与非功能需求的需求描述中,功能需求与非功能需求有以下一些明显的不同之处:有以下一些明显的不同之处:l功能需求通常比较明显和具体功能需求通
8、常比较明显和具体,容易捕捉和描,容易捕捉和描述;述;非功能需求通常比较抽象非功能需求通常比较抽象,而且主观成分,而且主观成分较多,例如性能的概念就比较抽象,不同的人较多,例如性能的概念就比较抽象,不同的人会有不同的理解。会有不同的理解。第第13页页/共共113页页l功能需求大多数具有局部特点功能需求大多数具有局部特点,通常采用用例,通常采用用例或场景的方式描述;或场景的方式描述;非功能需求通常具有全局非功能需求通常具有全局意义意义,例如性能一般是针对整个系统而言。,例如性能一般是针对整个系统而言。l一个软件系统通常需要考虑多个非功能需求一个软件系统通常需要考虑多个非功能需求,例如性能、可靠性和
9、安全性等,这些非功能需例如性能、可靠性和安全性等,这些非功能需求之间往往存在着某些制约和依赖关系。求之间往往存在着某些制约和依赖关系。第第14页页/共共113页页l功能需求有很多规范的乃至形式化的描述方法功能需求有很多规范的乃至形式化的描述方法,能够很好地消除歧义性;,能够很好地消除歧义性;非功能需求很多采非功能需求很多采用自然语言的描述方式用自然语言的描述方式,具有很大的随意性,具有很大的随意性,缺乏精确性和完整性,给需求理解、设计和开缺乏精确性和完整性,给需求理解、设计和开发造成了很大困难。发造成了很大困难。第第15页页/共共113页页非功能测试经常需要定量化的测试指标,类似非功能测试经常
10、需要定量化的测试指标,类似“具有及时的响应时间具有及时的响应时间”这样的描述是不可度量的这样的描述是不可度量的。应当使用。应当使用SMART标准来设计非功能测试目标标准来设计非功能测试目标,也就是用具体的(,也就是用具体的(Specific)、可度量的()、可度量的(Measurable)、可实现的()、可实现的(Achievable)、相关的(、相关的(Relevant)、有时限的()、有时限的(Time-bound)测试指标来指导测试。)测试指标来指导测试。第第16页页/共共113页页 但是需要注意的是但是需要注意的是,对于什么是软件的非功能,对于什么是软件的非功能属性至今都缺乏一个一致的
11、定义。为了便于理解属性至今都缺乏一个一致的定义。为了便于理解,以下给出两个比较经典的非功能属性定义:,以下给出两个比较经典的非功能属性定义:(1)N.S.Rosa认为软件的功能需求定义了认为软件的功能需求定义了一个软件期望做什么,而非功能需求则指定了关一个软件期望做什么,而非功能需求则指定了关于软件如何运行和功能如何展示的全局限制。于软件如何运行和功能如何展示的全局限制。(2)X.Franch认为软件的非功能属性是可认为软件的非功能属性是可以用来作为描述及评价软件的一种方式。以用来作为描述及评价软件的一种方式。第第17页页/共共113页页5.1.4 5.1.4 非功能测试的主要内非功能测试的主
12、要内容容l性能测试性能测试验证软件系统能否达到用户提验证软件系统能否达到用户提出的性能指标;出的性能指标;l压力测试压力测试模拟比预期要大的工作负载来模拟比预期要大的工作负载来暴露只在系统峰值条件下才会出现的缺陷;暴露只在系统峰值条件下才会出现的缺陷;第第18页页/共共113页页l负载测试负载测试主要测试系统在高于正常水主要测试系统在高于正常水平的负载下所出现的性能问题;平的负载下所出现的性能问题;l可靠性测试可靠性测试度量软件在一般情形和非度量软件在一般情形和非预期情形下维持正常功能的能力;预期情形下维持正常功能的能力;第第19页页/共共113页页l低资源测试低资源测试确定系统在重要资源降低
13、或确定系统在重要资源降低或不足的情况下会出现的软件系统状况;不足的情况下会出现的软件系统状况;l容量测试容量测试确定系统最大承受量;确定系统最大承受量;第第20页页/共共113页页l重复性测试重复性测试循环运行测试直到达到循环运行测试直到达到一个具体临界值或者异常境况;一个具体临界值或者异常境况;l兼容性测试兼容性测试测试软件面对不同软硬测试软件面对不同软硬件平台和不同支持软件时能否正常运行;件平台和不同支持软件时能否正常运行;第第21页页/共共113页页l安全性测试安全性测试检查系统对非法侵入的防范检查系统对非法侵入的防范能力;能力;l辅助功能测试辅助功能测试保证软件系统能被残疾人保证软件系
14、统能被残疾人士使用;士使用;l本地化测试本地化测试验证软件能否满足某一特定验证软件能否满足某一特定地区的语言、文化和风俗习惯的要求;地区的语言、文化和风俗习惯的要求;第第22页页/共共113页页l配置测试配置测试验证被测软件在不同的软件和验证被测软件在不同的软件和硬件配置中的运行情况;硬件配置中的运行情况;l可用性测试可用性测试测试在特定使用情景下,软测试在特定使用情景下,软件产品能够被用户理解、学习和使用的方便件产品能够被用户理解、学习和使用的方便程度,以及评价软件产品能够吸引用户的能程度,以及评价软件产品能够吸引用户的能力。力。第第23页页/共共113页页5.2 5.2 用户界面和易用性测
15、试用户界面和易用性测试5.2.1 UI5.2.1 UI测试测试 用户界面的优劣直接影响着用户能否很容用户界面的优劣直接影响着用户能否很容易地学会软件操作和高效地使用软件的各种功易地学会软件操作和高效地使用软件的各种功能,因此能,因此UIUI测试已经是一项独立的、不可缺少测试已经是一项独立的、不可缺少的功能测试项目。的功能测试项目。第第24页页/共共113页页 一个良好的用户一个良好的用户界面会界面会让人感觉简洁清晰、布局合让人感觉简洁清晰、布局合理,即使不借助详细的用户使用手册也能够自然而然理,即使不借助详细的用户使用手册也能够自然而然地上手应用。地上手应用。第第25页页/共共113页页(1
16、1)符合标准和规范)符合标准和规范(2 2)直观性)直观性 (3 3)一致性)一致性(4 4)灵活性)灵活性(5 5)舒适性)舒适性(6 6)正确性)正确性(7 7)实用性)实用性第第26页页/共共113页页 具体的具体的UIUI测试可以分为测试可以分为手工测试和自动化测手工测试和自动化测试试两种。手工测试是按照软件需求和设计文档,两种。手工测试是按照软件需求和设计文档,逐项操作界面中的各项功能,但是软件规模越来逐项操作界面中的各项功能,但是软件规模越来越庞大,所包含的功能也越来越复杂。因此,必越庞大,所包含的功能也越来越复杂。因此,必须借助自动化的须借助自动化的UIUI测试技术才能达到测试目
17、标。测试技术才能达到测试目标。第第27页页/共共113页页 UIUI自动化测试主要通过一些自动化测试工具来自动化测试主要通过一些自动化测试工具来完成,通过自动化执行这些测试用例就可以完成完成,通过自动化执行这些测试用例就可以完成大量简单、机械和重复的大量简单、机械和重复的UIUI测试工作,优点是测试工作,优点是不不需要太多的计划、编程和调试,简单方便需要太多的计划、编程和调试,简单方便。但是。但是由于由于稳定性和兼容性差,测试脚本的生命周期往稳定性和兼容性差,测试脚本的生命周期往往较短往较短。第第28页页/共共113页页用户界面测试内容可以分为以下两类。用户界面测试内容可以分为以下两类。l l
18、 界面整体测试界面整体测试。主要评价用户界面的规范。主要评价用户界面的规范化、合理性和一致性。化、合理性和一致性。l l 界面元素测试界面元素测试。主要是对菜单、控件等界。主要是对菜单、控件等界面中的元素进行测试。面中的元素进行测试。第第29页页/共共113页页界面测试中会有很多种检查表,不同的软件界面测试中会有很多种检查表,不同的软件企业、不同的软件产品会有不同的检查表内容企业、不同的软件产品会有不同的检查表内容。表表5-1至至表表5-4给出了几种主要的、较为通用的给出了几种主要的、较为通用的界面测试检查表,可以在实际工作中予以参考界面测试检查表,可以在实际工作中予以参考和适当补充。和适当补
19、充。第第30页页/共共113页页编号编号测试内容测试内容1 1窗体大小合适窗体大小合适不过于密集或空旷不过于密集或空旷2 2内部控件布局合理内部控件布局合理不过于密集或空旷不过于密集或空旷3 3移动窗体移动窗体窗体本身刷新正确,背景刷新正确窗体本身刷新正确,背景刷新正确4 4缩放窗体,窗体上的控件也应该随着窗体而缩放缩放窗体,窗体上的控件也应该随着窗体而缩放5 5不同的显示分辨率下,窗体内容正确不同的显示分辨率下,窗体内容正确6 6随操作不同,状态栏的内容能正确的变化随操作不同,状态栏的内容能正确的变化7 7单击工具栏图标后能正确执行相应操作单击工具栏图标后能正确执行相应操作8 8工具栏显示的
20、图标和菜单中的图标一致,能直观的代表要完成的操工具栏显示的图标和菜单中的图标一致,能直观的代表要完成的操作作9 9错误信息的内容错误信息的内容内容正确、语义清晰、无错别字内容正确、语义清晰、无错别字1010父窗体的中心位置在屏幕对角线焦点附近父窗体的中心位置在屏幕对角线焦点附近1111主窗体的中心位置在屏幕对角线焦点附近主窗体的中心位置在屏幕对角线焦点附近1212子窗体位置在主窗体的左上角或正中子窗体位置在主窗体的左上角或正中1313多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜多个子窗体弹出时应该依次向右下方偏移,以显示出窗体标题为宜1414重要的、使用较频繁的按钮要放在界面上醒
21、目的位置重要的、使用较频繁的按钮要放在界面上醒目的位置1515界面长宽接近黄金点比例,不要长宽比例失调界面长宽接近黄金点比例,不要长宽比例失调1616按钮大小基本接近按钮大小基本接近1717不用太长的名称不用太长的名称1818按钮的大小与界面的大小和空间协调按钮的大小与界面的大小和空间协调1919字体的大小与界面的大小比例字体的大小与界面的大小比例协调协调通常使用宋体,字号为通常使用宋体,字号为9-129-122020前景色与背景色搭配合理协调,使用柔和颜色,杜绝刺目的颜色前景色与背景色搭配合理协调,使用柔和颜色,杜绝刺目的颜色2121界面风格要保持一致界面风格要保持一致字体、字号、颜色相同等
22、字体、字号、颜色相同等表表5-1 5-1 窗体界面的测试窗体界面的测试第第31页页/共共113页页编号编号测试内容测试内容1 1菜单能正常工作,菜单标题与实际执行内容一致,无错别字菜单能正常工作,菜单标题与实际执行内容一致,无错别字2 2快捷键和热键无重复快捷键和热键无重复3 3快捷键和热键正常工作,与实际执行内容一致快捷键和热键正常工作,与实际执行内容一致4 4菜单的字体、字号一致,无中英文混合使用菜单的字体、字号一致,无中英文混合使用5 5菜单和语境相关,对于不同用户或用户执行不同的功能时显示菜菜单和语境相关,对于不同用户或用户执行不同的功能时显示菜单不同单不同6 6与当前进行的操作无关的
23、菜单应该被置为灰色与当前进行的操作无关的菜单应该被置为灰色7 7鼠标右键菜单操作,测试内容同以上鼠标右键菜单操作,测试内容同以上1-61-68 8菜单采用菜单采用“常用常用-主要主要-次要次要-工具工具-帮助帮助”的顺序排列,符合的顺序排列,符合WindowsWindows风格风格9 9下拉菜单根据菜单的含义进行分组,并按照一定的规则排列,用下拉菜单根据菜单的含义进行分组,并按照一定的规则排列,用横线隔开横线隔开1010菜单深度一般要求最多控制在菜单深度一般要求最多控制在3 3层以内层以内1111菜单前的图标大小适合,与字高保持一致菜单前的图标大小适合,与字高保持一致1212主菜单数目合适,应
24、为单排布置主菜单数目合适,应为单排布置表表5-2 菜单的测试菜单的测试第第32页页/共共113页页编号编号测试内容测试内容1 1界面控件风格一致,符合界面控件风格一致,符合WindowsWindows风格风格2 2控件摆放对齐、间隔一致控件摆放对齐、间隔一致3 3控件没有重叠区域控件没有重叠区域4 4无错别字、无中英文混合,文字无全角和半角混合使用无错别字、无中英文混合,文字无全角和半角混合使用5 5控件的字体一致,大小适宜控件的字体一致,大小适宜6 6控件显示完整,不被裁切,不被重叠控件显示完整,不被裁切,不被重叠表表5-3 控件的测试控件的测试第第33页页/共共113页页表表5-4 公司产
25、品标识的测试公司产品标识的测试编号编号测试内容测试内容1 1安装界面上有公司的图标、介绍,有产品的介绍安装界面上有公司的图标、介绍,有产品的介绍2 2主界面和大多数界面上最好有公司的图标主界面和大多数界面上最好有公司的图标3 3登陆界面上有本产品的标志,同时包含公司的图标登陆界面上有本产品的标志,同时包含公司的图标4 4选择选择“帮助帮助”-“”-“关于关于”命令可看见版权的信息,可看见产品的命令可看见版权的信息,可看见产品的信息信息5 5公司的系列产品公司的系列产品要保持一致的界要保持一致的界面风格面风格背景色背景色6 6字体字体7 7菜单排列方式菜单排列方式8 8图标图标9 9安装过程安装
26、过程1010按钮用语按钮用语 易用性测试(易用性测试(Usability TestingUsability Testing)又称)又称为可用性测试,是从软件使用的合理性和方为可用性测试,是从软件使用的合理性和方便性等角度对软件系统进行的测试,用来检便性等角度对软件系统进行的测试,用来检查用户学习、操作和理解软件的难易程度。查用户学习、操作和理解软件的难易程度。5.2.2 5.2.2 易用性测试易用性测试第第35页页/共共113页页表表5-5和表和表5-6是一些通用的软件界面易是一些通用的软件界面易用性测试内容,实际测试时可以归并到相用性测试内容,实际测试时可以归并到相应的界面测试内容中。应的界
27、面测试内容中。表表5-5 控件易用性测试控件易用性测试编号编号测试内容测试内容1 1按钮名称易懂,用词准确,与同一界面上的其他按钮易于区分按钮名称易懂,用词准确,与同一界面上的其他按钮易于区分2 2常用按钮支持快捷方式常用按钮支持快捷方式3 3相同或相近功能的按钮用相同或相近功能的按钮用FrameFrame框起来,并有标题或功能说明框起来,并有标题或功能说明4 4集中放置完成同一功能或任务的元素集中放置完成同一功能或任务的元素5 5应当把首先输入数据和具有重要信息的控件安排在应当把首先输入数据和具有重要信息的控件安排在TabTab顺序中顺序中靠前的位置,并放在窗口上较醒目的位置靠前的位置,并放
28、在窗口上较醒目的位置6 6选项卡控件选项卡控件(Tab)(Tab)支持在页面间的快捷切换,常用的快捷键为支持在页面间的快捷切换,常用的快捷键为Ctrl+TabCtrl+Tab第第36页页/共共113页页编号编号测试内容测试内容7 7默认按钮要支持默认按钮要支持“回车回车”即选操作即选操作8 8选择常用功能或数值作为默认值选择常用功能或数值作为默认值9 9单选按钮、复选框、列表框、单选按钮、复选框、列表框、下拉列表框的内容或条目较下拉列表框的内容或条目较多的时候多的时候按选择概率的高低排列按选择概率的高低排列1010按字母顺序排列按字母顺序排列1111单选按钮和复选框按钮有默认选项单选按钮和复选
29、框按钮有默认选项1212界面空间较小时使用下拉表框而不用单选框界面空间较小时使用下拉表框而不用单选框1313选项条目较少时使用单选按钮,相反使用下拉列表框选项条目较少时使用单选按钮,相反使用下拉列表框1414专业性强的软件要使用相关的专业术语,通用性界面则提倡使专业性强的软件要使用相关的专业术语,通用性界面则提倡使用通用性术语用通用性术语1515不同界面的通用按钮的位置保持一致不同界面的通用按钮的位置保持一致1616常用按钮的等价按键保持一致常用按钮的等价按键保持一致1717对可能给用户带来损失的操作最好支持可逆性处理对可能给用户带来损失的操作最好支持可逆性处理1818对可能造成等待时间较长的
30、操作应该提供取消功能,并显示操对可能造成等待时间较长的操作应该提供取消功能,并显示操作的状态作的状态1919根据需要,程序能自动过滤输入的空格根据需要,程序能自动过滤输入的空格附表:附表:第第37页页/共共113页页表表5-6 菜单易用性测试菜单易用性测试编号编号测试内容测试内容1 1常用菜单项要有快捷键常用菜单项要有快捷键2 2菜单项前的图标能直观的代表要完成的操作菜单项前的图标能直观的代表要完成的操作3 3一组菜单的使用有先后要求或有向导作用时,按先后次序排列一组菜单的使用有先后要求或有向导作用时,按先后次序排列4 4没有顺序要求的菜单按使用频率和重要性排列,常用的和重要的没有顺序要求的菜
31、单按使用频率和重要性排列,常用的和重要的放前面放前面5 5主菜单要求:主菜单要求:宽度要接近宽度要接近6 6字数一般不多于字数一般不多于4 4个个7 7每个菜单项的字数最好能相同每个菜单项的字数最好能相同8 8工具栏可以根据用户的需求进行定制工具栏可以根据用户的需求进行定制9 9相同或相近功能的工具栏放在一起相同或相近功能的工具栏放在一起1010工具栏的图标能直观的代表要完成的操作工具栏的图标能直观的代表要完成的操作1111状态条能显示用户切实需要的信息。如果某一操作需要的时间较状态条能显示用户切实需要的信息。如果某一操作需要的时间较长,还应该显示进度条和进程提示长,还应该显示进度条和进程提示
32、1212滚动条的长度根据显示信息的长度或宽度及时变换滚动条的长度根据显示信息的长度或宽度及时变换1313菜单和工具栏有清楚的界限菜单和工具栏有清楚的界限1414菜单和状态条通常使用菜单和状态条通常使用5 5号字体号字体第第38页页/共共113页页表表5-7 联机帮助测试联机帮助测试编号编号测试内容测试内容1 1操作时提供及时调用系统帮助的功能,常用操作时提供及时调用系统帮助的功能,常用F1F1来调用来调用2 2调用帮助时要有及时性和针对性,能及时定位与操作相应的帮助调用帮助时要有及时性和针对性,能及时定位与操作相应的帮助信息位置信息位置3 3最好提供目前流行的联机帮助格式或最好提供目前流行的联
33、机帮助格式或HTMLHTML帮助格式帮助格式4 4可使用关键词在帮助索引中搜索帮助内容,也可以通过帮助主题可使用关键词在帮助索引中搜索帮助内容,也可以通过帮助主题词进行搜索词进行搜索5 5如果没有提供书面的帮助文档的话,要有打印帮助的功能如果没有提供书面的帮助文档的话,要有打印帮助的功能6 6在帮助中提供软件的技术支持方式在帮助中提供软件的技术支持方式7 7软件升级后,软件变动部分的内容要在帮助文档中做出一致性修软件升级后,软件变动部分的内容要在帮助文档中做出一致性修改改5.5.3 3 性能性能测试测试性能测试是为了检测软件系统在特定条件下的性性能测试是为了检测软件系统在特定条件下的性能表现,
34、并最终对系统性能进行优化。性能测试能表现,并最终对系统性能进行优化。性能测试涉及较多的理论和技术内容,经常需要利用性能涉及较多的理论和技术内容,经常需要利用性能测试工具才能完成,测试操作和结果分析也比较测试工具才能完成,测试操作和结果分析也比较复杂,因此属于软件测试中的高端领域。复杂,因此属于软件测试中的高端领域。第第40页页/共共113页页5.3.1 5.3.1 性能测试的分类性能测试的分类性能测试一般可以分为常规性能测试、负载性能测试一般可以分为常规性能测试、负载测试、压力测试和容量测试,此外还包括稳测试、压力测试和容量测试,此外还包括稳定性测试、可恢复性测试和基准测试等。定性测试、可恢复
35、性测试和基准测试等。第第41页页/共共113页页(1)常规性能测试常规性能测试常规性能测试是在系常规性能测试是在系统正常条件下进行的测试,是为了检测软件正统正常条件下进行的测试,是为了检测软件正常使用时是否满足用户的性能需求;常使用时是否满足用户的性能需求;图图5-2 任务管理器中的性能监视任务管理器中的性能监视第第42页页/共共113页页(2)负载测试负载测试其目的是通过观察系统响其目的是通过观察系统响应时间、数据吞吐量和资源占用率等指标,应时间、数据吞吐量和资源占用率等指标,检验与负载有关的系统行为和性能特性,发检验与负载有关的系统行为和性能特性,发现可能存在的问题现可能存在的问题;第第4
36、3页页/共共113页页(3)压力测试压力测试又被称为强度测试,可以又被称为强度测试,可以分为分为稳定性压力测试稳定性压力测试和和破坏性压力测试破坏性压力测试两种两种:l稳定性压力测试是一种疲劳测试,是给软件稳定性压力测试是一种疲劳测试,是给软件系统施加很高的负载,使系统达到一定的系统施加很高的负载,使系统达到一定的CPUCPU、内存等资源利用饱和度,然后长时间地连、内存等资源利用饱和度,然后长时间地连续运行系统以检验系统是否会出现错误,一续运行系统以检验系统是否会出现错误,一般用于系统稳定性测试;般用于系统稳定性测试;第第44页页/共共113页页l破坏性压力测试是指通过不断地向被测系统破坏性压
37、力测试是指通过不断地向被测系统施加压力,直到使系统崩溃为止。其目的是施加压力,直到使系统崩溃为止。其目的是为了发现系统最大能够承受的负荷,检验软为了发现系统最大能够承受的负荷,检验软件系统在用户使用高峰情况下的行为表现,件系统在用户使用高峰情况下的行为表现,以及评估系统是否具备良好的容错性和可恢以及评估系统是否具备良好的容错性和可恢复性;复性;第第45页页/共共113页页(4)容量测试容量测试容量测试是指通过特定的容量测试是指通过特定的方法,检测系统能够承载的最大处理任务的方法,检测系统能够承载的最大处理任务的极限值,例如能够处理的最大并发用户数、极限值,例如能够处理的最大并发用户数、最大数据
38、库记录数等最大数据库记录数等;第第46页页/共共113页页(5)稳定性测试稳定性测试也被称为可靠性测试,也被称为可靠性测试,是指让系统在一定的环境和负载条件下持续是指让系统在一定的环境和负载条件下持续运行一定的时间,观察系统是否达到要求的运行一定的时间,观察系统是否达到要求的稳定性。稳定性。IEEEIEEE将可靠性测试定义为:将可靠性测试定义为:“系统系统在特定的环境下和规定的时间内无故障运行在特定的环境下和规定的时间内无故障运行的概率的概率”。第第47页页/共共113页页(6)可恢复性测试可恢复性测试通过各种人为的方法通过各种人为的方法使系统软硬件出现故障,然后检测能否通过使系统软硬件出现故
39、障,然后检测能否通过自动恢复或人工恢复的方法在规定的时间内自动恢复或人工恢复的方法在规定的时间内使系统恢复正常使系统恢复正常;(7)基准测试基准测试在标准配置的软硬件以及在标准配置的软硬件以及网络环境下,模拟一定数量的虚拟用户完成网络环境下,模拟一定数量的虚拟用户完成一种或多种业务测试,并将测试结果作为基一种或多种业务测试,并将测试结果作为基线数据。线数据。第第48页页/共共113页页5.3.2 5.3.2 不同性能测试类型的区别与联系不同性能测试类型的区别与联系性能测试的类型和所包含的概念较多,测试内性能测试的类型和所包含的概念较多,测试内容之间具有一定的区别和联系。在实际性能测容之间具有一
40、定的区别和联系。在实际性能测试工作中,一些测试类型会使用相同的测试环试工作中,一些测试类型会使用相同的测试环境和测试工具来完成测试,例如负载测试、压境和测试工具来完成测试,例如负载测试、压力测试和容量测试都可以使用力测试和容量测试都可以使用LoadRunner来完成,所观察的也主要都是响应时间、吞吐来完成,所观察的也主要都是响应时间、吞吐量、资源占用率等系统性能指标。量、资源占用率等系统性能指标。第第49页页/共共113页页各种性能测类型的各种性能测类型的主要区别是它们的测试目主要区别是它们的测试目的不同的不同。常规性能测试常规性能测试主要是为了获得系统主要是为了获得系统在正常软硬件配置下的性
41、能表现,然后考察在正常软硬件配置下的性能表现,然后考察这些性能数据是否满足了用户所期望的各项这些性能数据是否满足了用户所期望的各项性能指标,保证系统在常规运行状态下的正性能指标,保证系统在常规运行状态下的正确性。确性。第第50页页/共共113页页与常规性能测试类似,与常规性能测试类似,基准测试基准测试也不面向发现也不面向发现性能缺陷问题,而是为了建立典型负载水平下性能缺陷问题,而是为了建立典型负载水平下的性能基准,为今后的系统变更、系统调优提的性能基准,为今后的系统变更、系统调优提供参考依据。测试过程中有可能需要获得几种供参考依据。测试过程中有可能需要获得几种典型负载下的性能指标数据,以便于今
42、后的综典型负载下的性能指标数据,以便于今后的综合对比与分析。合对比与分析。第第51页页/共共113页页负载测试负载测试更多地应当被看做是性能测试中常用更多地应当被看做是性能测试中常用的一种技术和方法,因为负载是影响系统性能的一种技术和方法,因为负载是影响系统性能的一种主要因素。在众多的性能测试类型中,的一种主要因素。在众多的性能测试类型中,都或多或少的会使用到负载测试技术。但是不都或多或少的会使用到负载测试技术。但是不能将负载测试等同于性能测试,影响系统性能能将负载测试等同于性能测试,影响系统性能的因素除负载外还有很多。的因素除负载外还有很多。第第52页页/共共113页页压力测试压力测试可以看
43、做是一种特殊的、高负载情况可以看做是一种特殊的、高负载情况下的负载测试。压力测试与普通负载测试最主下的负载测试。压力测试与普通负载测试最主要的不同之处在于,压力测试是带有破坏性目要的不同之处在于,压力测试是带有破坏性目的的测试,是通过各种方式想办法使系统崩溃的的测试,是通过各种方式想办法使系统崩溃,以此来发现系统瓶颈,验证系统峰值负载下,以此来发现系统瓶颈,验证系统峰值负载下的行为和性能表现,评估系统的容错性和可恢的行为和性能表现,评估系统的容错性和可恢复性。此外,高负载压力下的性能测试也能够复性。此外,高负载压力下的性能测试也能够针对性的、快速的发现性能瓶颈和内存泄漏等针对性的、快速的发现性
44、能瓶颈和内存泄漏等问题。问题。第第53页页/共共113页页容量测试容量测试的是为了获得软件系统实际可以支持的的是为了获得软件系统实际可以支持的容量值。容量测试与压力测试的一个明显不同是容量值。容量测试与压力测试的一个明显不同是,容量测试关注系统能够持续处理的最大负载量,容量测试关注系统能够持续处理的最大负载量,尤其是大数据量处理方面的承受能力,在持续,尤其是大数据量处理方面的承受能力,在持续处理过程中,系统的性能指标仍然需要满足用户处理过程中,系统的性能指标仍然需要满足用户的性能需求。而破坏性压力测试更多关注的是短的性能需求。而破坏性压力测试更多关注的是短时间峰值情况下系统是否仍然能够正常工作
45、,不时间峰值情况下系统是否仍然能够正常工作,不至于发生功能异常乃至崩溃。至于发生功能异常乃至崩溃。第第54页页/共共113页页综合上述说明,负载测试、压力测试和容量测综合上述说明,负载测试、压力测试和容量测试的方法和手段很相似,在实际工作中可以通试的方法和手段很相似,在实际工作中可以通过合理设计与安排,将它们交织在一起进行以过合理设计与安排,将它们交织在一起进行以提高测试效率。提高测试效率。第第55页页/共共113页页5.3.3 5.3.3 性能测试的指标与术语性能测试的指标与术语 性能测试中经常会用到一些性能指标和术语,性能测试中经常会用到一些性能指标和术语,它们主要可以分为资源指标和系统指
46、标两大类。它们主要可以分为资源指标和系统指标两大类。图图5-3 性能测试的指标与分类性能测试的指标与分类第第56页页/共共113页页1、资源指标:、资源指标:(1)CPUCPU使用率使用率:指用户进程与系统进程所:指用户进程与系统进程所消耗的消耗的CPU百分比,长时间情况下一般可接百分比,长时间情况下一般可接受上限不超过受上限不超过85%;(2)内存利用率内存利用率:内存利用率:内存利用率=(1-空闲空闲内存内存/总内存大小)总内存大小)*100%,内存使用率可,内存使用率可接受上限一般为接受上限一般为85%;第第57页页/共共113页页 (3)磁盘磁盘I/OI/O:用磁盘读写操作所占用的:用
47、磁盘读写操作所占用的时间百分比来度量磁盘时间百分比来度量磁盘I/O性能;性能;(4)网络通信速率网络通信速率:一般使用:一般使用Bytes/Sec来度量,用于判断网络连接速度是否来度量,用于判断网络连接速度是否是瓶颈。是瓶颈。第第58页页/共共113页页2、系统指标:、系统指标:(1)响应时间响应时间:系统对用户操作的反馈时:系统对用户操作的反馈时间,或者说是从客户端提交访问请求到客户间,或者说是从客户端提交访问请求到客户端接收到服务器响应所消耗的时间;端接收到服务器响应所消耗的时间;(2)吞吐量吞吐量:在单位时间内系统所处理的:在单位时间内系统所处理的任务量或数据量的总和;任务量或数据量的总
48、和;第第59页页/共共113页页 (3)并发用户数并发用户数:某一时刻同时向系统提:某一时刻同时向系统提交服务请求的用户数,也就是同一时刻与服交服务请求的用户数,也就是同一时刻与服务器进行了交互的在线用户数量;务器进行了交互的在线用户数量;第第60页页/共共113页页 为了为了准确理解并发用户数的含义,首先需准确理解并发用户数的含义,首先需要理解以下几个概念:要理解以下几个概念:l在线用户数:某段时间内同时访问系统的用在线用户数:某段时间内同时访问系统的用户数,这些用户并不一定同时向系统提交请户数,这些用户并不一定同时向系统提交请求,也不一定执行相同的操作。求,也不一定执行相同的操作。通常每个
49、通常每个在线用户都对应着服务器的一个会话(在线用户都对应着服务器的一个会话(Session)作为该用户的标识;)作为该用户的标识;第第61页页/共共113页页l虚拟用户:模拟真实用户向服务器发送请求虚拟用户:模拟真实用户向服务器发送请求并接收响应的一个软件进程或线程;并接收响应的一个软件进程或线程;l思考时间(思考时间(think time):用户每个操作):用户每个操作后的暂停时间,或者叫操作之间的间隔时间后的暂停时间,或者叫操作之间的间隔时间或休眠时间。此时间内,用户没有对服务器或休眠时间。此时间内,用户没有对服务器产生运行压力:产生运行压力:第第62页页/共共113页页 (4)事务成功率
50、事务成功率:单位时间内系统可以:单位时间内系统可以成功完成多少个已定义的事务;成功完成多少个已定义的事务;(5)超时错误率超时错误率:由于超时导致失败的事:由于超时导致失败的事务数量占总事务数量的比率;务数量占总事务数量的比率;(6)点击率点击率:每秒钟用户向:每秒钟用户向Web服务器服务器提交的提交的HTTP请求数,是请求数,是Web应用特有的应用特有的一个指标。一个指标。第第63页页/共共113页页5.3.4 5.3.4 性能测试的需求与目的性能测试的需求与目的 确定性能测试的需求是完成好性能测试的确定性能测试的需求是完成好性能测试的前提,理解性能测试的目的有助于有针对性前提,理解性能测试