第九章 非功能性测试

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


分析系统的压力点

系统压力点多是用户使用比较频繁或者数据量较大的地方 分析系统压力点是指站在全局角度来分析系统可能产生瓶颈的功
能点,进而制定合适的测试方案。
《软件测试方法和应用》
9-16
用户对系统地使用情况

意义

确定用户对系统的使用情况是设计测试用例的基础

方法

用户现场调查 分析系统日志
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-12
分析性能测试需求

依据

用户需求说明

任务

明确性能测试目标和范围 测试的对象 应用系统的使用模式

其它
《软件测试方法和应用》
9-13
分析性能测试需求

明确性能测试目标和范围
性能测试过程
《软件测试方法和应用》 9-9
性能测试规划

目标

确定性能测试需求 制定性能测试策略 规划性能测试各类相关资源 开发并评审性能测试计划
《软件测试方法和应用》
9-10
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-11

用户需求不同,性能测试的目标也有所不同 依据性能目标,确定相应的性能测试活动和范围 包含系统要达到的性能指标,这些指标应该以可度量的形式给出并且统 一性能指标的含义
《软件测试方法和应用》
9-14
分析性能测试需求

测试对象
1. 2.
明确性能测试活动中涉及的 功能点或功能点的组合 用户类型、每种用户的数量、典型行为、系统行为、这些行为发生的时 间和频率百分比,需要模拟哪些用户或者部门的哪些活动等内容
《软件测试方法和应用》
9-5
性能测试

常规的性能测试

在正常条件下进行的测试,主要测试正常使用时系统是否满足要求,同时可 能为了保留系统的扩展空间而进行一些稍稍超出“正常”范围的测试。

负载测试

通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标
的情况下,系统所能承受的最大负载量的测试。
7.
每个设备可以处理的并发用户数。
《软件测试方法和应用》
9-22
性能测试工具

为什么使用工具

性能测试要通过模拟大量用户行才能进行,如果使用纯手工测试的 方法,性能测试不仅在执行上异常困难另外成本也会变得难以让人 接受。
1.
有很多可以进行性能测试的工具,比如: LoadRunner
2.
3.
IBM Functional Tester
3.
执行测试用例
4.
5.
监控测试执行
保存测试结果
《软件测试方法和应用》
9-31
结果分析与系统调整

目标

分析测试结果,确定系统是否 存在性能问题

输出性能测试报告 如果发现存在性能问题,则由 相关责任人负责修改,修改完 毕后,可能引起另一个性能测 试周期用以验证问题是否解决
《软件测试方法和应用》


性能测试中的风险
相关的培训
《软件测试方法和应用》
9-25
性能测试设计和开发

目标

设计并评审性能测试用例 开发性能测试脚本 验证脚本功能的正确性
《软件测试方法和应用》
9-26
性能测试设计和开发

主要设计内容
1. 2. 3.
场景设计 不同业务模式下的场景 不同时间段内的场景 不同时期的场景 数据设计
《软件测试方法和应用》
9-4
性能测试

定义

是一个综合性的测试活动,通常包括一系列与被测系统性能相关的 互相关联互相包含的测试活动,如常规的性能测试、负载测试、压 力测试、并发测试、强度测试、大数据量测试等

目的

在于优化最重要的应用程序性能指标,提高用户体验的满意

测试思想

借助测试工具或手工开发测试脚本,模拟执行典型的用户行为,监 控关键性能测量结果以判断定义的性能指标是否达到期望的目标
9-32
结果分析

原则
1.
由外而内,由表及里,层层深入 从最终用户直接可以感受到的响应时间入手,如果测试结果显示满足用 户对性能的期望,则系统的性能满足要求,否则说明系统存在性能问题
2.
确定系统瓶颈是出现在网络环节还是服务器环节

CPU


内存
磁盘
3.
层层推进,判断相应环节的更细组件的响应时间,直到最后找到造成性
开源工具:Jmeter, Opensta. Grinder etc.
《软件测试方法和应用》
9-23
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-24
性能测试计划

内容

性能测试策略和测试范围 性能测试目标、方法、环境和工具 性能团队成员及其职责 测试进度安排 性能测试执行标准(开始、结束、挂起、恢复等)
第九章 非功能测试
1
本章内容

本章讨论与系统非功能测试相关的知识,包括

性能测试 兼容性测试 用户界面测试 安装测试 安全性测试 文档测试
《软件测试方法和应用》
9-2
非功能测试

系统的非功能属性

系统的非功能属性不描述系统的功能而是站在整体的角度说明系统应满
足的要求,如性能、安全、易用性、可靠性等
1.
2.
并发数设计
开发和收集反应用户实际行为的测试数据
《软件测试方法和应用》
9-27
并发用户数设计

方法

极限法

取最大在线用户数作为最大并发数,可以通过日志分析,也可以 使用系统已经注册的用户数量作为系统的用户数量,然后按照经 验公式来估算最大并发用户数量。

用户趋势分析法

对软件生存周期内的用户未来趋势进行分析,预测系统可能达到
3.
明确用户任务的分布情况

1. 2.
方法
分析被测系统的业务 用户对系统地使用情况
《软件测试方法和应用》
9-15
分析被测系统业务

测试对象

确定系统的核心模块

核心模块:业务比较复杂或者用户使用频率较高的模块

模块间的耦合关系

为了更加清晰地了解核心模块间数据的传输方式以便更真实地模 拟多用户并发时的情况

并发用户数需要逐步提高
《软件测试方法和应用》
9-29
性能测试执行与监控

目标

借助工具或者真实的用户,运 依次执行性能测试用例,监控 关键测量指标,收集相关数据
《软件测试方法和应用》
9-30
性能测试执行

任务
1. 2.
搭建与维护测试环境 选择和配置关键测量指标

关键测量指标是在实际的性能测试过程中需要监控和分析的测量结 果,通过观察这些测量结果来确认系统是否达到定义的性能目标。
能问题的根本原因
《软件测试方法和应用》
9-33
结果分析

CPU
1. 2.
Process Time≤ 85% Process Queue Length ≤ 2*处理器个数

内存
1. 2.
Available memory ≥ 0 Pages/秒(Page in/s+Page out/s)Page in的值需≤80
性能
1. 百度文库. 3.
与被测系统相关的一系列度量指标。 不同的系统关心不同的性能指标,例如 通信软件关心的性能指标有接通率、掉话率、接续容量等 证券系统关心下单速度、下单的数量、是否堵单等 嵌入式软件关心的性能指标中断响应、内存使用、实时性 站在用户角度,响应时间是所有系统都关心的指标性能

为什么需要进行兼容性测试

硬件类型、品种多种多样 软件类型、品种多种多样 软硬件之间客观存在的差异,使得系统在运行时存在在某些环境中工作正 常但却在其它环境中出现问题的情况

内容

减少软硬件的组合数目
《软件测试方法和应用》
9-36
案例

案例

如果要执行一个完全的兼容性测试,配置组合将是一个巨大的数字,以窗 口在线游戏程序为例,假设游戏支持大约350个可能的显示卡,200个声卡, 800个调制解调器,1200个打印机,这样就有350×200×800×1200种 组合
的最大使用用户数目,从而估计系统的最大并发用户数目

经验评估法
《软件测试方法和应用》
9-28
性能测试设计和开发

步骤
1. 2. 3.
基于用户对系统的使用情况,分析出用户现实中的典型场景 基于这些场景设计性能测试用例,确定测试中使用的具体数据 借助性能测试工具或某种编程语言开发性能测试脚本实现性能测试用例
9-7
性能测试

大数据量测试包
1.
含独立数据量测试和综合数据量测试。 独立数据量测试是针对某些系统存储、传输、统计查询等业务进行单用户 大数据量测试。
2.
综合数据量测试是与并发测试等相结合的在极限状态下的测试。
《软件测试方法和应用》
9-8
性能测试过程

性能测试过程

性能测试规划 性能测试设计与开发 性能测试执行与监控 测试结果分析和系统调整
9-21
规划性能测试环境

如何规划性能测试环境
1. 2. 3.
了解终端用户的真实部署环境 确定系统组件及各个组件的配置,掌握如下信息: 连接到系统的用户数 客户端计算机的配置情况 服务器与客户端之间的通信方式
4.
5. 6.
中间件配置和应用程序服务器
可能影响相应时间的其他网络组件 通信设备的吞吐量
9-18
性能测试规划

步骤
1.
分析性能测试需求
2.
3.
规划性能测试环境
开发并评审性能测试计划
《软件测试方法和应用》
9-19
规划性能测试环境

任务
1. 2. 3.
规划性能测试的软硬件环境 制定测试环境的维护策略 反复使用Ghost维护一些测试环境 利用VMware在同台电脑上构建多个测试平台 使用备份/恢复策略维护数据库中的内容等。

并发测试

要指测试多个用户同时访问同一个应用程序、同一个模块或者数据记录时 是否存在死锁或者其它性能问题。
1. 2.
并发一般分两种情况: 严格意义上的并发:所有的用户在同一时刻做同一件事情或者操作 广义范围上的并发:指用户对系统发出的请求或者进行的操作,可以是相
同的也可以是不同的。
《软件测试方法和应用》

需要的信息包括

系统有多少类典型的用户、每类用户的大概数量、不同时间段各类用户 大概按照何种比例使用系统、用户的行为、系统的行为、这些行为发生 的时间和比率、在系统生命周期内用户数量的变化情况如何。

可以利用任务分布图法描述上述信息
《软件测试方法和应用》
9-17
任务分布图示例
任务图示例
《软件测试方法和应用》

硬盘(磁盘的忙碌程度)
1.
Disk Time≤ 80%
《软件测试方法和应用》
9-34
性能调整

步骤
1. 2. 3. 4. 5.
确定问题 确定原因 确定调整目标 测试解决方法 分析调整结果
《软件测试方法和应用》
9-35
兼容性测试

定义

验证被测系统是否可以在各种可能的运行环境中正常工作的测试活动

如果数据在程序间共享,应遵守相应的协议和标准数据格式 考虑文件存储和装载、输入输出、剪切、拷贝和粘贴 实时数据传输方法下的共享信息是否正确

压力测试

通过逐步增加系统负载,测试系统性能的变化并最终确定在什么负载条件下
系统性能处于失效状态并以此来获得系统能提供的最大服务级别的测试,其 目的在于发现在什么条件下系统的性能会变得不可接受。
《软件测试方法和应用》
9-6
性能测试

强度测试

迫使系统在异常的资源配置下运行以检查程序对异常情况的抵抗能力,判 断系统的稳定性以及系统未来的扩展空间。

非功能性测试


软件测试高级话题之一
验证系统的非功能属性是否满足用户需求的过程 非功能性测试的执行(但是非功能测试的规划越早开始越好),通常在 完成功能测试之后,以方便定位问题。

主要涉及
性能测试、兼容性测试、用户界面测试、安装测试、安全性测试 和文档测试
《软件测试方法和应用》 9-3
性能


性能选择测试工具
《软件测试方法和应用》
9-20
规划性能测试环境

性能测试环境规划的内容
1. 2. 3. 4.
一般的分布式处理系统其性能测试环境规划包括 网络环境设计:带宽和拓扑结构 操作系统环境规划 数据库环境规划 服务器环境规划
5.
6.
硬件资源环境设计规划
客户端环境规划
《软件测试方法和应用》

需要考虑被测系统使用什么平台 系统设计时考虑兼容的应用程序 被测系统自身的向前向后兼容性
2.
标准:

概要标准用于指导产品的基本操作属性,如颜色、感官、支持的特性等
详细标准规定了产品的详细信息比如文件格式,通讯协议
9-38
《软件测试方法和应用》
兼容性测试步骤

对软件来说
3.
兼容性测试的软件环境通常,包括 数据共享:

即便你只执行这些不同配置条件下的一定数量的测试用例,测试用例的数
量也是相当可观的
《软件测试方法和应用》
9-37
兼容性测试步骤

对软件来说

关注被测系统与其它软件之间的互操作和信息共享是否正常(需兼容的应用 程序和它们的具体版本在规格说明书中定义)
1.
兼容性测试的软件环境通常,包括三方面 平台和应用软件版本:
相关文档
最新文档